larkify 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- larkify-0.1.0/LICENSE +21 -0
- larkify-0.1.0/NOTICE +58 -0
- larkify-0.1.0/PKG-INFO +507 -0
- larkify-0.1.0/README.md +476 -0
- larkify-0.1.0/larkify/__init__.py +16 -0
- larkify-0.1.0/larkify/auth/__init__.py +8 -0
- larkify-0.1.0/larkify/auth/app.py +334 -0
- larkify-0.1.0/larkify/auth/base.py +303 -0
- larkify-0.1.0/larkify/auth/oauth.py +243 -0
- larkify-0.1.0/larkify/auth/token.py +46 -0
- larkify-0.1.0/larkify/auth/unauth.py +25 -0
- larkify-0.1.0/larkify/cache/__init__.py +11 -0
- larkify-0.1.0/larkify/cache/base.py +48 -0
- larkify-0.1.0/larkify/cache/mem_cache.py +72 -0
- larkify-0.1.0/larkify/cache/redis.py +95 -0
- larkify-0.1.0/larkify/config.py +153 -0
- larkify-0.1.0/larkify/core.py +646 -0
- larkify-0.1.0/larkify/exception.py +131 -0
- larkify-0.1.0/larkify/feishu.py +40 -0
- larkify-0.1.0/larkify/log.py +3 -0
- larkify-0.1.0/larkify/model.py +33 -0
- larkify-0.1.0/larkify/models/__init__.py +0 -0
- larkify-0.1.0/larkify/models/acs/__init__.py +0 -0
- larkify-0.1.0/larkify/models/acs/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/acs/v1/_shared.py +41 -0
- larkify-0.1.0/larkify/models/acs/v1/access_record.py +47 -0
- larkify-0.1.0/larkify/models/acs/v1/device.py +49 -0
- larkify-0.1.0/larkify/models/acs/v1/rule_external.py +239 -0
- larkify-0.1.0/larkify/models/acs/v1/user.py +79 -0
- larkify-0.1.0/larkify/models/acs/v1/user_face.py +36 -0
- larkify-0.1.0/larkify/models/acs/v1/visitor.py +40 -0
- larkify-0.1.0/larkify/models/admin/__init__.py +0 -0
- larkify-0.1.0/larkify/models/admin/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/admin/v1/_shared.py +24 -0
- larkify-0.1.0/larkify/models/admin/v1/admin_dept_stat.py +118 -0
- larkify-0.1.0/larkify/models/admin/v1/admin_user_stat.py +98 -0
- larkify-0.1.0/larkify/models/admin/v1/audit_info.py +358 -0
- larkify-0.1.0/larkify/models/admin/v1/badge.py +145 -0
- larkify-0.1.0/larkify/models/admin/v1/badge_grant.py +176 -0
- larkify-0.1.0/larkify/models/admin/v1/badge_image.py +39 -0
- larkify-0.1.0/larkify/models/admin/v1/password.py +45 -0
- larkify-0.1.0/larkify/models/aily/__init__.py +0 -0
- larkify-0.1.0/larkify/models/aily/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/aily/v1/_shared.py +20 -0
- larkify-0.1.0/larkify/models/aily/v1/agent_agent_artifact.py +32 -0
- larkify-0.1.0/larkify/models/aily/v1/agent_agent_attachment.py +42 -0
- larkify-0.1.0/larkify/models/aily/v1/agent_agent_chat.py +97 -0
- larkify-0.1.0/larkify/models/aily/v1/agent_agent_chat_session.py +93 -0
- larkify-0.1.0/larkify/models/aily/v1/agent_agent_visibility.py +35 -0
- larkify-0.1.0/larkify/models/aily/v1/aily_session.py +80 -0
- larkify-0.1.0/larkify/models/aily/v1/aily_session_aily_message.py +179 -0
- larkify-0.1.0/larkify/models/aily/v1/aily_session_run.py +104 -0
- larkify-0.1.0/larkify/models/aily/v1/app_data_asset.py +296 -0
- larkify-0.1.0/larkify/models/aily/v1/app_data_asset_tag.py +30 -0
- larkify-0.1.0/larkify/models/aily/v1/app_knowledge.py +94 -0
- larkify-0.1.0/larkify/models/aily/v1/app_skill.py +108 -0
- larkify-0.1.0/larkify/models/aily/v1/tenant_app_stat.py +66 -0
- larkify-0.1.0/larkify/models/apaas/__init__.py +0 -0
- larkify-0.1.0/larkify/models/apaas/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/apaas/v1/_shared.py +79 -0
- larkify-0.1.0/larkify/models/apaas/v1/app.py +94 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_audit_log.py +240 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_environment_variable.py +96 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_flow.py +55 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_function.py +33 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_object.py +180 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_object_record.py +213 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_record_permission_member.py +42 -0
- larkify-0.1.0/larkify/models/apaas/v1/application_role_member.py +118 -0
- larkify-0.1.0/larkify/models/apaas/v1/approval_instance.py +32 -0
- larkify-0.1.0/larkify/models/apaas/v1/approval_task.py +86 -0
- larkify-0.1.0/larkify/models/apaas/v1/seat_activity.py +40 -0
- larkify-0.1.0/larkify/models/apaas/v1/seat_assignment.py +38 -0
- larkify-0.1.0/larkify/models/apaas/v1/tenant_app_metrics.py +46 -0
- larkify-0.1.0/larkify/models/apaas/v1/user_task.py +207 -0
- larkify-0.1.0/larkify/models/apaas/v1/workspace.py +35 -0
- larkify-0.1.0/larkify/models/apaas/v1/workspace_enum.py +68 -0
- larkify-0.1.0/larkify/models/apaas/v1/workspace_table.py +137 -0
- larkify-0.1.0/larkify/models/apaas/v1/workspace_view.py +24 -0
- larkify-0.1.0/larkify/models/application/__init__.py +0 -0
- larkify-0.1.0/larkify/models/application/v5/__init__.py +0 -0
- larkify-0.1.0/larkify/models/application/v5/application.py +72 -0
- larkify-0.1.0/larkify/models/application/v6/__init__.py +0 -0
- larkify-0.1.0/larkify/models/application/v6/_shared.py +64 -0
- larkify-0.1.0/larkify/models/application/v6/app_badge.py +57 -0
- larkify-0.1.0/larkify/models/application/v6/app_recommend_rule.py +96 -0
- larkify-0.1.0/larkify/models/application/v6/application.py +186 -0
- larkify-0.1.0/larkify/models/application/v6/application_app_usage.py +129 -0
- larkify-0.1.0/larkify/models/application/v6/application_app_version.py +358 -0
- larkify-0.1.0/larkify/models/application/v6/application_collaborators.py +60 -0
- larkify-0.1.0/larkify/models/application/v6/application_contacts_range.py +54 -0
- larkify-0.1.0/larkify/models/application/v6/application_feedback.py +64 -0
- larkify-0.1.0/larkify/models/application/v6/application_management.py +27 -0
- larkify-0.1.0/larkify/models/application/v6/application_owner.py +29 -0
- larkify-0.1.0/larkify/models/application/v6/application_visibility.py +119 -0
- larkify-0.1.0/larkify/models/application/v6/scope.py +30 -0
- larkify-0.1.0/larkify/models/application/v7/__init__.py +0 -0
- larkify-0.1.0/larkify/models/application/v7/app_avatar_upload.py +36 -0
- larkify-0.1.0/larkify/models/application/v7/application_ability.py +188 -0
- larkify-0.1.0/larkify/models/application/v7/application_base.py +74 -0
- larkify-0.1.0/larkify/models/application/v7/application_config.py +250 -0
- larkify-0.1.0/larkify/models/application/v7/application_publish.py +49 -0
- larkify-0.1.0/larkify/models/approval/__init__.py +0 -0
- larkify-0.1.0/larkify/models/approval/v4/__init__.py +0 -0
- larkify-0.1.0/larkify/models/approval/v4/_shared.py +164 -0
- larkify-0.1.0/larkify/models/approval/v4/approval.py +378 -0
- larkify-0.1.0/larkify/models/approval/v4/district.py +76 -0
- larkify-0.1.0/larkify/models/approval/v4/external_approval.py +185 -0
- larkify-0.1.0/larkify/models/approval/v4/external_instance.py +587 -0
- larkify-0.1.0/larkify/models/approval/v4/external_task.py +76 -0
- larkify-0.1.0/larkify/models/approval/v4/instance.py +805 -0
- larkify-0.1.0/larkify/models/approval/v4/instance_comment.py +139 -0
- larkify-0.1.0/larkify/models/approval/v4/task.py +490 -0
- larkify-0.1.0/larkify/models/attendance/__init__.py +0 -0
- larkify-0.1.0/larkify/models/attendance/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/attendance/v1/_shared.py +60 -0
- larkify-0.1.0/larkify/models/attendance/v1/approval_info.py +53 -0
- larkify-0.1.0/larkify/models/attendance/v1/archive_rule.py +174 -0
- larkify-0.1.0/larkify/models/attendance/v1/file.py +42 -0
- larkify-0.1.0/larkify/models/attendance/v1/group.py +1074 -0
- larkify-0.1.0/larkify/models/attendance/v1/leave_accrual_record.py +108 -0
- larkify-0.1.0/larkify/models/attendance/v1/leave_employ_expire_record.py +81 -0
- larkify-0.1.0/larkify/models/attendance/v1/shift.py +497 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_approval.py +525 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_daily_shift.py +182 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_flow.py +189 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_setting.py +83 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_stats_data.py +106 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_stats_field.py +76 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_stats_view.py +150 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_task.py +96 -0
- larkify-0.1.0/larkify/models/attendance/v1/user_task_remedy.py +154 -0
- larkify-0.1.0/larkify/models/auth/__init__.py +0 -0
- larkify-0.1.0/larkify/models/auth/v3/__init__.py +0 -0
- larkify-0.1.0/larkify/models/auth/v3/auth.py +123 -0
- larkify-0.1.0/larkify/models/authen/__init__.py +0 -0
- larkify-0.1.0/larkify/models/authen/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/authen/v1/access_token.py +74 -0
- larkify-0.1.0/larkify/models/authen/v1/oidc_access_token.py +48 -0
- larkify-0.1.0/larkify/models/authen/v1/oidc_refresh_access_token.py +48 -0
- larkify-0.1.0/larkify/models/authen/v1/refresh_access_token.py +74 -0
- larkify-0.1.0/larkify/models/authen/v1/user_info.py +44 -0
- larkify-0.1.0/larkify/models/baike/__init__.py +0 -0
- larkify-0.1.0/larkify/models/baike/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/baike/v1/_shared.py +305 -0
- larkify-0.1.0/larkify/models/baike/v1/classification.py +28 -0
- larkify-0.1.0/larkify/models/baike/v1/draft.py +105 -0
- larkify-0.1.0/larkify/models/baike/v1/entity.py +245 -0
- larkify-0.1.0/larkify/models/baike/v1/file.py +39 -0
- larkify-0.1.0/larkify/models/base/__init__.py +0 -0
- larkify-0.1.0/larkify/models/base/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/base/v2/app_role.py +322 -0
- larkify-0.1.0/larkify/models/bitable/__init__.py +0 -0
- larkify-0.1.0/larkify/models/bitable/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/bitable/v1/_shared.py +325 -0
- larkify-0.1.0/larkify/models/bitable/v1/app.py +159 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_block_workflow.py +30 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_dashboard.py +60 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_role.py +227 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_role_member.py +110 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_table.py +218 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_table_field.py +438 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_table_field_group.py +69 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_table_form.py +99 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_table_form_field.py +127 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_table_record.py +348 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_table_view.py +230 -0
- larkify-0.1.0/larkify/models/bitable/v1/app_workflow.py +45 -0
- larkify-0.1.0/larkify/models/board/__init__.py +0 -0
- larkify-0.1.0/larkify/models/board/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/board/v1/whiteboard.py +39 -0
- larkify-0.1.0/larkify/models/board/v1/whiteboard_node.py +1645 -0
- larkify-0.1.0/larkify/models/bot/__init__.py +0 -0
- larkify-0.1.0/larkify/models/bot/v3/__init__.py +0 -0
- larkify-0.1.0/larkify/models/bot/v3/bot_menu.py +327 -0
- larkify-0.1.0/larkify/models/bot/v4/__init__.py +0 -0
- larkify-0.1.0/larkify/models/bot/v4/bot.py +88 -0
- larkify-0.1.0/larkify/models/calendar/__init__.py +0 -0
- larkify-0.1.0/larkify/models/calendar/v4/__init__.py +0 -0
- larkify-0.1.0/larkify/models/calendar/v4/_shared.py +80 -0
- larkify-0.1.0/larkify/models/calendar/v4/calendar.py +219 -0
- larkify-0.1.0/larkify/models/calendar/v4/calendar_acl.py +92 -0
- larkify-0.1.0/larkify/models/calendar/v4/calendar_event.py +916 -0
- larkify-0.1.0/larkify/models/calendar/v4/calendar_event_attendee.py +215 -0
- larkify-0.1.0/larkify/models/calendar/v4/calendar_event_attendee_chat_member.py +44 -0
- larkify-0.1.0/larkify/models/calendar/v4/calendar_event_meeting_chat.py +20 -0
- larkify-0.1.0/larkify/models/calendar/v4/calendar_event_meeting_minute.py +18 -0
- larkify-0.1.0/larkify/models/calendar/v4/exchange_binding.py +61 -0
- larkify-0.1.0/larkify/models/calendar/v4/freebusy.py +109 -0
- larkify-0.1.0/larkify/models/calendar/v4/setting.py +39 -0
- larkify-0.1.0/larkify/models/calendar/v4/timeoff_event.py +62 -0
- larkify-0.1.0/larkify/models/cardkit/__init__.py +0 -0
- larkify-0.1.0/larkify/models/cardkit/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/cardkit/v1/card.py +122 -0
- larkify-0.1.0/larkify/models/cardkit/v1/card_element.py +106 -0
- larkify-0.1.0/larkify/models/compensation/__init__.py +0 -0
- larkify-0.1.0/larkify/models/compensation/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/compensation/v1/_shared.py +104 -0
- larkify-0.1.0/larkify/models/compensation/v1/archive.py +174 -0
- larkify-0.1.0/larkify/models/compensation/v1/change_reason.py +48 -0
- larkify-0.1.0/larkify/models/compensation/v1/indicator.py +46 -0
- larkify-0.1.0/larkify/models/compensation/v1/item.py +58 -0
- larkify-0.1.0/larkify/models/compensation/v1/item_category.py +42 -0
- larkify-0.1.0/larkify/models/compensation/v1/lump_sum_payment.py +525 -0
- larkify-0.1.0/larkify/models/compensation/v1/plan.py +132 -0
- larkify-0.1.0/larkify/models/compensation/v1/recurring_payment.py +321 -0
- larkify-0.1.0/larkify/models/compensation/v1/social_archive.py +50 -0
- larkify-0.1.0/larkify/models/compensation/v1/social_archive_adjust_record.py +54 -0
- larkify-0.1.0/larkify/models/compensation/v1/social_insurance.py +40 -0
- larkify-0.1.0/larkify/models/compensation/v1/social_plan.py +119 -0
- larkify-0.1.0/larkify/models/contact/__init__.py +0 -0
- larkify-0.1.0/larkify/models/contact/v3/__init__.py +0 -0
- larkify-0.1.0/larkify/models/contact/v3/_shared.py +50 -0
- larkify-0.1.0/larkify/models/contact/v3/custom_attr.py +66 -0
- larkify-0.1.0/larkify/models/contact/v3/department.py +362 -0
- larkify-0.1.0/larkify/models/contact/v3/employee_type_enum.py +108 -0
- larkify-0.1.0/larkify/models/contact/v3/functional_role.py +46 -0
- larkify-0.1.0/larkify/models/contact/v3/functional_role_member.py +112 -0
- larkify-0.1.0/larkify/models/contact/v3/group.py +128 -0
- larkify-0.1.0/larkify/models/contact/v3/group_member.py +129 -0
- larkify-0.1.0/larkify/models/contact/v3/job_family.py +128 -0
- larkify-0.1.0/larkify/models/contact/v3/job_level.py +128 -0
- larkify-0.1.0/larkify/models/contact/v3/job_title.py +52 -0
- larkify-0.1.0/larkify/models/contact/v3/scope.py +26 -0
- larkify-0.1.0/larkify/models/contact/v3/unit.py +140 -0
- larkify-0.1.0/larkify/models/contact/v3/user.py +1130 -0
- larkify-0.1.0/larkify/models/contact/v3/work_city.py +52 -0
- larkify-0.1.0/larkify/models/corehr/__init__.py +0 -0
- larkify-0.1.0/larkify/models/corehr/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/corehr/v1/_shared.py +302 -0
- larkify-0.1.0/larkify/models/corehr/v1/assigned_user.py +85 -0
- larkify-0.1.0/larkify/models/corehr/v1/authorization.py +233 -0
- larkify-0.1.0/larkify/models/corehr/v1/common_data_id.py +43 -0
- larkify-0.1.0/larkify/models/corehr/v1/common_data_meta_data.py +139 -0
- larkify-0.1.0/larkify/models/corehr/v1/company.py +593 -0
- larkify-0.1.0/larkify/models/corehr/v1/compensation_standard.py +104 -0
- larkify-0.1.0/larkify/models/corehr/v1/contract.py +177 -0
- larkify-0.1.0/larkify/models/corehr/v1/country_region.py +52 -0
- larkify-0.1.0/larkify/models/corehr/v1/currency.py +54 -0
- larkify-0.1.0/larkify/models/corehr/v1/custom_field.py +204 -0
- larkify-0.1.0/larkify/models/corehr/v1/department.py +239 -0
- larkify-0.1.0/larkify/models/corehr/v1/employee_type.py +123 -0
- larkify-0.1.0/larkify/models/corehr/v1/employment.py +312 -0
- larkify-0.1.0/larkify/models/corehr/v1/job.py +179 -0
- larkify-0.1.0/larkify/models/corehr/v1/job_change.py +445 -0
- larkify-0.1.0/larkify/models/corehr/v1/job_data.py +452 -0
- larkify-0.1.0/larkify/models/corehr/v1/job_family.py +157 -0
- larkify-0.1.0/larkify/models/corehr/v1/job_level.py +155 -0
- larkify-0.1.0/larkify/models/corehr/v1/leave.py +405 -0
- larkify-0.1.0/larkify/models/corehr/v1/leave_granting_record.py +99 -0
- larkify-0.1.0/larkify/models/corehr/v1/location.py +204 -0
- larkify-0.1.0/larkify/models/corehr/v1/national_id_type.py +150 -0
- larkify-0.1.0/larkify/models/corehr/v1/offboarding.py +318 -0
- larkify-0.1.0/larkify/models/corehr/v1/person.py +1396 -0
- larkify-0.1.0/larkify/models/corehr/v1/pre_hire.py +146 -0
- larkify-0.1.0/larkify/models/corehr/v1/process_form_variable_data.py +244 -0
- larkify-0.1.0/larkify/models/corehr/v1/security_group.py +91 -0
- larkify-0.1.0/larkify/models/corehr/v1/subdivision.py +53 -0
- larkify-0.1.0/larkify/models/corehr/v1/subregion.py +52 -0
- larkify-0.1.0/larkify/models/corehr/v1/transfer_reason.py +40 -0
- larkify-0.1.0/larkify/models/corehr/v1/transfer_type.py +42 -0
- larkify-0.1.0/larkify/models/corehr/v1/working_hours_type.py +131 -0
- larkify-0.1.0/larkify/models/corehr/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/corehr/v2/_shared.py +1218 -0
- larkify-0.1.0/larkify/models/corehr/v2/approval_groups.py +542 -0
- larkify-0.1.0/larkify/models/corehr/v2/approver.py +38 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_bank.py +75 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_bank_branch.py +89 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_city.py +67 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_country_region.py +66 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_country_region_subdivision.py +68 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_currency.py +48 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_district.py +65 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_language.py +60 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_nationality.py +69 -0
- larkify-0.1.0/larkify/models/corehr/v2/basic_info_time_zone.py +62 -0
- larkify-0.1.0/larkify/models/corehr/v2/bp.py +65 -0
- larkify-0.1.0/larkify/models/corehr/v2/company.py +215 -0
- larkify-0.1.0/larkify/models/corehr/v2/contract.py +82 -0
- larkify-0.1.0/larkify/models/corehr/v2/cost_allocation.py +232 -0
- larkify-0.1.0/larkify/models/corehr/v2/cost_center.py +270 -0
- larkify-0.1.0/larkify/models/corehr/v2/cost_center_version.py +111 -0
- larkify-0.1.0/larkify/models/corehr/v2/custom_org.py +344 -0
- larkify-0.1.0/larkify/models/corehr/v2/default_cost_center.py +212 -0
- larkify-0.1.0/larkify/models/corehr/v2/department.py +495 -0
- larkify-0.1.0/larkify/models/corehr/v2/draft.py +32 -0
- larkify-0.1.0/larkify/models/corehr/v2/employee.py +1944 -0
- larkify-0.1.0/larkify/models/corehr/v2/employee_custom_org.py +170 -0
- larkify-0.1.0/larkify/models/corehr/v2/employees_additional_job.py +309 -0
- larkify-0.1.0/larkify/models/corehr/v2/employees_bp.py +50 -0
- larkify-0.1.0/larkify/models/corehr/v2/employees_international_assignment.py +340 -0
- larkify-0.1.0/larkify/models/corehr/v2/employees_job_data.py +272 -0
- larkify-0.1.0/larkify/models/corehr/v2/enum.py +61 -0
- larkify-0.1.0/larkify/models/corehr/v2/job.py +179 -0
- larkify-0.1.0/larkify/models/corehr/v2/job_change.py +723 -0
- larkify-0.1.0/larkify/models/corehr/v2/job_family.py +139 -0
- larkify-0.1.0/larkify/models/corehr/v2/job_grade.py +132 -0
- larkify-0.1.0/larkify/models/corehr/v2/job_level.py +77 -0
- larkify-0.1.0/larkify/models/corehr/v2/location.py +216 -0
- larkify-0.1.0/larkify/models/corehr/v2/location_address.py +201 -0
- larkify-0.1.0/larkify/models/corehr/v2/offboarding.py +131 -0
- larkify-0.1.0/larkify/models/corehr/v2/pathway.py +123 -0
- larkify-0.1.0/larkify/models/corehr/v2/person.py +1396 -0
- larkify-0.1.0/larkify/models/corehr/v2/position.py +283 -0
- larkify-0.1.0/larkify/models/corehr/v2/pre_hire.py +2203 -0
- larkify-0.1.0/larkify/models/corehr/v2/probation.py +346 -0
- larkify-0.1.0/larkify/models/corehr/v2/probation_assessment.py +100 -0
- larkify-0.1.0/larkify/models/corehr/v2/process.py +244 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_approver.py +54 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_extra.py +50 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_form_variable_data.py +24 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_query_flow_data_template.py +108 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_revoke.py +33 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_start.py +49 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_transfer.py +41 -0
- larkify-0.1.0/larkify/models/corehr/v2/process_withdraw.py +33 -0
- larkify-0.1.0/larkify/models/corehr/v2/report_detail_row.py +57 -0
- larkify-0.1.0/larkify/models/corehr/v2/signature_file.py +138 -0
- larkify-0.1.0/larkify/models/corehr/v2/signature_node.py +52 -0
- larkify-0.1.0/larkify/models/corehr/v2/signature_template.py +225 -0
- larkify-0.1.0/larkify/models/corehr/v2/signature_template_info_with_thumbnail.py +70 -0
- larkify-0.1.0/larkify/models/corehr/v2/workforce_plan.py +50 -0
- larkify-0.1.0/larkify/models/corehr/v2/workforce_plan_detail.py +225 -0
- larkify-0.1.0/larkify/models/corehr/v2/workforce_plan_detail_row.py +51 -0
- larkify-0.1.0/larkify/models/directory/__init__.py +0 -0
- larkify-0.1.0/larkify/models/directory/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/directory/v1/_shared.py +335 -0
- larkify-0.1.0/larkify/models/directory/v1/collaboration_rule.py +113 -0
- larkify-0.1.0/larkify/models/directory/v1/collaboration_tenant.py +49 -0
- larkify-0.1.0/larkify/models/directory/v1/collboration_share_entity.py +65 -0
- larkify-0.1.0/larkify/models/directory/v1/department.py +212 -0
- larkify-0.1.0/larkify/models/directory/v1/employee.py +740 -0
- larkify-0.1.0/larkify/models/docs/__init__.py +0 -0
- larkify-0.1.0/larkify/models/docs/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/docs/v1/content.py +18 -0
- larkify-0.1.0/larkify/models/document_ai/__init__.py +0 -0
- larkify-0.1.0/larkify/models/document_ai/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/document_ai/v1/bank_card.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/business_card.py +50 -0
- larkify-0.1.0/larkify/models/document_ai/v1/business_license.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/chinese_passport.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/contract.py +185 -0
- larkify-0.1.0/larkify/models/document_ai/v1/driving_license.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/food_manage_license.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/food_produce_license.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/health_certificate.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/hkm_mainland_travel_permit.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/id_card.py +58 -0
- larkify-0.1.0/larkify/models/document_ai/v1/resume.py +184 -0
- larkify-0.1.0/larkify/models/document_ai/v1/taxi_invoice.py +50 -0
- larkify-0.1.0/larkify/models/document_ai/v1/train_invoice.py +50 -0
- larkify-0.1.0/larkify/models/document_ai/v1/tw_mainland_travel_permit.py +50 -0
- larkify-0.1.0/larkify/models/document_ai/v1/vat_invoice.py +60 -0
- larkify-0.1.0/larkify/models/document_ai/v1/vehicle_invoice.py +52 -0
- larkify-0.1.0/larkify/models/document_ai/v1/vehicle_license.py +52 -0
- larkify-0.1.0/larkify/models/docx/__init__.py +0 -0
- larkify-0.1.0/larkify/models/docx/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/docx/v1/_shared.py +2538 -0
- larkify-0.1.0/larkify/models/docx/v1/chat_announcement.py +36 -0
- larkify-0.1.0/larkify/models/docx/v1/chat_announcement_block.py +179 -0
- larkify-0.1.0/larkify/models/docx/v1/chat_announcement_block_children.py +85 -0
- larkify-0.1.0/larkify/models/docx/v1/document.py +134 -0
- larkify-0.1.0/larkify/models/docx/v1/document_block.py +305 -0
- larkify-0.1.0/larkify/models/docx/v1/document_block_children.py +85 -0
- larkify-0.1.0/larkify/models/docx/v1/document_block_descendant.py +312 -0
- larkify-0.1.0/larkify/models/drive/__init__.py +0 -0
- larkify-0.1.0/larkify/models/drive/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/drive/v1/_shared.py +170 -0
- larkify-0.1.0/larkify/models/drive/v1/export_task.py +75 -0
- larkify-0.1.0/larkify/models/drive/v1/file.py +327 -0
- larkify-0.1.0/larkify/models/drive/v1/file_comment.py +224 -0
- larkify-0.1.0/larkify/models/drive/v1/file_comment_reply.py +94 -0
- larkify-0.1.0/larkify/models/drive/v1/file_statistics.py +44 -0
- larkify-0.1.0/larkify/models/drive/v1/file_subscription.py +99 -0
- larkify-0.1.0/larkify/models/drive/v1/file_version.py +140 -0
- larkify-0.1.0/larkify/models/drive/v1/file_view_record.py +40 -0
- larkify-0.1.0/larkify/models/drive/v1/import_task.py +92 -0
- larkify-0.1.0/larkify/models/drive/v1/media.py +172 -0
- larkify-0.1.0/larkify/models/drive/v1/meta.py +109 -0
- larkify-0.1.0/larkify/models/drive/v1/permission_member.py +263 -0
- larkify-0.1.0/larkify/models/drive/v1/permission_public.py +80 -0
- larkify-0.1.0/larkify/models/drive/v1/permission_public_password.py +26 -0
- larkify-0.1.0/larkify/models/drive/v1/user.py +35 -0
- larkify-0.1.0/larkify/models/drive/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/drive/v2/comment_reaction.py +38 -0
- larkify-0.1.0/larkify/models/drive/v2/file_like.py +44 -0
- larkify-0.1.0/larkify/models/drive/v2/permission_public.py +120 -0
- larkify-0.1.0/larkify/models/ehr/__init__.py +0 -0
- larkify-0.1.0/larkify/models/ehr/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/ehr/v1/employee.py +300 -0
- larkify-0.1.0/larkify/models/event/__init__.py +0 -0
- larkify-0.1.0/larkify/models/event/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/event/v1/connection.py +18 -0
- larkify-0.1.0/larkify/models/event/v1/outbound_ip.py +26 -0
- larkify-0.1.0/larkify/models/helpdesk/__init__.py +0 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/_shared.py +155 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/agent.py +33 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/agent_schedule.py +58 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/agent_schedules.py +55 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/agent_skill.py +184 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/agent_skill_rule.py +36 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/bot_message.py +44 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/category.py +79 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/event.py +54 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/faq.py +210 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/notification.py +330 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/ticket.py +293 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/ticket_customized_field.py +143 -0
- larkify-0.1.0/larkify/models/helpdesk/v1/ticket_message.py +66 -0
- larkify-0.1.0/larkify/models/hire/__init__.py +0 -0
- larkify-0.1.0/larkify/models/hire/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/hire/v1/_shared.py +873 -0
- larkify-0.1.0/larkify/models/hire/v1/advertisement.py +27 -0
- larkify-0.1.0/larkify/models/hire/v1/agency.py +344 -0
- larkify-0.1.0/larkify/models/hire/v1/application.py +992 -0
- larkify-0.1.0/larkify/models/hire/v1/application_interview.py +48 -0
- larkify-0.1.0/larkify/models/hire/v1/attachment.py +48 -0
- larkify-0.1.0/larkify/models/hire/v1/background_check_order.py +249 -0
- larkify-0.1.0/larkify/models/hire/v1/diversity_inclusion.py +84 -0
- larkify-0.1.0/larkify/models/hire/v1/eco_account_custom_field.py +85 -0
- larkify-0.1.0/larkify/models/hire/v1/eco_background_check.py +107 -0
- larkify-0.1.0/larkify/models/hire/v1/eco_background_check_custom_field.py +114 -0
- larkify-0.1.0/larkify/models/hire/v1/eco_background_check_package.py +107 -0
- larkify-0.1.0/larkify/models/hire/v1/eco_exam.py +111 -0
- larkify-0.1.0/larkify/models/hire/v1/eco_exam_paper.py +86 -0
- larkify-0.1.0/larkify/models/hire/v1/ehr_import_task.py +35 -0
- larkify-0.1.0/larkify/models/hire/v1/employee.py +86 -0
- larkify-0.1.0/larkify/models/hire/v1/evaluation.py +30 -0
- larkify-0.1.0/larkify/models/hire/v1/evaluation_task.py +42 -0
- larkify-0.1.0/larkify/models/hire/v1/exam.py +59 -0
- larkify-0.1.0/larkify/models/hire/v1/exam_marking_task.py +42 -0
- larkify-0.1.0/larkify/models/hire/v1/external_application.py +155 -0
- larkify-0.1.0/larkify/models/hire/v1/external_background_check.py +130 -0
- larkify-0.1.0/larkify/models/hire/v1/external_interview.py +164 -0
- larkify-0.1.0/larkify/models/hire/v1/external_interview_assessment.py +108 -0
- larkify-0.1.0/larkify/models/hire/v1/external_offer.py +130 -0
- larkify-0.1.0/larkify/models/hire/v1/external_referral_reward.py +110 -0
- larkify-0.1.0/larkify/models/hire/v1/interview.py +142 -0
- larkify-0.1.0/larkify/models/hire/v1/interview_feedback_form.py +162 -0
- larkify-0.1.0/larkify/models/hire/v1/interview_record.py +38 -0
- larkify-0.1.0/larkify/models/hire/v1/interview_record_attachment.py +36 -0
- larkify-0.1.0/larkify/models/hire/v1/interview_registration_schema.py +44 -0
- larkify-0.1.0/larkify/models/hire/v1/interview_round_type.py +56 -0
- larkify-0.1.0/larkify/models/hire/v1/interview_task.py +42 -0
- larkify-0.1.0/larkify/models/hire/v1/interviewer.py +70 -0
- larkify-0.1.0/larkify/models/hire/v1/job.py +1205 -0
- larkify-0.1.0/larkify/models/hire/v1/job_function.py +44 -0
- larkify-0.1.0/larkify/models/hire/v1/job_manager.py +57 -0
- larkify-0.1.0/larkify/models/hire/v1/job_process.py +54 -0
- larkify-0.1.0/larkify/models/hire/v1/job_publish_record.py +111 -0
- larkify-0.1.0/larkify/models/hire/v1/job_requirement.py +469 -0
- larkify-0.1.0/larkify/models/hire/v1/job_requirement_schema.py +43 -0
- larkify-0.1.0/larkify/models/hire/v1/job_schema.py +45 -0
- larkify-0.1.0/larkify/models/hire/v1/job_type.py +30 -0
- larkify-0.1.0/larkify/models/hire/v1/location.py +159 -0
- larkify-0.1.0/larkify/models/hire/v1/minutes.py +48 -0
- larkify-0.1.0/larkify/models/hire/v1/note.py +135 -0
- larkify-0.1.0/larkify/models/hire/v1/offer.py +575 -0
- larkify-0.1.0/larkify/models/hire/v1/offer_application_form.py +178 -0
- larkify-0.1.0/larkify/models/hire/v1/offer_approval_template.py +58 -0
- larkify-0.1.0/larkify/models/hire/v1/offer_custom_field.py +61 -0
- larkify-0.1.0/larkify/models/hire/v1/offer_schema.py +60 -0
- larkify-0.1.0/larkify/models/hire/v1/portal_apply_schema.py +30 -0
- larkify-0.1.0/larkify/models/hire/v1/questionnaire.py +102 -0
- larkify-0.1.0/larkify/models/hire/v1/referral.py +79 -0
- larkify-0.1.0/larkify/models/hire/v1/referral_account.py +250 -0
- larkify-0.1.0/larkify/models/hire/v1/referral_website_job_post.py +160 -0
- larkify-0.1.0/larkify/models/hire/v1/registration_schema.py +30 -0
- larkify-0.1.0/larkify/models/hire/v1/resume_source.py +42 -0
- larkify-0.1.0/larkify/models/hire/v1/role.py +125 -0
- larkify-0.1.0/larkify/models/hire/v1/subject.py +49 -0
- larkify-0.1.0/larkify/models/hire/v1/talent.py +1287 -0
- larkify-0.1.0/larkify/models/hire/v1/talent_blocklist.py +35 -0
- larkify-0.1.0/larkify/models/hire/v1/talent_external_info.py +62 -0
- larkify-0.1.0/larkify/models/hire/v1/talent_folder.py +38 -0
- larkify-0.1.0/larkify/models/hire/v1/talent_object.py +22 -0
- larkify-0.1.0/larkify/models/hire/v1/talent_operation_log.py +69 -0
- larkify-0.1.0/larkify/models/hire/v1/talent_pool.py +90 -0
- larkify-0.1.0/larkify/models/hire/v1/talent_tag.py +48 -0
- larkify-0.1.0/larkify/models/hire/v1/termination_reason.py +48 -0
- larkify-0.1.0/larkify/models/hire/v1/test.py +113 -0
- larkify-0.1.0/larkify/models/hire/v1/todo.py +54 -0
- larkify-0.1.0/larkify/models/hire/v1/tripartite_agreement.py +89 -0
- larkify-0.1.0/larkify/models/hire/v1/user_role.py +58 -0
- larkify-0.1.0/larkify/models/hire/v1/website.py +44 -0
- larkify-0.1.0/larkify/models/hire/v1/website_channel.py +90 -0
- larkify-0.1.0/larkify/models/hire/v1/website_delivery.py +507 -0
- larkify-0.1.0/larkify/models/hire/v1/website_delivery_task.py +28 -0
- larkify-0.1.0/larkify/models/hire/v1/website_job_post.py +213 -0
- larkify-0.1.0/larkify/models/hire/v1/website_site_user.py +65 -0
- larkify-0.1.0/larkify/models/hire/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/hire/v2/_shared.py +22 -0
- larkify-0.1.0/larkify/models/hire/v2/interview_record.py +192 -0
- larkify-0.1.0/larkify/models/hire/v2/talent.py +436 -0
- larkify-0.1.0/larkify/models/human_authentication/__init__.py +0 -0
- larkify-0.1.0/larkify/models/human_authentication/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/human_authentication/v1/identity.py +41 -0
- larkify-0.1.0/larkify/models/im/__init__.py +0 -0
- larkify-0.1.0/larkify/models/im/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/im/v1/_shared.py +183 -0
- larkify-0.1.0/larkify/models/im/v1/batch_message.py +60 -0
- larkify-0.1.0/larkify/models/im/v1/chat.py +377 -0
- larkify-0.1.0/larkify/models/im/v1/chat_announcement.py +52 -0
- larkify-0.1.0/larkify/models/im/v1/chat_managers.py +54 -0
- larkify-0.1.0/larkify/models/im/v1/chat_members.py +90 -0
- larkify-0.1.0/larkify/models/im/v1/chat_menu_item.py +44 -0
- larkify-0.1.0/larkify/models/im/v1/chat_menu_tree.py +174 -0
- larkify-0.1.0/larkify/models/im/v1/chat_moderation.py +59 -0
- larkify-0.1.0/larkify/models/im/v1/chat_tab.py +239 -0
- larkify-0.1.0/larkify/models/im/v1/chat_top_notice.py +43 -0
- larkify-0.1.0/larkify/models/im/v1/file.py +45 -0
- larkify-0.1.0/larkify/models/im/v1/image.py +39 -0
- larkify-0.1.0/larkify/models/im/v1/message.py +610 -0
- larkify-0.1.0/larkify/models/im/v1/message_reaction.py +199 -0
- larkify-0.1.0/larkify/models/im/v1/pin.py +65 -0
- larkify-0.1.0/larkify/models/im/v1/thread.py +78 -0
- larkify-0.1.0/larkify/models/im/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/im/v2/_shared.py +204 -0
- larkify-0.1.0/larkify/models/im/v2/app_feed_card.py +44 -0
- larkify-0.1.0/larkify/models/im/v2/app_feed_card_batch.py +91 -0
- larkify-0.1.0/larkify/models/im/v2/biz_entity_tag_relation.py +88 -0
- larkify-0.1.0/larkify/models/im/v2/chat.py +120 -0
- larkify-0.1.0/larkify/models/im/v2/chat_button.py +47 -0
- larkify-0.1.0/larkify/models/im/v2/feed_card.py +62 -0
- larkify-0.1.0/larkify/models/im/v2/tag.py +150 -0
- larkify-0.1.0/larkify/models/im/v2/url_preview.py +32 -0
- larkify-0.1.0/larkify/models/lingo/__init__.py +0 -0
- larkify-0.1.0/larkify/models/lingo/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/lingo/v1/_shared.py +336 -0
- larkify-0.1.0/larkify/models/lingo/v1/classification.py +48 -0
- larkify-0.1.0/larkify/models/lingo/v1/draft.py +113 -0
- larkify-0.1.0/larkify/models/lingo/v1/entity.py +232 -0
- larkify-0.1.0/larkify/models/lingo/v1/file.py +39 -0
- larkify-0.1.0/larkify/models/lingo/v1/repo.py +28 -0
- larkify-0.1.0/larkify/models/mail/__init__.py +0 -0
- larkify-0.1.0/larkify/models/mail/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/mail/v1/_shared.py +222 -0
- larkify-0.1.0/larkify/models/mail/v1/mailgroup.py +196 -0
- larkify-0.1.0/larkify/models/mail/v1/mailgroup_alias.py +43 -0
- larkify-0.1.0/larkify/models/mail/v1/mailgroup_manager.py +69 -0
- larkify-0.1.0/larkify/models/mail/v1/mailgroup_member.py +159 -0
- larkify-0.1.0/larkify/models/mail/v1/mailgroup_permission_member.py +145 -0
- larkify-0.1.0/larkify/models/mail/v1/multi_entity.py +64 -0
- larkify-0.1.0/larkify/models/mail/v1/public_mailbox.py +142 -0
- larkify-0.1.0/larkify/models/mail/v1/public_mailbox_alias.py +43 -0
- larkify-0.1.0/larkify/models/mail/v1/public_mailbox_member.py +121 -0
- larkify-0.1.0/larkify/models/mail/v1/user.py +45 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox.py +172 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_alias.py +43 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_draft.py +140 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_event.py +46 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_folder.py +82 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_label.py +110 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_mail_contact.py +122 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_message.py +273 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_message_attachment.py +27 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_rule.py +201 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_sent_message.py +58 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_setting.py +90 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_template.py +177 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_template_attachment.py +25 -0
- larkify-0.1.0/larkify/models/mail/v1/user_mailbox_thread.py +108 -0
- larkify-0.1.0/larkify/models/mdm/__init__.py +0 -0
- larkify-0.1.0/larkify/models/mdm/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/mdm/v1/user_auth_data_relation.py +58 -0
- larkify-0.1.0/larkify/models/mdm/v3/__init__.py +0 -0
- larkify-0.1.0/larkify/models/mdm/v3/_shared.py +60 -0
- larkify-0.1.0/larkify/models/mdm/v3/batch_country_region.py +22 -0
- larkify-0.1.0/larkify/models/mdm/v3/country_region.py +105 -0
- larkify-0.1.0/larkify/models/minutes/__init__.py +0 -0
- larkify-0.1.0/larkify/models/minutes/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/minutes/v1/minute.py +255 -0
- larkify-0.1.0/larkify/models/minutes/v1/minute_media.py +18 -0
- larkify-0.1.0/larkify/models/minutes/v1/minute_statistics.py +40 -0
- larkify-0.1.0/larkify/models/moments/__init__.py +0 -0
- larkify-0.1.0/larkify/models/moments/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/moments/v1/post.py +70 -0
- larkify-0.1.0/larkify/models/okr/__init__.py +0 -0
- larkify-0.1.0/larkify/models/okr/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/okr/v1/_shared.py +136 -0
- larkify-0.1.0/larkify/models/okr/v1/image.py +44 -0
- larkify-0.1.0/larkify/models/okr/v1/okr.py +22 -0
- larkify-0.1.0/larkify/models/okr/v1/period.py +91 -0
- larkify-0.1.0/larkify/models/okr/v1/period_rule.py +32 -0
- larkify-0.1.0/larkify/models/okr/v1/progress_record.py +509 -0
- larkify-0.1.0/larkify/models/okr/v1/review.py +50 -0
- larkify-0.1.0/larkify/models/okr/v1/user_okr.py +24 -0
- larkify-0.1.0/larkify/models/okr/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/okr/v2/_shared.py +560 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_alignment.py +30 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_category.py +58 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_cycle.py +109 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_cycle_objective.py +68 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_indicator.py +73 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_key_result.py +57 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_key_result_indicator.py +22 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_key_result_progress.py +30 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_objective.py +116 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_objective_alignment.py +56 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_objective_indicator.py +22 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_objective_key_result.py +59 -0
- larkify-0.1.0/larkify/models/okr/v2/okr_objective_progress.py +30 -0
- larkify-0.1.0/larkify/models/optical_char_recognition/__init__.py +0 -0
- larkify-0.1.0/larkify/models/optical_char_recognition/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/optical_char_recognition/v1/image.py +33 -0
- larkify-0.1.0/larkify/models/passport/__init__.py +0 -0
- larkify-0.1.0/larkify/models/passport/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/passport/v1/password.py +35 -0
- larkify-0.1.0/larkify/models/passport/v1/session.py +73 -0
- larkify-0.1.0/larkify/models/payroll/__init__.py +0 -0
- larkify-0.1.0/larkify/models/payroll/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/payroll/v1/_shared.py +116 -0
- larkify-0.1.0/larkify/models/payroll/v1/acct_item.py +48 -0
- larkify-0.1.0/larkify/models/payroll/v1/cost_allocation_detail.py +54 -0
- larkify-0.1.0/larkify/models/payroll/v1/cost_allocation_plan.py +67 -0
- larkify-0.1.0/larkify/models/payroll/v1/cost_allocation_report.py +59 -0
- larkify-0.1.0/larkify/models/payroll/v1/datasource.py +64 -0
- larkify-0.1.0/larkify/models/payroll/v1/datasource_record.py +135 -0
- larkify-0.1.0/larkify/models/payroll/v1/paygroup.py +64 -0
- larkify-0.1.0/larkify/models/payroll/v1/payment_activity.py +73 -0
- larkify-0.1.0/larkify/models/payroll/v1/payment_activity_detail.py +34 -0
- larkify-0.1.0/larkify/models/payroll/v1/payment_detail.py +72 -0
- larkify-0.1.0/larkify/models/performance/__init__.py +0 -0
- larkify-0.1.0/larkify/models/performance/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/performance/v1/_shared.py +54 -0
- larkify-0.1.0/larkify/models/performance/v1/review_data.py +190 -0
- larkify-0.1.0/larkify/models/performance/v1/semester.py +22 -0
- larkify-0.1.0/larkify/models/performance/v1/stage_task.py +147 -0
- larkify-0.1.0/larkify/models/performance/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/performance/v2/_shared.py +34 -0
- larkify-0.1.0/larkify/models/performance/v2/activity.py +64 -0
- larkify-0.1.0/larkify/models/performance/v2/additional_information.py +119 -0
- larkify-0.1.0/larkify/models/performance/v2/additional_informations_batch.py +38 -0
- larkify-0.1.0/larkify/models/performance/v2/indicator.py +67 -0
- larkify-0.1.0/larkify/models/performance/v2/metric_detail.py +156 -0
- larkify-0.1.0/larkify/models/performance/v2/metric_field.py +47 -0
- larkify-0.1.0/larkify/models/performance/v2/metric_lib.py +114 -0
- larkify-0.1.0/larkify/models/performance/v2/metric_tag.py +46 -0
- larkify-0.1.0/larkify/models/performance/v2/metric_template.py +159 -0
- larkify-0.1.0/larkify/models/performance/v2/question.py +63 -0
- larkify-0.1.0/larkify/models/performance/v2/review_data.py +299 -0
- larkify-0.1.0/larkify/models/performance/v2/review_template.py +105 -0
- larkify-0.1.0/larkify/models/performance/v2/reviewee.py +65 -0
- larkify-0.1.0/larkify/models/performance/v2/user_group_user_rel.py +59 -0
- larkify-0.1.0/larkify/models/performance/v2/user_info.py +89 -0
- larkify-0.1.0/larkify/models/personal_settings/__init__.py +0 -0
- larkify-0.1.0/larkify/models/personal_settings/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/personal_settings/v1/system_status.py +406 -0
- larkify-0.1.0/larkify/models/report/__init__.py +0 -0
- larkify-0.1.0/larkify/models/report/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/report/v1/rule.py +74 -0
- larkify-0.1.0/larkify/models/report/v1/rule_view.py +27 -0
- larkify-0.1.0/larkify/models/report/v1/task.py +94 -0
- larkify-0.1.0/larkify/models/search/__init__.py +0 -0
- larkify-0.1.0/larkify/models/search/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/search/v2/_shared.py +47 -0
- larkify-0.1.0/larkify/models/search/v2/app.py +43 -0
- larkify-0.1.0/larkify/models/search/v2/data_source.py +201 -0
- larkify-0.1.0/larkify/models/search/v2/data_source_item.py +167 -0
- larkify-0.1.0/larkify/models/search/v2/doc_wiki.py +271 -0
- larkify-0.1.0/larkify/models/search/v2/message.py +67 -0
- larkify-0.1.0/larkify/models/search/v2/schema.py +470 -0
- larkify-0.1.0/larkify/models/security_and_compliance/__init__.py +0 -0
- larkify-0.1.0/larkify/models/security_and_compliance/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/security_and_compliance/v1/multi_geo_entity_tenant.py +28 -0
- larkify-0.1.0/larkify/models/security_and_compliance/v1/openapi_log.py +90 -0
- larkify-0.1.0/larkify/models/security_and_compliance/v1/user_migration.py +86 -0
- larkify-0.1.0/larkify/models/security_and_compliance/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/security_and_compliance/v2/device_apply_record.py +29 -0
- larkify-0.1.0/larkify/models/security_and_compliance/v2/device_record.py +178 -0
- larkify-0.1.0/larkify/models/sheets/__init__.py +0 -0
- larkify-0.1.0/larkify/models/sheets/v3/__init__.py +0 -0
- larkify-0.1.0/larkify/models/sheets/v3/spreadsheet.py +81 -0
- larkify-0.1.0/larkify/models/sheets/v3/spreadsheet_sheet.py +189 -0
- larkify-0.1.0/larkify/models/sheets/v3/spreadsheet_sheet_filter.py +104 -0
- larkify-0.1.0/larkify/models/sheets/v3/spreadsheet_sheet_filter_view.py +83 -0
- larkify-0.1.0/larkify/models/sheets/v3/spreadsheet_sheet_filter_view_condition.py +91 -0
- larkify-0.1.0/larkify/models/sheets/v3/spreadsheet_sheet_float_image.py +115 -0
- larkify-0.1.0/larkify/models/spark/__init__.py +0 -0
- larkify-0.1.0/larkify/models/spark/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/spark/v1/app.py +425 -0
- larkify-0.1.0/larkify/models/spark/v1/app_available_scope.py +49 -0
- larkify-0.1.0/larkify/models/spark/v1/app_enum.py +52 -0
- larkify-0.1.0/larkify/models/spark/v1/app_release.py +82 -0
- larkify-0.1.0/larkify/models/spark/v1/app_storage.py +128 -0
- larkify-0.1.0/larkify/models/spark/v1/app_table.py +181 -0
- larkify-0.1.0/larkify/models/spark/v1/app_view.py +24 -0
- larkify-0.1.0/larkify/models/spark/v1/directory_user.py +46 -0
- larkify-0.1.0/larkify/models/speech_to_text/__init__.py +0 -0
- larkify-0.1.0/larkify/models/speech_to_text/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/speech_to_text/v1/speech.py +119 -0
- larkify-0.1.0/larkify/models/task/__init__.py +0 -0
- larkify-0.1.0/larkify/models/task/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/task/v1/_shared.py +30 -0
- larkify-0.1.0/larkify/models/task/v1/task.py +400 -0
- larkify-0.1.0/larkify/models/task/v1/task_collaborator.py +54 -0
- larkify-0.1.0/larkify/models/task/v1/task_comment.py +100 -0
- larkify-0.1.0/larkify/models/task/v1/task_follower.py +54 -0
- larkify-0.1.0/larkify/models/task/v1/task_reminder.py +59 -0
- larkify-0.1.0/larkify/models/task/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/task/v2/_shared.py +658 -0
- larkify-0.1.0/larkify/models/task/v2/attachment.py +70 -0
- larkify-0.1.0/larkify/models/task/v2/comment.py +126 -0
- larkify-0.1.0/larkify/models/task/v2/custom_field.py +349 -0
- larkify-0.1.0/larkify/models/task/v2/custom_field_option.py +96 -0
- larkify-0.1.0/larkify/models/task/v2/section.py +167 -0
- larkify-0.1.0/larkify/models/task/v2/task.py +513 -0
- larkify-0.1.0/larkify/models/task/v2/task_subtask.py +159 -0
- larkify-0.1.0/larkify/models/task/v2/task_v2.py +122 -0
- larkify-0.1.0/larkify/models/task/v2/tasklist.py +256 -0
- larkify-0.1.0/larkify/models/task/v2/tasklist_activity_subscription.py +122 -0
- larkify-0.1.0/larkify/models/tenant/__init__.py +0 -0
- larkify-0.1.0/larkify/models/tenant/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/tenant/v2/tenant.py +52 -0
- larkify-0.1.0/larkify/models/tenant/v2/tenant_product_assign_info.py +52 -0
- larkify-0.1.0/larkify/models/translation/__init__.py +0 -0
- larkify-0.1.0/larkify/models/translation/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/translation/v1/text.py +81 -0
- larkify-0.1.0/larkify/models/trust_party/__init__.py +0 -0
- larkify-0.1.0/larkify/models/trust_party/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/trust_party/v1/_shared.py +62 -0
- larkify-0.1.0/larkify/models/trust_party/v1/collaboration_tenant.py +115 -0
- larkify-0.1.0/larkify/models/trust_party/v1/collaboration_tenant_collaboration_department.py +54 -0
- larkify-0.1.0/larkify/models/trust_party/v1/collaboration_tenant_collaboration_user.py +119 -0
- larkify-0.1.0/larkify/models/vc/__init__.py +0 -0
- larkify-0.1.0/larkify/models/vc/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/vc/v1/_shared.py +261 -0
- larkify-0.1.0/larkify/models/vc/v1/alert.py +72 -0
- larkify-0.1.0/larkify/models/vc/v1/bot.py +421 -0
- larkify-0.1.0/larkify/models/vc/v1/export.py +161 -0
- larkify-0.1.0/larkify/models/vc/v1/meeting.py +326 -0
- larkify-0.1.0/larkify/models/vc/v1/meeting_list.py +92 -0
- larkify-0.1.0/larkify/models/vc/v1/meeting_recording.py +76 -0
- larkify-0.1.0/larkify/models/vc/v1/note.py +66 -0
- larkify-0.1.0/larkify/models/vc/v1/participant_list.py +88 -0
- larkify-0.1.0/larkify/models/vc/v1/participant_quality_list.py +132 -0
- larkify-0.1.0/larkify/models/vc/v1/report.py +66 -0
- larkify-0.1.0/larkify/models/vc/v1/reserve.py +402 -0
- larkify-0.1.0/larkify/models/vc/v1/reserve_config.py +180 -0
- larkify-0.1.0/larkify/models/vc/v1/reserve_config_admin.py +73 -0
- larkify-0.1.0/larkify/models/vc/v1/reserve_config_disable_inform.py +83 -0
- larkify-0.1.0/larkify/models/vc/v1/reserve_config_form.py +85 -0
- larkify-0.1.0/larkify/models/vc/v1/resource_reservation_list.py +68 -0
- larkify-0.1.0/larkify/models/vc/v1/room.py +208 -0
- larkify-0.1.0/larkify/models/vc/v1/room_config.py +194 -0
- larkify-0.1.0/larkify/models/vc/v1/room_level.py +133 -0
- larkify-0.1.0/larkify/models/vc/v1/scope_config.py +105 -0
- larkify-0.1.0/larkify/models/verification/__init__.py +0 -0
- larkify-0.1.0/larkify/models/verification/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/verification/v1/verification.py +30 -0
- larkify-0.1.0/larkify/models/wiki/__init__.py +0 -0
- larkify-0.1.0/larkify/models/wiki/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/wiki/v1/node.py +77 -0
- larkify-0.1.0/larkify/models/wiki/v2/__init__.py +0 -0
- larkify-0.1.0/larkify/models/wiki/v2/_shared.py +52 -0
- larkify-0.1.0/larkify/models/wiki/v2/space.py +87 -0
- larkify-0.1.0/larkify/models/wiki/v2/space_member.py +100 -0
- larkify-0.1.0/larkify/models/wiki/v2/space_node.py +153 -0
- larkify-0.1.0/larkify/models/wiki/v2/space_setting.py +51 -0
- larkify-0.1.0/larkify/models/wiki/v2/task.py +76 -0
- larkify-0.1.0/larkify/models/workplace/__init__.py +0 -0
- larkify-0.1.0/larkify/models/workplace/v1/__init__.py +0 -0
- larkify-0.1.0/larkify/models/workplace/v1/_shared.py +22 -0
- larkify-0.1.0/larkify/models/workplace/v1/custom_workplace_access_data.py +52 -0
- larkify-0.1.0/larkify/models/workplace/v1/workplace_access_data.py +42 -0
- larkify-0.1.0/larkify/models/workplace/v1/workplace_block_access_data.py +42 -0
- larkify-0.1.0/larkify/response.py +208 -0
- larkify-0.1.0/larkify/rest/__init__.py +488 -0
- larkify-0.1.0/larkify/rest/_base.py +66 -0
- larkify-0.1.0/larkify/rest/acs/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/acs/v1/__init__.py +72 -0
- larkify-0.1.0/larkify/rest/acs/v1/access_record.py +103 -0
- larkify-0.1.0/larkify/rest/acs/v1/access_record_access_photo.py +69 -0
- larkify-0.1.0/larkify/rest/acs/v1/device.py +69 -0
- larkify-0.1.0/larkify/rest/acs/v1/rule_external.py +364 -0
- larkify-0.1.0/larkify/rest/acs/v1/user.py +270 -0
- larkify-0.1.0/larkify/rest/acs/v1/user_face.py +216 -0
- larkify-0.1.0/larkify/rest/acs/v1/visitor.py +199 -0
- larkify-0.1.0/larkify/rest/admin/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/admin/v1/__init__.py +68 -0
- larkify-0.1.0/larkify/rest/admin/v1/admin_dept_stat.py +115 -0
- larkify-0.1.0/larkify/rest/admin/v1/admin_user_stat.py +119 -0
- larkify-0.1.0/larkify/rest/admin/v1/audit_info.py +131 -0
- larkify-0.1.0/larkify/rest/admin/v1/badge.py +356 -0
- larkify-0.1.0/larkify/rest/admin/v1/badge_grant.py +534 -0
- larkify-0.1.0/larkify/rest/admin/v1/badge_image.py +129 -0
- larkify-0.1.0/larkify/rest/admin/v1/password.py +138 -0
- larkify-0.1.0/larkify/rest/aily/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/aily/v1/__init__.py +122 -0
- larkify-0.1.0/larkify/rest/aily/v1/agent_agent_artifact.py +74 -0
- larkify-0.1.0/larkify/rest/aily/v1/agent_agent_attachment.py +141 -0
- larkify-0.1.0/larkify/rest/aily/v1/agent_agent_chat.py +180 -0
- larkify-0.1.0/larkify/rest/aily/v1/agent_agent_chat_session.py +295 -0
- larkify-0.1.0/larkify/rest/aily/v1/agent_agent_visibility.py +129 -0
- larkify-0.1.0/larkify/rest/aily/v1/aily_session.py +319 -0
- larkify-0.1.0/larkify/rest/aily/v1/aily_session_aily_message.py +269 -0
- larkify-0.1.0/larkify/rest/aily/v1/aily_session_run.py +298 -0
- larkify-0.1.0/larkify/rest/aily/v1/app_data_asset.py +501 -0
- larkify-0.1.0/larkify/rest/aily/v1/app_data_asset_tag.py +97 -0
- larkify-0.1.0/larkify/rest/aily/v1/app_knowledge.py +131 -0
- larkify-0.1.0/larkify/rest/aily/v1/app_skill.py +255 -0
- larkify-0.1.0/larkify/rest/aily/v1/tenant_app_stat.py +99 -0
- larkify-0.1.0/larkify/rest/apaas/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/apaas/v1/__init__.py +174 -0
- larkify-0.1.0/larkify/rest/apaas/v1/app.py +87 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_audit_log.py +348 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_environment_variable.py +198 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_flow.py +141 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_function.py +89 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_object.py +250 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_object_record.py +924 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_record_permission_member.py +266 -0
- larkify-0.1.0/larkify/rest/apaas/v1/application_role_member.py +329 -0
- larkify-0.1.0/larkify/rest/apaas/v1/approval_instance.py +130 -0
- larkify-0.1.0/larkify/rest/apaas/v1/approval_task.py +438 -0
- larkify-0.1.0/larkify/rest/apaas/v1/seat_activity.py +91 -0
- larkify-0.1.0/larkify/rest/apaas/v1/seat_assignment.py +91 -0
- larkify-0.1.0/larkify/rest/apaas/v1/tenant_app_metrics.py +125 -0
- larkify-0.1.0/larkify/rest/apaas/v1/user_task.py +645 -0
- larkify-0.1.0/larkify/rest/apaas/v1/workspace.py +125 -0
- larkify-0.1.0/larkify/rest/apaas/v1/workspace_enum.py +140 -0
- larkify-0.1.0/larkify/rest/apaas/v1/workspace_table.py +658 -0
- larkify-0.1.0/larkify/rest/apaas/v1/workspace_view.py +103 -0
- larkify-0.1.0/larkify/rest/application/__init__.py +47 -0
- larkify-0.1.0/larkify/rest/application/legacy.py +437 -0
- larkify-0.1.0/larkify/rest/application/v5/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/application/v5/application.py +154 -0
- larkify-0.1.0/larkify/rest/application/v6/__init__.py +133 -0
- larkify-0.1.0/larkify/rest/application/v6/app_badge.py +144 -0
- larkify-0.1.0/larkify/rest/application/v6/app_recommend_rule.py +91 -0
- larkify-0.1.0/larkify/rest/application/v6/application.py +442 -0
- larkify-0.1.0/larkify/rest/application/v6/application_app_usage.py +455 -0
- larkify-0.1.0/larkify/rest/application/v6/application_app_version.py +381 -0
- larkify-0.1.0/larkify/rest/application/v6/application_collaborators.py +219 -0
- larkify-0.1.0/larkify/rest/application/v6/application_contacts_range.py +182 -0
- larkify-0.1.0/larkify/rest/application/v6/application_feedback.py +179 -0
- larkify-0.1.0/larkify/rest/application/v6/application_management.py +128 -0
- larkify-0.1.0/larkify/rest/application/v6/application_owner.py +144 -0
- larkify-0.1.0/larkify/rest/application/v6/application_visibility.py +341 -0
- larkify-0.1.0/larkify/rest/application/v6/scope.py +115 -0
- larkify-0.1.0/larkify/rest/application/v7/__init__.py +60 -0
- larkify-0.1.0/larkify/rest/application/v7/app_avatar_upload.py +131 -0
- larkify-0.1.0/larkify/rest/application/v7/application_ability.py +134 -0
- larkify-0.1.0/larkify/rest/application/v7/application_base.py +130 -0
- larkify-0.1.0/larkify/rest/application/v7/application_config.py +204 -0
- larkify-0.1.0/larkify/rest/application/v7/application_publish.py +137 -0
- larkify-0.1.0/larkify/rest/approval/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/approval/legacy.py +1269 -0
- larkify-0.1.0/larkify/rest/approval/v4/__init__.py +75 -0
- larkify-0.1.0/larkify/rest/approval/v4/approval.py +507 -0
- larkify-0.1.0/larkify/rest/approval/v4/district.py +212 -0
- larkify-0.1.0/larkify/rest/approval/v4/external_approval.py +252 -0
- larkify-0.1.0/larkify/rest/approval/v4/external_instance.py +328 -0
- larkify-0.1.0/larkify/rest/approval/v4/external_task.py +153 -0
- larkify-0.1.0/larkify/rest/approval/v4/instance.py +1882 -0
- larkify-0.1.0/larkify/rest/approval/v4/instance_comment.py +374 -0
- larkify-0.1.0/larkify/rest/approval/v4/task.py +1513 -0
- larkify-0.1.0/larkify/rest/attendance/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/attendance/v1/__init__.py +137 -0
- larkify-0.1.0/larkify/rest/attendance/v1/approval_info.py +123 -0
- larkify-0.1.0/larkify/rest/attendance/v1/archive_rule.py +455 -0
- larkify-0.1.0/larkify/rest/attendance/v1/file.py +187 -0
- larkify-0.1.0/larkify/rest/attendance/v1/group.py +493 -0
- larkify-0.1.0/larkify/rest/attendance/v1/leave_accrual_record.py +173 -0
- larkify-0.1.0/larkify/rest/attendance/v1/leave_employ_expire_record.py +165 -0
- larkify-0.1.0/larkify/rest/attendance/v1/shift.py +440 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_approval.py +262 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_daily_shift.py +381 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_flow.py +412 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_setting.py +246 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_stats_data.py +149 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_stats_field.py +141 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_stats_view.py +256 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_task.py +157 -0
- larkify-0.1.0/larkify/rest/attendance/v1/user_task_remedy.py +391 -0
- larkify-0.1.0/larkify/rest/auth/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/auth/v3/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/auth/v3/auth.py +526 -0
- larkify-0.1.0/larkify/rest/authen/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/authen/v1/__init__.py +58 -0
- larkify-0.1.0/larkify/rest/authen/v1/access_token.py +121 -0
- larkify-0.1.0/larkify/rest/authen/v1/oidc_access_token.py +125 -0
- larkify-0.1.0/larkify/rest/authen/v1/oidc_refresh_access_token.py +129 -0
- larkify-0.1.0/larkify/rest/authen/v1/refresh_access_token.py +125 -0
- larkify-0.1.0/larkify/rest/authen/v1/user_info.py +69 -0
- larkify-0.1.0/larkify/rest/baike/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/baike/v1/__init__.py +47 -0
- larkify-0.1.0/larkify/rest/baike/v1/classification.py +87 -0
- larkify-0.1.0/larkify/rest/baike/v1/draft.py +280 -0
- larkify-0.1.0/larkify/rest/baike/v1/entity.py +834 -0
- larkify-0.1.0/larkify/rest/baike/v1/file.py +173 -0
- larkify-0.1.0/larkify/rest/base/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/base/v2/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/base/v2/app_role.py +311 -0
- larkify-0.1.0/larkify/rest/bitable/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/bitable/v1/__init__.py +112 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app.py +378 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_block_workflow.py +72 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_dashboard.py +200 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_role.py +365 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_role_member.py +567 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_table.py +560 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_table_field.py +646 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_table_field_group.py +137 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_table_form.py +315 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_table_form_field.py +236 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_table_record.py +1240 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_table_view.py +460 -0
- larkify-0.1.0/larkify/rest/bitable/v1/app_workflow.py +179 -0
- larkify-0.1.0/larkify/rest/board/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/board/v1/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/board/v1/whiteboard.py +226 -0
- larkify-0.1.0/larkify/rest/board/v1/whiteboard_node.py +456 -0
- larkify-0.1.0/larkify/rest/bot/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/bot/v3/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/bot/v3/bot_menu.py +310 -0
- larkify-0.1.0/larkify/rest/bot/v4/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/bot/v4/bot.py +155 -0
- larkify-0.1.0/larkify/rest/calendar/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/calendar/v4/__init__.py +114 -0
- larkify-0.1.0/larkify/rest/calendar/v4/calendar.py +973 -0
- larkify-0.1.0/larkify/rest/calendar/v4/calendar_acl.py +360 -0
- larkify-0.1.0/larkify/rest/calendar/v4/calendar_event.py +1111 -0
- larkify-0.1.0/larkify/rest/calendar/v4/calendar_event_attendee.py +386 -0
- larkify-0.1.0/larkify/rest/calendar/v4/calendar_event_attendee_chat_member.py +97 -0
- larkify-0.1.0/larkify/rest/calendar/v4/calendar_event_meeting_chat.py +136 -0
- larkify-0.1.0/larkify/rest/calendar/v4/calendar_event_meeting_minute.py +74 -0
- larkify-0.1.0/larkify/rest/calendar/v4/exchange_binding.py +252 -0
- larkify-0.1.0/larkify/rest/calendar/v4/freebusy.py +266 -0
- larkify-0.1.0/larkify/rest/calendar/v4/setting.py +123 -0
- larkify-0.1.0/larkify/rest/calendar/v4/timeoff_event.py +193 -0
- larkify-0.1.0/larkify/rest/card/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/card/legacy.py +73 -0
- larkify-0.1.0/larkify/rest/cardkit/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/cardkit/v1/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/cardkit/v1/card.py +482 -0
- larkify-0.1.0/larkify/rest/cardkit/v1/card_element.py +562 -0
- larkify-0.1.0/larkify/rest/ccm_doc/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/ccm_doc/legacy.py +343 -0
- larkify-0.1.0/larkify/rest/ccm_docs/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/ccm_docs/legacy.py +125 -0
- larkify-0.1.0/larkify/rest/ccm_drive_explorer/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/ccm_drive_explorer/legacy.py +451 -0
- larkify-0.1.0/larkify/rest/ccm_sheet/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/ccm_sheet/legacy.py +1751 -0
- larkify-0.1.0/larkify/rest/compensation/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/compensation/v1/__init__.py +109 -0
- larkify-0.1.0/larkify/rest/compensation/v1/archive.py +288 -0
- larkify-0.1.0/larkify/rest/compensation/v1/change_reason.py +87 -0
- larkify-0.1.0/larkify/rest/compensation/v1/indicator.py +87 -0
- larkify-0.1.0/larkify/rest/compensation/v1/item.py +91 -0
- larkify-0.1.0/larkify/rest/compensation/v1/item_category.py +87 -0
- larkify-0.1.0/larkify/rest/compensation/v1/lump_sum_payment.py +705 -0
- larkify-0.1.0/larkify/rest/compensation/v1/plan.py +87 -0
- larkify-0.1.0/larkify/rest/compensation/v1/recurring_payment.py +562 -0
- larkify-0.1.0/larkify/rest/compensation/v1/social_archive.py +137 -0
- larkify-0.1.0/larkify/rest/compensation/v1/social_archive_adjust_record.py +147 -0
- larkify-0.1.0/larkify/rest/compensation/v1/social_insurance.py +69 -0
- larkify-0.1.0/larkify/rest/compensation/v1/social_plan.py +192 -0
- larkify-0.1.0/larkify/rest/contact/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/contact/legacy.py +281 -0
- larkify-0.1.0/larkify/rest/contact/v3/__init__.py +121 -0
- larkify-0.1.0/larkify/rest/contact/v3/custom_attr.py +87 -0
- larkify-0.1.0/larkify/rest/contact/v3/department.py +1365 -0
- larkify-0.1.0/larkify/rest/contact/v3/employee_type_enum.py +361 -0
- larkify-0.1.0/larkify/rest/contact/v3/functional_role.py +265 -0
- larkify-0.1.0/larkify/rest/contact/v3/functional_role_member.py +569 -0
- larkify-0.1.0/larkify/rest/contact/v3/group.py +556 -0
- larkify-0.1.0/larkify/rest/contact/v3/group_member.py +510 -0
- larkify-0.1.0/larkify/rest/contact/v3/job_family.py +414 -0
- larkify-0.1.0/larkify/rest/contact/v3/job_level.py +414 -0
- larkify-0.1.0/larkify/rest/contact/v3/job_title.py +136 -0
- larkify-0.1.0/larkify/rest/contact/v3/scope.py +99 -0
- larkify-0.1.0/larkify/rest/contact/v3/unit.py +656 -0
- larkify-0.1.0/larkify/rest/contact/v3/user.py +1499 -0
- larkify-0.1.0/larkify/rest/contact/v3/work_city.py +136 -0
- larkify-0.1.0/larkify/rest/contact_search/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/contact_search/legacy.py +73 -0
- larkify-0.1.0/larkify/rest/contact_user/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/contact_user/legacy.py +73 -0
- larkify-0.1.0/larkify/rest/corehr/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/corehr/v1/__init__.py +260 -0
- larkify-0.1.0/larkify/rest/corehr/v1/assigned_user.py +161 -0
- larkify-0.1.0/larkify/rest/corehr/v1/authorization.py +559 -0
- larkify-0.1.0/larkify/rest/corehr/v1/common_data_id.py +207 -0
- larkify-0.1.0/larkify/rest/corehr/v1/common_data_meta_data.py +288 -0
- larkify-0.1.0/larkify/rest/corehr/v1/company.py +558 -0
- larkify-0.1.0/larkify/rest/corehr/v1/compensation_standard.py +211 -0
- larkify-0.1.0/larkify/rest/corehr/v1/contract.py +484 -0
- larkify-0.1.0/larkify/rest/corehr/v1/country_region.py +136 -0
- larkify-0.1.0/larkify/rest/corehr/v1/currency.py +136 -0
- larkify-0.1.0/larkify/rest/corehr/v1/custom_field.py +209 -0
- larkify-0.1.0/larkify/rest/corehr/v1/department.py +644 -0
- larkify-0.1.0/larkify/rest/corehr/v1/employee_type.py +440 -0
- larkify-0.1.0/larkify/rest/corehr/v1/employment.py +468 -0
- larkify-0.1.0/larkify/rest/corehr/v1/file.py +69 -0
- larkify-0.1.0/larkify/rest/corehr/v1/job.py +476 -0
- larkify-0.1.0/larkify/rest/corehr/v1/job_change.py +207 -0
- larkify-0.1.0/larkify/rest/corehr/v1/job_data.py +736 -0
- larkify-0.1.0/larkify/rest/corehr/v1/job_family.py +456 -0
- larkify-0.1.0/larkify/rest/corehr/v1/job_level.py +456 -0
- larkify-0.1.0/larkify/rest/corehr/v1/leave.py +636 -0
- larkify-0.1.0/larkify/rest/corehr/v1/leave_granting_record.py +219 -0
- larkify-0.1.0/larkify/rest/corehr/v1/location.py +337 -0
- larkify-0.1.0/larkify/rest/corehr/v1/national_id_type.py +480 -0
- larkify-0.1.0/larkify/rest/corehr/v1/offboarding.py +487 -0
- larkify-0.1.0/larkify/rest/corehr/v1/person.py +666 -0
- larkify-0.1.0/larkify/rest/corehr/v1/pre_hire.py +341 -0
- larkify-0.1.0/larkify/rest/corehr/v1/process_form_variable_data.py +72 -0
- larkify-0.1.0/larkify/rest/corehr/v1/security_group.py +228 -0
- larkify-0.1.0/larkify/rest/corehr/v1/subdivision.py +140 -0
- larkify-0.1.0/larkify/rest/corehr/v1/subregion.py +140 -0
- larkify-0.1.0/larkify/rest/corehr/v1/transfer_reason.py +87 -0
- larkify-0.1.0/larkify/rest/corehr/v1/transfer_type.py +87 -0
- larkify-0.1.0/larkify/rest/corehr/v1/working_hours_type.py +452 -0
- larkify-0.1.0/larkify/rest/corehr/v2/__init__.py +485 -0
- larkify-0.1.0/larkify/rest/corehr/v2/approval_groups.py +616 -0
- larkify-0.1.0/larkify/rest/corehr/v2/approver.py +107 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_bank.py +151 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_bank_branch.py +159 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_city.py +147 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_country_region.py +153 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_country_region_subdivision.py +159 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_currency.py +149 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_district.py +151 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_language.py +149 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_nationality.py +151 -0
- larkify-0.1.0/larkify/rest/corehr/v2/basic_info_time_zone.py +149 -0
- larkify-0.1.0/larkify/rest/corehr/v2/bp.py +262 -0
- larkify-0.1.0/larkify/rest/corehr/v2/company.py +391 -0
- larkify-0.1.0/larkify/rest/corehr/v2/contract.py +165 -0
- larkify-0.1.0/larkify/rest/corehr/v2/cost_allocation.py +578 -0
- larkify-0.1.0/larkify/rest/corehr/v2/cost_center.py +900 -0
- larkify-0.1.0/larkify/rest/corehr/v2/cost_center_version.py +434 -0
- larkify-0.1.0/larkify/rest/corehr/v2/custom_org.py +889 -0
- larkify-0.1.0/larkify/rest/corehr/v2/default_cost_center.py +596 -0
- larkify-0.1.0/larkify/rest/corehr/v2/department.py +1518 -0
- larkify-0.1.0/larkify/rest/corehr/v2/draft.py +89 -0
- larkify-0.1.0/larkify/rest/corehr/v2/employee.py +607 -0
- larkify-0.1.0/larkify/rest/corehr/v2/employee_custom_org.py +563 -0
- larkify-0.1.0/larkify/rest/corehr/v2/employees_additional_job.py +701 -0
- larkify-0.1.0/larkify/rest/corehr/v2/employees_bp.py +149 -0
- larkify-0.1.0/larkify/rest/corehr/v2/employees_international_assignment.py +711 -0
- larkify-0.1.0/larkify/rest/corehr/v2/employees_job_data.py +382 -0
- larkify-0.1.0/larkify/rest/corehr/v2/enum.py +119 -0
- larkify-0.1.0/larkify/rest/corehr/v2/job.py +445 -0
- larkify-0.1.0/larkify/rest/corehr/v2/job_change.py +571 -0
- larkify-0.1.0/larkify/rest/corehr/v2/job_family.py +295 -0
- larkify-0.1.0/larkify/rest/corehr/v2/job_grade.py +507 -0
- larkify-0.1.0/larkify/rest/corehr/v2/job_level.py +192 -0
- larkify-0.1.0/larkify/rest/corehr/v2/location.py +541 -0
- larkify-0.1.0/larkify/rest/corehr/v2/location_address.py +443 -0
- larkify-0.1.0/larkify/rest/corehr/v2/offboarding.py +424 -0
- larkify-0.1.0/larkify/rest/corehr/v2/pathway.py +524 -0
- larkify-0.1.0/larkify/rest/corehr/v2/person.py +630 -0
- larkify-0.1.0/larkify/rest/corehr/v2/position.py +845 -0
- larkify-0.1.0/larkify/rest/corehr/v2/pre_hire.py +1149 -0
- larkify-0.1.0/larkify/rest/corehr/v2/probation.py +770 -0
- larkify-0.1.0/larkify/rest/corehr/v2/probation_assessment.py +341 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process.py +249 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_approver.py +211 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_extra.py +166 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_form_variable_data.py +101 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_query_flow_data_template.py +161 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_revoke.py +156 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_start.py +193 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_transfer.py +164 -0
- larkify-0.1.0/larkify/rest/corehr/v2/process_withdraw.py +160 -0
- larkify-0.1.0/larkify/rest/corehr/v2/report_detail_row.py +230 -0
- larkify-0.1.0/larkify/rest/corehr/v2/signature_file.py +544 -0
- larkify-0.1.0/larkify/rest/corehr/v2/signature_node.py +91 -0
- larkify-0.1.0/larkify/rest/corehr/v2/signature_template.py +87 -0
- larkify-0.1.0/larkify/rest/corehr/v2/signature_template_info_with_thumbnail.py +115 -0
- larkify-0.1.0/larkify/rest/corehr/v2/workforce_plan.py +103 -0
- larkify-0.1.0/larkify/rest/corehr/v2/workforce_plan_detail.py +304 -0
- larkify-0.1.0/larkify/rest/corehr/v2/workforce_plan_detail_row.py +242 -0
- larkify-0.1.0/larkify/rest/directory/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/directory/v1/__init__.py +60 -0
- larkify-0.1.0/larkify/rest/directory/v1/collaboration_rule.py +390 -0
- larkify-0.1.0/larkify/rest/directory/v1/collaboration_tenant.py +87 -0
- larkify-0.1.0/larkify/rest/directory/v1/collboration_share_entity.py +103 -0
- larkify-0.1.0/larkify/rest/directory/v1/department.py +820 -0
- larkify-0.1.0/larkify/rest/directory/v1/employee.py +1294 -0
- larkify-0.1.0/larkify/rest/docs/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/docs/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/docs/v1/content.py +95 -0
- larkify-0.1.0/larkify/rest/document_ai/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/__init__.py +161 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/bank_card.py +127 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/business_card.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/business_license.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/chinese_passport.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/contract.py +135 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/driving_license.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/food_manage_license.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/food_produce_license.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/health_certificate.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/hkm_mainland_travel_permit.py +135 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/id_card.py +127 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/resume.py +123 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/taxi_invoice.py +127 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/train_invoice.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/tw_mainland_travel_permit.py +135 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/vat_invoice.py +127 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/vehicle_invoice.py +131 -0
- larkify-0.1.0/larkify/rest/document_ai/v1/vehicle_license.py +131 -0
- larkify-0.1.0/larkify/rest/docx/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/docx/v1/__init__.py +80 -0
- larkify-0.1.0/larkify/rest/docx/v1/chat_announcement.py +85 -0
- larkify-0.1.0/larkify/rest/docx/v1/chat_announcement_block.py +321 -0
- larkify-0.1.0/larkify/rest/docx/v1/chat_announcement_block_children.py +409 -0
- larkify-0.1.0/larkify/rest/docx/v1/document.py +342 -0
- larkify-0.1.0/larkify/rest/docx/v1/document_block.py +584 -0
- larkify-0.1.0/larkify/rest/docx/v1/document_block_children.py +405 -0
- larkify-0.1.0/larkify/rest/docx/v1/document_block_descendant.py +183 -0
- larkify-0.1.0/larkify/rest/drive/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/drive/v1/__init__.py +128 -0
- larkify-0.1.0/larkify/rest/drive/v1/export_task.py +240 -0
- larkify-0.1.0/larkify/rest/drive/v1/file.py +1402 -0
- larkify-0.1.0/larkify/rest/drive/v1/file_comment.py +567 -0
- larkify-0.1.0/larkify/rest/drive/v1/file_comment_reply.py +448 -0
- larkify-0.1.0/larkify/rest/drive/v1/file_statistics.py +88 -0
- larkify-0.1.0/larkify/rest/drive/v1/file_subscription.py +351 -0
- larkify-0.1.0/larkify/rest/drive/v1/file_version.py +373 -0
- larkify-0.1.0/larkify/rest/drive/v1/file_view_record.py +101 -0
- larkify-0.1.0/larkify/rest/drive/v1/import_task.py +180 -0
- larkify-0.1.0/larkify/rest/drive/v1/media.py +614 -0
- larkify-0.1.0/larkify/rest/drive/v1/meta.py +139 -0
- larkify-0.1.0/larkify/rest/drive/v1/permission_member.py +1319 -0
- larkify-0.1.0/larkify/rest/drive/v1/permission_public.py +320 -0
- larkify-0.1.0/larkify/rest/drive/v1/permission_public_password.py +265 -0
- larkify-0.1.0/larkify/rest/drive/v1/user.py +235 -0
- larkify-0.1.0/larkify/rest/drive/v2/__init__.py +40 -0
- larkify-0.1.0/larkify/rest/drive/v2/comment_reaction.py +154 -0
- larkify-0.1.0/larkify/rest/drive/v2/file_like.py +97 -0
- larkify-0.1.0/larkify/rest/drive/v2/permission_public.py +346 -0
- larkify-0.1.0/larkify/rest/ehr/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/ehr/v1/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/ehr/v1/attachment.py +69 -0
- larkify-0.1.0/larkify/rest/ehr/v1/employee.py +115 -0
- larkify-0.1.0/larkify/rest/event/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/event/v1/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/event/v1/connection.py +69 -0
- larkify-0.1.0/larkify/rest/event/v1/outbound_ip.py +87 -0
- larkify-0.1.0/larkify/rest/face_verify/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/face_verify/legacy.py +177 -0
- larkify-0.1.0/larkify/rest/helpdesk/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/__init__.py +114 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/agent.py +171 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/agent_schedule.py +189 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/agent_schedules.py +229 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/agent_skill.py +379 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/agent_skill_rule.py +69 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/bot_message.py +141 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/category.py +387 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/event.py +212 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/faq.py +514 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/notification.py +827 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/ticket.py +652 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/ticket_customized_field.py +468 -0
- larkify-0.1.0/larkify/rest/helpdesk/v1/ticket_message.py +200 -0
- larkify-0.1.0/larkify/rest/hire/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/hire/v1/__init__.py +615 -0
- larkify-0.1.0/larkify/rest/hire/v1/advertisement.py +124 -0
- larkify-0.1.0/larkify/rest/hire/v1/agency.py +749 -0
- larkify-0.1.0/larkify/rest/hire/v1/application.py +1090 -0
- larkify-0.1.0/larkify/rest/hire/v1/application_interview.py +105 -0
- larkify-0.1.0/larkify/rest/hire/v1/attachment.py +181 -0
- larkify-0.1.0/larkify/rest/hire/v1/background_check_order.py +252 -0
- larkify-0.1.0/larkify/rest/hire/v1/diversity_inclusion.py +125 -0
- larkify-0.1.0/larkify/rest/hire/v1/eco_account_custom_field.py +346 -0
- larkify-0.1.0/larkify/rest/hire/v1/eco_background_check.py +376 -0
- larkify-0.1.0/larkify/rest/hire/v1/eco_background_check_custom_field.py +356 -0
- larkify-0.1.0/larkify/rest/hire/v1/eco_background_check_package.py +382 -0
- larkify-0.1.0/larkify/rest/hire/v1/eco_exam.py +248 -0
- larkify-0.1.0/larkify/rest/hire/v1/eco_exam_paper.py +318 -0
- larkify-0.1.0/larkify/rest/hire/v1/ehr_import_task.py +128 -0
- larkify-0.1.0/larkify/rest/hire/v1/employee.py +425 -0
- larkify-0.1.0/larkify/rest/hire/v1/evaluation.py +107 -0
- larkify-0.1.0/larkify/rest/hire/v1/evaluation_task.py +103 -0
- larkify-0.1.0/larkify/rest/hire/v1/exam.py +155 -0
- larkify-0.1.0/larkify/rest/hire/v1/exam_marking_task.py +103 -0
- larkify-0.1.0/larkify/rest/hire/v1/external_application.py +392 -0
- larkify-0.1.0/larkify/rest/hire/v1/external_background_check.py +437 -0
- larkify-0.1.0/larkify/rest/hire/v1/external_interview.py +439 -0
- larkify-0.1.0/larkify/rest/hire/v1/external_interview_assessment.py +282 -0
- larkify-0.1.0/larkify/rest/hire/v1/external_offer.py +413 -0
- larkify-0.1.0/larkify/rest/hire/v1/external_referral_reward.py +229 -0
- larkify-0.1.0/larkify/rest/hire/v1/interview.py +190 -0
- larkify-0.1.0/larkify/rest/hire/v1/interview_feedback_form.py +91 -0
- larkify-0.1.0/larkify/rest/hire/v1/interview_record.py +156 -0
- larkify-0.1.0/larkify/rest/hire/v1/interview_record_attachment.py +91 -0
- larkify-0.1.0/larkify/rest/hire/v1/interview_registration_schema.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/interview_round_type.py +83 -0
- larkify-0.1.0/larkify/rest/hire/v1/interview_task.py +103 -0
- larkify-0.1.0/larkify/rest/hire/v1/interviewer.py +226 -0
- larkify-0.1.0/larkify/rest/hire/v1/job.py +1236 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_function.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_manager.py +220 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_process.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_publish_record.py +215 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_requirement.py +899 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_requirement_schema.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_schema.py +91 -0
- larkify-0.1.0/larkify/rest/hire/v1/job_type.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/location.py +212 -0
- larkify-0.1.0/larkify/rest/hire/v1/minutes.py +91 -0
- larkify-0.1.0/larkify/rest/hire/v1/note.py +490 -0
- larkify-0.1.0/larkify/rest/hire/v1/offer.py +869 -0
- larkify-0.1.0/larkify/rest/hire/v1/offer_application_form.py +136 -0
- larkify-0.1.0/larkify/rest/hire/v1/offer_approval_template.py +95 -0
- larkify-0.1.0/larkify/rest/hire/v1/offer_custom_field.py +140 -0
- larkify-0.1.0/larkify/rest/hire/v1/offer_schema.py +72 -0
- larkify-0.1.0/larkify/rest/hire/v1/portal_apply_schema.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/questionnaire.py +103 -0
- larkify-0.1.0/larkify/rest/hire/v1/referral.py +206 -0
- larkify-0.1.0/larkify/rest/hire/v1/referral_account.py +596 -0
- larkify-0.1.0/larkify/rest/hire/v1/referral_website_job_post.py +188 -0
- larkify-0.1.0/larkify/rest/hire/v1/registration_schema.py +91 -0
- larkify-0.1.0/larkify/rest/hire/v1/resume_source.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/role.py +136 -0
- larkify-0.1.0/larkify/rest/hire/v1/subject.py +95 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent.py +1121 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent_blocklist.py +134 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent_external_info.py +232 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent_folder.py +95 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent_object.py +69 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent_operation_log.py +159 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent_pool.py +306 -0
- larkify-0.1.0/larkify/rest/hire/v1/talent_tag.py +103 -0
- larkify-0.1.0/larkify/rest/hire/v1/termination_reason.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/test.py +155 -0
- larkify-0.1.0/larkify/rest/hire/v1/todo.py +103 -0
- larkify-0.1.0/larkify/rest/hire/v1/tripartite_agreement.py +354 -0
- larkify-0.1.0/larkify/rest/hire/v1/user_role.py +107 -0
- larkify-0.1.0/larkify/rest/hire/v1/website.py +87 -0
- larkify-0.1.0/larkify/rest/hire/v1/website_channel.py +345 -0
- larkify-0.1.0/larkify/rest/hire/v1/website_delivery.py +294 -0
- larkify-0.1.0/larkify/rest/hire/v1/website_delivery_task.py +74 -0
- larkify-0.1.0/larkify/rest/hire/v1/website_job_post.py +393 -0
- larkify-0.1.0/larkify/rest/hire/v1/website_site_user.py +137 -0
- larkify-0.1.0/larkify/rest/hire/v2/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/hire/v2/interview_record.py +156 -0
- larkify-0.1.0/larkify/rest/hire/v2/talent.py +89 -0
- larkify-0.1.0/larkify/rest/human_authentication/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/human_authentication/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/human_authentication/v1/identity.py +147 -0
- larkify-0.1.0/larkify/rest/im/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/im/v1/__init__.py +138 -0
- larkify-0.1.0/larkify/rest/im/v1/batch_message.py +169 -0
- larkify-0.1.0/larkify/rest/im/v1/chat.py +709 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_announcement.py +191 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_managers.py +288 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_members.py +454 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_menu_item.py +139 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_menu_tree.py +374 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_moderation.py +213 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_tab.py +489 -0
- larkify-0.1.0/larkify/rest/im/v1/chat_top_notice.py +178 -0
- larkify-0.1.0/larkify/rest/im/v1/file.py +177 -0
- larkify-0.1.0/larkify/rest/im/v1/image.py +173 -0
- larkify-0.1.0/larkify/rest/im/v1/message.py +1570 -0
- larkify-0.1.0/larkify/rest/im/v1/message_reaction.py +374 -0
- larkify-0.1.0/larkify/rest/im/v1/message_resource.py +83 -0
- larkify-0.1.0/larkify/rest/im/v1/pin.py +242 -0
- larkify-0.1.0/larkify/rest/im/v1/thread.py +161 -0
- larkify-0.1.0/larkify/rest/im/v2/__init__.py +77 -0
- larkify-0.1.0/larkify/rest/im/v2/app_feed_card.py +141 -0
- larkify-0.1.0/larkify/rest/im/v2/app_feed_card_batch.py +272 -0
- larkify-0.1.0/larkify/rest/im/v2/biz_entity_tag_relation.py +289 -0
- larkify-0.1.0/larkify/rest/im/v2/chat.py +161 -0
- larkify-0.1.0/larkify/rest/im/v2/chat_button.py +147 -0
- larkify-0.1.0/larkify/rest/im/v2/feed_card.py +258 -0
- larkify-0.1.0/larkify/rest/im/v2/tag.py +222 -0
- larkify-0.1.0/larkify/rest/im/v2/url_preview.py +124 -0
- larkify-0.1.0/larkify/rest/im_ephemeral/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/im_ephemeral/legacy.py +125 -0
- larkify-0.1.0/larkify/rest/im_message/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/im_message/legacy.py +73 -0
- larkify-0.1.0/larkify/rest/lingo/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/lingo/v1/__init__.py +54 -0
- larkify-0.1.0/larkify/rest/lingo/v1/classification.py +91 -0
- larkify-0.1.0/larkify/rest/lingo/v1/draft.py +302 -0
- larkify-0.1.0/larkify/rest/lingo/v1/entity.py +855 -0
- larkify-0.1.0/larkify/rest/lingo/v1/file.py +173 -0
- larkify-0.1.0/larkify/rest/lingo/v1/repo.py +69 -0
- larkify-0.1.0/larkify/rest/mail/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/mail/v1/__init__.py +214 -0
- larkify-0.1.0/larkify/rest/mail/v1/mailgroup.py +527 -0
- larkify-0.1.0/larkify/rest/mail/v1/mailgroup_alias.py +224 -0
- larkify-0.1.0/larkify/rest/mail/v1/mailgroup_manager.py +341 -0
- larkify-0.1.0/larkify/rest/mail/v1/mailgroup_member.py +636 -0
- larkify-0.1.0/larkify/rest/mail/v1/mailgroup_permission_member.py +648 -0
- larkify-0.1.0/larkify/rest/mail/v1/multi_entity.py +137 -0
- larkify-0.1.0/larkify/rest/mail/v1/public_mailbox.py +595 -0
- larkify-0.1.0/larkify/rest/mail/v1/public_mailbox_alias.py +228 -0
- larkify-0.1.0/larkify/rest/mail/v1/public_mailbox_member.py +612 -0
- larkify-0.1.0/larkify/rest/mail/v1/user.py +119 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox.py +311 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_alias.py +244 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_draft.py +571 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_event.py +279 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_folder.py +403 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_label.py +396 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_mail_contact.py +380 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_message.py +1003 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_message_attachment.py +86 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_rule.py +458 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_sent_message.py +125 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_setting.py +121 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_template.py +390 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_template_attachment.py +86 -0
- larkify-0.1.0/larkify/rest/mail/v1/user_mailbox_thread.py +546 -0
- larkify-0.1.0/larkify/rest/mdm/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/mdm/v1/__init__.py +28 -0
- larkify-0.1.0/larkify/rest/mdm/v1/user_auth_data_relation.py +262 -0
- larkify-0.1.0/larkify/rest/mdm/v3/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/mdm/v3/batch_country_region.py +94 -0
- larkify-0.1.0/larkify/rest/mdm/v3/country_region.py +177 -0
- larkify-0.1.0/larkify/rest/minutes/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/minutes/v1/__init__.py +47 -0
- larkify-0.1.0/larkify/rest/minutes/v1/minute.py +475 -0
- larkify-0.1.0/larkify/rest/minutes/v1/minute_media.py +72 -0
- larkify-0.1.0/larkify/rest/minutes/v1/minute_statistics.py +85 -0
- larkify-0.1.0/larkify/rest/minutes/v1/minute_transcript.py +90 -0
- larkify-0.1.0/larkify/rest/moments/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/moments/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/moments/v1/post.py +85 -0
- larkify-0.1.0/larkify/rest/oauth/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/oauth/legacy.py +73 -0
- larkify-0.1.0/larkify/rest/okr/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/okr/v1/__init__.py +68 -0
- larkify-0.1.0/larkify/rest/okr/v1/image.py +85 -0
- larkify-0.1.0/larkify/rest/okr/v1/okr.py +95 -0
- larkify-0.1.0/larkify/rest/okr/v1/period.py +283 -0
- larkify-0.1.0/larkify/rest/okr/v1/period_rule.py +69 -0
- larkify-0.1.0/larkify/rest/okr/v1/progress_record.py +379 -0
- larkify-0.1.0/larkify/rest/okr/v1/review.py +95 -0
- larkify-0.1.0/larkify/rest/okr/v1/user_okr.py +105 -0
- larkify-0.1.0/larkify/rest/okr/v2/__init__.py +122 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_alignment.py +142 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_category.py +91 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_cycle.py +377 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_cycle_objective.py +256 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_indicator.py +175 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_key_result.py +287 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_key_result_indicator.py +93 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_key_result_progress.py +101 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_objective.py +581 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_objective_alignment.py +212 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_objective_indicator.py +93 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_objective_key_result.py +250 -0
- larkify-0.1.0/larkify/rest/okr/v2/okr_objective_progress.py +101 -0
- larkify-0.1.0/larkify/rest/optical_char_recognition/__init__.py +28 -0
- larkify-0.1.0/larkify/rest/optical_char_recognition/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/optical_char_recognition/v1/image.py +119 -0
- larkify-0.1.0/larkify/rest/paginator.py +122 -0
- larkify-0.1.0/larkify/rest/passport/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/passport/v1/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/passport/v1/password.py +138 -0
- larkify-0.1.0/larkify/rest/passport/v1/session.py +253 -0
- larkify-0.1.0/larkify/rest/payroll/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/payroll/v1/__init__.py +103 -0
- larkify-0.1.0/larkify/rest/payroll/v1/acct_item.py +87 -0
- larkify-0.1.0/larkify/rest/payroll/v1/cost_allocation_detail.py +99 -0
- larkify-0.1.0/larkify/rest/payroll/v1/cost_allocation_plan.py +91 -0
- larkify-0.1.0/larkify/rest/payroll/v1/cost_allocation_report.py +99 -0
- larkify-0.1.0/larkify/rest/payroll/v1/datasource.py +87 -0
- larkify-0.1.0/larkify/rest/payroll/v1/datasource_record.py +258 -0
- larkify-0.1.0/larkify/rest/payroll/v1/paygroup.py +87 -0
- larkify-0.1.0/larkify/rest/payroll/v1/payment_activity.py +197 -0
- larkify-0.1.0/larkify/rest/payroll/v1/payment_activity_detail.py +99 -0
- larkify-0.1.0/larkify/rest/payroll/v1/payment_detail.py +133 -0
- larkify-0.1.0/larkify/rest/performance/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/performance/v1/__init__.py +40 -0
- larkify-0.1.0/larkify/rest/performance/v1/review_data.py +163 -0
- larkify-0.1.0/larkify/rest/performance/v1/semester.py +169 -0
- larkify-0.1.0/larkify/rest/performance/v1/stage_task.py +290 -0
- larkify-0.1.0/larkify/rest/performance/v2/__init__.py +134 -0
- larkify-0.1.0/larkify/rest/performance/v2/activity.py +137 -0
- larkify-0.1.0/larkify/rest/performance/v2/additional_information.py +316 -0
- larkify-0.1.0/larkify/rest/performance/v2/additional_informations_batch.py +149 -0
- larkify-0.1.0/larkify/rest/performance/v2/indicator.py +143 -0
- larkify-0.1.0/larkify/rest/performance/v2/metric_detail.py +284 -0
- larkify-0.1.0/larkify/rest/performance/v2/metric_field.py +119 -0
- larkify-0.1.0/larkify/rest/performance/v2/metric_lib.py +179 -0
- larkify-0.1.0/larkify/rest/performance/v2/metric_tag.py +91 -0
- larkify-0.1.0/larkify/rest/performance/v2/metric_template.py +169 -0
- larkify-0.1.0/larkify/rest/performance/v2/question.py +143 -0
- larkify-0.1.0/larkify/rest/performance/v2/review_data.py +209 -0
- larkify-0.1.0/larkify/rest/performance/v2/review_template.py +143 -0
- larkify-0.1.0/larkify/rest/performance/v2/reviewee.py +167 -0
- larkify-0.1.0/larkify/rest/performance/v2/user_group_user_rel.py +163 -0
- larkify-0.1.0/larkify/rest/performance/v2/user_info.py +145 -0
- larkify-0.1.0/larkify/rest/personal_settings/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/personal_settings/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/personal_settings/v1/system_status.py +673 -0
- larkify-0.1.0/larkify/rest/report/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/report/v1/__init__.py +40 -0
- larkify-0.1.0/larkify/rest/report/v1/rule.py +91 -0
- larkify-0.1.0/larkify/rest/report/v1/rule_view.py +140 -0
- larkify-0.1.0/larkify/rest/report/v1/task.py +145 -0
- larkify-0.1.0/larkify/rest/search/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/search/v2/__init__.py +61 -0
- larkify-0.1.0/larkify/rest/search/v2/app.py +151 -0
- larkify-0.1.0/larkify/rest/search/v2/data_source.py +426 -0
- larkify-0.1.0/larkify/rest/search/v2/data_source_item.py +239 -0
- larkify-0.1.0/larkify/rest/search/v2/doc_wiki.py +131 -0
- larkify-0.1.0/larkify/rest/search/v2/message.py +167 -0
- larkify-0.1.0/larkify/rest/search/v2/schema.py +347 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/__init__.py +37 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/v1/__init__.py +48 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/v1/multi_geo_entity_tenant.py +69 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/v1/openapi_log.py +129 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/v1/user_migration.py +415 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/v2/__init__.py +39 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/v2/device_apply_record.py +128 -0
- larkify-0.1.0/larkify/rest/security_and_compliance/v2/device_record.py +580 -0
- larkify-0.1.0/larkify/rest/sheets/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/sheets/v3/__init__.py +79 -0
- larkify-0.1.0/larkify/rest/sheets/v3/spreadsheet.py +280 -0
- larkify-0.1.0/larkify/rest/sheets/v3/spreadsheet_sheet.py +464 -0
- larkify-0.1.0/larkify/rest/sheets/v3/spreadsheet_sheet_filter.py +359 -0
- larkify-0.1.0/larkify/rest/sheets/v3/spreadsheet_sheet_filter_view.py +428 -0
- larkify-0.1.0/larkify/rest/sheets/v3/spreadsheet_sheet_filter_view_condition.py +450 -0
- larkify-0.1.0/larkify/rest/sheets/v3/spreadsheet_sheet_float_image.py +444 -0
- larkify-0.1.0/larkify/rest/spark/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/spark/v1/__init__.py +75 -0
- larkify-0.1.0/larkify/rest/spark/v1/app.py +1198 -0
- larkify-0.1.0/larkify/rest/spark/v1/app_available_scope.py +181 -0
- larkify-0.1.0/larkify/rest/spark/v1/app_enum.py +156 -0
- larkify-0.1.0/larkify/rest/spark/v1/app_release.py +141 -0
- larkify-0.1.0/larkify/rest/spark/v1/app_storage.py +523 -0
- larkify-0.1.0/larkify/rest/spark/v1/app_table.py +746 -0
- larkify-0.1.0/larkify/rest/spark/v1/app_view.py +111 -0
- larkify-0.1.0/larkify/rest/spark/v1/directory_user.py +125 -0
- larkify-0.1.0/larkify/rest/speech_to_text/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/speech_to_text/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/speech_to_text/v1/speech.py +226 -0
- larkify-0.1.0/larkify/rest/task/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/task/v1/__init__.py +54 -0
- larkify-0.1.0/larkify/rest/task/v1/task.py +802 -0
- larkify-0.1.0/larkify/rest/task/v1/task_collaborator.py +278 -0
- larkify-0.1.0/larkify/rest/task/v1/task_comment.py +456 -0
- larkify-0.1.0/larkify/rest/task/v1/task_follower.py +274 -0
- larkify-0.1.0/larkify/rest/task/v1/task_reminder.py +240 -0
- larkify-0.1.0/larkify/rest/task/v2/__init__.py +93 -0
- larkify-0.1.0/larkify/rest/task/v2/attachment.py +337 -0
- larkify-0.1.0/larkify/rest/task/v2/comment.py +450 -0
- larkify-0.1.0/larkify/rest/task/v2/custom_field.py +644 -0
- larkify-0.1.0/larkify/rest/task/v2/custom_field_option.py +250 -0
- larkify-0.1.0/larkify/rest/task/v2/section.py +531 -0
- larkify-0.1.0/larkify/rest/task/v2/task.py +1726 -0
- larkify-0.1.0/larkify/rest/task/v2/task_subtask.py +286 -0
- larkify-0.1.0/larkify/rest/task/v2/task_v2.py +154 -0
- larkify-0.1.0/larkify/rest/task/v2/tasklist.py +910 -0
- larkify-0.1.0/larkify/rest/task/v2/tasklist_activity_subscription.py +488 -0
- larkify-0.1.0/larkify/rest/tenant/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/tenant/v2/__init__.py +37 -0
- larkify-0.1.0/larkify/rest/tenant/v2/tenant.py +69 -0
- larkify-0.1.0/larkify/rest/tenant/v2/tenant_product_assign_info.py +69 -0
- larkify-0.1.0/larkify/rest/translation/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/translation/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/translation/v1/text.py +220 -0
- larkify-0.1.0/larkify/rest/trust_party/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/trust_party/v1/__init__.py +56 -0
- larkify-0.1.0/larkify/rest/trust_party/v1/collaboration_tenant.py +221 -0
- larkify-0.1.0/larkify/rest/trust_party/v1/collaboration_tenant_collaboration_department.py +91 -0
- larkify-0.1.0/larkify/rest/trust_party/v1/collaboration_tenant_collaboration_user.py +87 -0
- larkify-0.1.0/larkify/rest/vc/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/vc/v1/__init__.py +169 -0
- larkify-0.1.0/larkify/rest/vc/v1/alert.py +103 -0
- larkify-0.1.0/larkify/rest/vc/v1/bot.py +565 -0
- larkify-0.1.0/larkify/rest/vc/v1/export.py +615 -0
- larkify-0.1.0/larkify/rest/vc/v1/meeting.py +880 -0
- larkify-0.1.0/larkify/rest/vc/v1/meeting_list.py +127 -0
- larkify-0.1.0/larkify/rest/vc/v1/meeting_recording.py +355 -0
- larkify-0.1.0/larkify/rest/vc/v1/note.py +85 -0
- larkify-0.1.0/larkify/rest/vc/v1/participant_list.py +119 -0
- larkify-0.1.0/larkify/rest/vc/v1/participant_quality_list.py +115 -0
- larkify-0.1.0/larkify/rest/vc/v1/report.py +170 -0
- larkify-0.1.0/larkify/rest/vc/v1/reserve.py +436 -0
- larkify-0.1.0/larkify/rest/vc/v1/reserve_config.py +223 -0
- larkify-0.1.0/larkify/rest/vc/v1/reserve_config_admin.py +213 -0
- larkify-0.1.0/larkify/rest/vc/v1/reserve_config_disable_inform.py +221 -0
- larkify-0.1.0/larkify/rest/vc/v1/reserve_config_form.py +213 -0
- larkify-0.1.0/larkify/rest/vc/v1/resource_reservation_list.py +111 -0
- larkify-0.1.0/larkify/rest/vc/v1/room.py +695 -0
- larkify-0.1.0/larkify/rest/vc/v1/room_config.py +459 -0
- larkify-0.1.0/larkify/rest/vc/v1/room_level.py +587 -0
- larkify-0.1.0/larkify/rest/vc/v1/scope_config.py +213 -0
- larkify-0.1.0/larkify/rest/vc_meeting/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/vc_meeting/legacy.py +905 -0
- larkify-0.1.0/larkify/rest/verification/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/verification/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/verification/v1/verification.py +69 -0
- larkify-0.1.0/larkify/rest/wiki/__init__.py +33 -0
- larkify-0.1.0/larkify/rest/wiki/v1/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/wiki/v1/node.py +147 -0
- larkify-0.1.0/larkify/rest/wiki/v2/__init__.py +54 -0
- larkify-0.1.0/larkify/rest/wiki/v2/space.py +360 -0
- larkify-0.1.0/larkify/rest/wiki/v2/space_member.py +323 -0
- larkify-0.1.0/larkify/rest/wiki/v2/space_node.py +639 -0
- larkify-0.1.0/larkify/rest/wiki/v2/space_setting.py +129 -0
- larkify-0.1.0/larkify/rest/wiki/v2/task.py +84 -0
- larkify-0.1.0/larkify/rest/workplace/__init__.py +26 -0
- larkify-0.1.0/larkify/rest/workplace/v1/__init__.py +52 -0
- larkify-0.1.0/larkify/rest/workplace/v1/custom_workplace_access_data.py +99 -0
- larkify-0.1.0/larkify/rest/workplace/v1/workplace_access_data.py +95 -0
- larkify-0.1.0/larkify/rest/workplace/v1/workplace_block_access_data.py +99 -0
- larkify-0.1.0/larkify/retry.py +106 -0
- larkify-0.1.0/larkify/throttling.py +63 -0
- larkify-0.1.0/larkify/typing.py +60 -0
- larkify-0.1.0/larkify/utils.py +101 -0
- larkify-0.1.0/larkify/webhooks/__init__.py +17 -0
- larkify-0.1.0/larkify/webhooks/callbacks.py +158 -0
- larkify-0.1.0/larkify/webhooks/crypto.py +74 -0
- larkify-0.1.0/larkify/webhooks/dispatcher.py +234 -0
- larkify-0.1.0/larkify/webhooks/events/__init__.py +596 -0
- larkify-0.1.0/larkify/webhooks/events/acs.py +72 -0
- larkify-0.1.0/larkify/webhooks/events/application.py +602 -0
- larkify-0.1.0/larkify/webhooks/events/approval.py +263 -0
- larkify-0.1.0/larkify/webhooks/events/auth.py +38 -0
- larkify-0.1.0/larkify/webhooks/events/calendar.py +128 -0
- larkify-0.1.0/larkify/webhooks/events/compensation.py +38 -0
- larkify-0.1.0/larkify/webhooks/events/contact.py +817 -0
- larkify-0.1.0/larkify/webhooks/events/corehr.py +1622 -0
- larkify-0.1.0/larkify/webhooks/events/drive.py +490 -0
- larkify-0.1.0/larkify/webhooks/events/elearning.py +128 -0
- larkify-0.1.0/larkify/webhooks/events/helpdesk.py +305 -0
- larkify-0.1.0/larkify/webhooks/events/hire.py +486 -0
- larkify-0.1.0/larkify/webhooks/events/im.py +511 -0
- larkify-0.1.0/larkify/webhooks/events/im_chat.py +45 -0
- larkify-0.1.0/larkify/webhooks/events/mail.py +52 -0
- larkify-0.1.0/larkify/webhooks/events/meeting_room.py +89 -0
- larkify-0.1.0/larkify/webhooks/events/moments.py +200 -0
- larkify-0.1.0/larkify/webhooks/events/payroll.py +49 -0
- larkify-0.1.0/larkify/webhooks/events/performance.py +89 -0
- larkify-0.1.0/larkify/webhooks/events/security_and_compliance.py +170 -0
- larkify-0.1.0/larkify/webhooks/events/task.py +94 -0
- larkify-0.1.0/larkify/webhooks/events/vc.py +674 -0
- larkify-0.1.0/larkify/webhooks/events/vc_meeting.py +73 -0
- larkify-0.1.0/larkify/webhooks/models.py +50 -0
- larkify-0.1.0/larkify/webhooks/parse.py +63 -0
- larkify-0.1.0/larkify/ws/__init__.py +2 -0
- larkify-0.1.0/larkify/ws/client.py +336 -0
- larkify-0.1.0/larkify/ws/frame.py +177 -0
- larkify-0.1.0/pyproject.toml +136 -0
- larkify-0.1.0/pyproject.toml.orig +84 -0
larkify-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 StarHeartHunt
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
larkify-0.1.0/NOTICE
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
larkify includes code derived from the following projects, both under the
|
|
2
|
+
MIT License.
|
|
3
|
+
|
|
4
|
+
--------------------------------------------------------------------------------
|
|
5
|
+
githubkit (https://github.com/yanyongyu/githubkit)
|
|
6
|
+
|
|
7
|
+
The client core, configuration, response wrapper, exceptions, retry, throttling
|
|
8
|
+
and cache layers, and the design of the generated clients.
|
|
9
|
+
|
|
10
|
+
MIT License
|
|
11
|
+
|
|
12
|
+
Copyright (c) 2022 yanyongyu
|
|
13
|
+
|
|
14
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
15
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
16
|
+
in the Software without restriction, including without limitation the rights
|
|
17
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
18
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
19
|
+
furnished to do so, subject to the following conditions:
|
|
20
|
+
|
|
21
|
+
The above copyright notice and this permission notice shall be included in all
|
|
22
|
+
copies or substantial portions of the Software.
|
|
23
|
+
|
|
24
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
25
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
26
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
27
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
28
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
29
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
30
|
+
SOFTWARE.
|
|
31
|
+
|
|
32
|
+
--------------------------------------------------------------------------------
|
|
33
|
+
oapi-sdk-python (https://github.com/larksuite/oapi-sdk-python)
|
|
34
|
+
|
|
35
|
+
The long connection protocol handling, the event delivery checks and the
|
|
36
|
+
callback models.
|
|
37
|
+
|
|
38
|
+
MIT License
|
|
39
|
+
|
|
40
|
+
Copyright (c) 2023 Lark Technologies Pte. Ltd.
|
|
41
|
+
|
|
42
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
43
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
44
|
+
in the Software without restriction, including without limitation the rights
|
|
45
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
46
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
47
|
+
furnished to do so, subject to the following conditions:
|
|
48
|
+
|
|
49
|
+
The above copyright notice and this permission notice shall be included in all
|
|
50
|
+
copies or substantial portions of the Software.
|
|
51
|
+
|
|
52
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
53
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
54
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
55
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
56
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
57
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
58
|
+
SOFTWARE.
|
larkify-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,507 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: larkify
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Modern, fully typed Feishu / Lark SDK for Python
|
|
5
|
+
Keywords: feishu,lark,sdk,openapi
|
|
6
|
+
Author: StarHeartHunt
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
License-File: NOTICE
|
|
10
|
+
Requires-Dist: anyio>=4.10.0,<5.0.0
|
|
11
|
+
Requires-Dist: httpx2>=2.16.0,<3.0.0
|
|
12
|
+
Requires-Dist: pydantic>=2.11.0,<3.0.0
|
|
13
|
+
Requires-Dist: typing-extensions>=4.13.0,<5.0.0
|
|
14
|
+
Requires-Dist: cryptography>=42.0.0 ; extra == 'all'
|
|
15
|
+
Requires-Dist: httpx2[ws,http2]>=2.16.0,<3.0.0 ; extra == 'all'
|
|
16
|
+
Requires-Dist: redis>=5.0.0 ; extra == 'all'
|
|
17
|
+
Requires-Dist: cryptography>=42.0.0 ; extra == 'crypto'
|
|
18
|
+
Requires-Dist: httpx2[http2]>=2.16.0,<3.0.0 ; extra == 'http2'
|
|
19
|
+
Requires-Dist: redis>=5.0.0 ; extra == 'redis'
|
|
20
|
+
Requires-Dist: httpx2[ws]>=2.16.0,<3.0.0 ; extra == 'ws'
|
|
21
|
+
Requires-Python: >=3.11, <4.0
|
|
22
|
+
Project-URL: Homepage, https://github.com/StarHeartHunt/larkify
|
|
23
|
+
Project-URL: Repository, https://github.com/StarHeartHunt/larkify
|
|
24
|
+
Project-URL: Issues, https://github.com/StarHeartHunt/larkify/issues
|
|
25
|
+
Provides-Extra: all
|
|
26
|
+
Provides-Extra: crypto
|
|
27
|
+
Provides-Extra: http2
|
|
28
|
+
Provides-Extra: redis
|
|
29
|
+
Provides-Extra: ws
|
|
30
|
+
Description-Content-Type: text/markdown
|
|
31
|
+
|
|
32
|
+
# larkify
|
|
33
|
+
|
|
34
|
+
现代、完整类型标注的飞书 / Lark Python SDK。API 与架构设计参考 [githubkit](https://github.com/yanyongyu/githubkit),基于 [httpx2](https://github.com/pydantic/httpx2) 和 [pydantic](https://docs.pydantic.dev/) 构建。
|
|
35
|
+
|
|
36
|
+
- 同步 / 异步同一套 API,所有接口都有 `create` 与 `async_create` 两种形式
|
|
37
|
+
- 覆盖 1753 个服务端 API、205 个事件,代码由开放平台元数据生成
|
|
38
|
+
- 从参数到响应完整类型标注,`TypedDict` 校验入参字典,pydantic 校验请求体与响应
|
|
39
|
+
- token 自动获取、缓存、失效重取,`refresh_token` 轮换并发安全
|
|
40
|
+
- 限流与服务端错误自动重试,且不会重放非幂等请求
|
|
41
|
+
- 事件订阅支持 Webhook 和长连接,后者直接使用 httpx2 的 WebSocket,不依赖 protobuf
|
|
42
|
+
- 按需加载,`import larkify` 约 60ms
|
|
43
|
+
|
|
44
|
+
需要 Python 3.11+(来自 httpx2 的要求)。
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
pip install larkify
|
|
48
|
+
|
|
49
|
+
pip install "larkify[crypto]" # 解密加密事件
|
|
50
|
+
pip install "larkify[ws]" # 长连接
|
|
51
|
+
pip install "larkify[redis]" # 多进程共享 token 缓存
|
|
52
|
+
pip install "larkify[all]"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 快速开始
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
from larkify import AppAuthStrategy, Feishu
|
|
59
|
+
|
|
60
|
+
feishu = Feishu(AppAuthStrategy("cli_xxx", "app_secret"))
|
|
61
|
+
|
|
62
|
+
resp = feishu.rest.im.v1.message.create(
|
|
63
|
+
receive_id_type="open_id",
|
|
64
|
+
receive_id="ou_xxx",
|
|
65
|
+
msg_type="text",
|
|
66
|
+
content='{"text": "你好"}',
|
|
67
|
+
)
|
|
68
|
+
print(resp.parsed_data.message_id)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
async def main() -> None:
|
|
72
|
+
resp = await feishu.rest.im.v1.message.async_create(
|
|
73
|
+
receive_id_type="open_id",
|
|
74
|
+
receive_id="ou_xxx",
|
|
75
|
+
msg_type="text",
|
|
76
|
+
content='{"text": "你好"}',
|
|
77
|
+
)
|
|
78
|
+
print(resp.parsed_data.message_id)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
调用路径是 `feishu.rest.<业务域>.<版本>.<资源>.<方法>`,与官方 SDK 的 `client.im.v1.message.create` 一一对应。
|
|
82
|
+
|
|
83
|
+
需要连续发多个请求时用上下文管理器复用连接,否则每次调用都会新建连接:
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
with Feishu(AppAuthStrategy("cli_xxx", "app_secret")) as feishu:
|
|
87
|
+
...
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
async def main() -> None:
|
|
91
|
+
async with Feishu(AppAuthStrategy("cli_xxx", "app_secret")) as feishu:
|
|
92
|
+
...
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 传参
|
|
96
|
+
|
|
97
|
+
路径参数按位置传,查询参数和请求体字段按关键字传。请求体也可以整个通过 `data` 传字典或模型:
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
from larkify import AppAuthStrategy, Feishu
|
|
101
|
+
from larkify.models.im.v1.message import CreateMessageBody
|
|
102
|
+
|
|
103
|
+
feishu = Feishu(AppAuthStrategy("cli_xxx", "app_secret"))
|
|
104
|
+
|
|
105
|
+
feishu.rest.im.v1.message.get("om_xxx", user_id_type="open_id")
|
|
106
|
+
|
|
107
|
+
feishu.rest.im.v1.message.create(
|
|
108
|
+
receive_id_type="open_id",
|
|
109
|
+
data={"receive_id": "ou_xxx", "msg_type": "text", "content": "{}"},
|
|
110
|
+
)
|
|
111
|
+
feishu.rest.im.v1.message.create(
|
|
112
|
+
receive_id_type="open_id",
|
|
113
|
+
data=CreateMessageBody(receive_id="ou_xxx", msg_type="text", content="{}"),
|
|
114
|
+
)
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
请求体在发送前由 pydantic 校验,缺少必填字段会在本地报错。`Feishu(..., rest_api_validate_body=False)` 可以关闭校验。文档里没有的字段不会被拦截,会原样发送。
|
|
118
|
+
|
|
119
|
+
字段名和 Python 关键字或 pydantic 保留名冲突时加下划线,例如 `from_`;传字典时使用接口原本的字段名。极少数接口的请求体字段和查询参数同名(如 `drive.v1.permission_member` 的 `type`),这时请求体只能走 `data`。
|
|
120
|
+
|
|
121
|
+
### 响应
|
|
122
|
+
|
|
123
|
+
`Response` 包装了 `httpx2.Response`:
|
|
124
|
+
|
|
125
|
+
| 属性 | 说明 |
|
|
126
|
+
| --- | --- |
|
|
127
|
+
| `parsed_data` | 校验后的 `data`,下载接口为 `bytes` |
|
|
128
|
+
| `code` / `msg` | 业务状态码和信息 |
|
|
129
|
+
| `log_id` | 向飞书支持反馈问题时使用的日志 ID |
|
|
130
|
+
| `json()` | 原始 JSON,`parsed_data` 校验不过时的兜底 |
|
|
131
|
+
| `file_name` | 下载文件名 |
|
|
132
|
+
| `raw_request` / `raw_response` | 底层 httpx2 对象 |
|
|
133
|
+
|
|
134
|
+
响应模型的字段都是 `T | None`,文档没写的字段保留在 `model_extra` 里。
|
|
135
|
+
|
|
136
|
+
### 分页
|
|
137
|
+
|
|
138
|
+
```python
|
|
139
|
+
for chat in feishu.rest.paginate(feishu.rest.im.v1.chat.list, page_size=50):
|
|
140
|
+
print(chat.name)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
async def main() -> None:
|
|
144
|
+
async for chat in feishu.rest.paginate(feishu.rest.im.v1.chat.async_list):
|
|
145
|
+
print(chat.name)
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
元素类型会被推导出来。响应里有多个列表、无法确定取哪一个时,用 `paginate_with` 自行挑选,第二个参数之后是传给接口的参数:
|
|
149
|
+
|
|
150
|
+
```python
|
|
151
|
+
users = feishu.rest.paginate_with(
|
|
152
|
+
feishu.rest.contact.v3.group_member.simplelist,
|
|
153
|
+
lambda response: response.parsed_data.memberlist or [],
|
|
154
|
+
"group_id",
|
|
155
|
+
)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 上传与下载
|
|
159
|
+
|
|
160
|
+
```python
|
|
161
|
+
resp = feishu.rest.im.v1.image.create(
|
|
162
|
+
image_type="message",
|
|
163
|
+
image=("cat.png", open("cat.png", "rb"), "image/png"),
|
|
164
|
+
)
|
|
165
|
+
image_key = resp.parsed_data.image_key
|
|
166
|
+
|
|
167
|
+
resp = feishu.rest.im.v1.image.get(image_key)
|
|
168
|
+
content = resp.parsed_data
|
|
169
|
+
|
|
170
|
+
# 大文件用流式,不会读入内存
|
|
171
|
+
resp = feishu.rest.drive.v1.file.download("file_token", stream=True)
|
|
172
|
+
with open(resp.file_name or "download", "wb") as f:
|
|
173
|
+
for chunk in resp.iter_bytes():
|
|
174
|
+
f.write(chunk)
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 未收录的接口
|
|
178
|
+
|
|
179
|
+
```python
|
|
180
|
+
resp = feishu.request(
|
|
181
|
+
"GET",
|
|
182
|
+
"/open-apis/unified_kms/v1/autonomous_keys",
|
|
183
|
+
token_types=("tenant",),
|
|
184
|
+
)
|
|
185
|
+
print(resp.json())
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## 认证
|
|
189
|
+
|
|
190
|
+
| 策略 | 场景 |
|
|
191
|
+
| --- | --- |
|
|
192
|
+
| `AppAuthStrategy(app_id, app_secret)` | 自建应用,自动管理 tenant / app access token |
|
|
193
|
+
| `IsvAppAuthStrategy(app_id, app_secret, app_ticket=...)` | 商店应用,用 `.as_tenant(tenant_key)` 绑定租户 |
|
|
194
|
+
| `OAuthTokenAuthStrategy(...)` | 用户身份,可自动刷新 |
|
|
195
|
+
| `OAuthWebAuthStrategy(...)` | 用授权码换取用户身份 |
|
|
196
|
+
| `TokenAuthStrategy(token)` | 自行管理的固定 token,`Feishu("t-xxx")` 是它的简写 |
|
|
197
|
+
| `UnauthAuthStrategy()` | 不带 token |
|
|
198
|
+
|
|
199
|
+
每个接口接受哪些 token 类型由生成代码声明,SDK 自动选择。比如同时支持两种 token 的接口,应用身份用 `tenant_access_token`,用户身份用 `user_access_token`。
|
|
200
|
+
|
|
201
|
+
切换身份用 `with_auth`,配置和缓存共享:
|
|
202
|
+
|
|
203
|
+
```python
|
|
204
|
+
from larkify import AppAuthStrategy, Feishu, OAuthToken
|
|
205
|
+
|
|
206
|
+
auth = AppAuthStrategy("cli_xxx", "app_secret")
|
|
207
|
+
feishu = Feishu(auth)
|
|
208
|
+
|
|
209
|
+
# 把用户引导到授权页
|
|
210
|
+
url = auth.get_authorize_url(
|
|
211
|
+
feishu, "https://example.com/callback", scope="offline_access"
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
# 用回调里的 code 换 token
|
|
215
|
+
user = auth.as_web_user("code", "https://example.com/callback").exchange_token(feishu)
|
|
216
|
+
print(user.token, user.refresh_token)
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
# 已有 token 时
|
|
220
|
+
def save(token: OAuthToken) -> None:
|
|
221
|
+
"""refresh_token 只能用一次,新值必须持久化。"""
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
user.on_refresh = save
|
|
225
|
+
feishu.with_auth(user).rest.authen.v1.user_info.get()
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
`refresh_token` 是一次性的,并发刷新时 SDK 保证只消耗一次;新值只会返回一次,所以务必通过 `on_refresh` 保存,异步场景下它可以是协程函数。
|
|
229
|
+
|
|
230
|
+
商店应用需要保存飞书每小时推送的 `app_ticket`:
|
|
231
|
+
|
|
232
|
+
```python
|
|
233
|
+
from larkify import Feishu, IsvAppAuthStrategy
|
|
234
|
+
from larkify.webhooks import EventDispatcher
|
|
235
|
+
from larkify.webhooks.events.application import AppTicketEvent
|
|
236
|
+
|
|
237
|
+
auth = IsvAppAuthStrategy("cli_xxx", "app_secret")
|
|
238
|
+
feishu = Feishu(auth)
|
|
239
|
+
dispatcher = EventDispatcher(verification_token="...")
|
|
240
|
+
|
|
241
|
+
|
|
242
|
+
@dispatcher.on(AppTicketEvent)
|
|
243
|
+
def on_ticket(event: AppTicketEvent) -> None:
|
|
244
|
+
auth.save_app_ticket(feishu, event.event.app_ticket)
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
feishu.with_auth(auth.as_tenant("tenant_key")).rest.contact.v3.user.get("ou_xxx")
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### tenant_access_token 接口
|
|
251
|
+
|
|
252
|
+
文档已把 `/open-apis/auth/v3/tenant_access_token/internal` 标记为历史版本,推荐改用 `POST /oauth/v3/token`(`client_credentials`,返回最长约 4KB 的 JWT)。本 SDK 默认使用新接口,需要旧接口时:
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
AppAuthStrategy("cli_xxx", "app_secret", tenant_token_api="legacy")
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
没有配置 `oauth_base_url` 的私有部署会自动使用旧接口。
|
|
259
|
+
|
|
260
|
+
## 错误与重试
|
|
261
|
+
|
|
262
|
+
```python
|
|
263
|
+
from larkify import AppAuthStrategy, Feishu
|
|
264
|
+
from larkify.exception import RateLimitExceeded, RequestFailed, RequestTimeout
|
|
265
|
+
|
|
266
|
+
feishu = Feishu(AppAuthStrategy("cli_xxx", "app_secret"))
|
|
267
|
+
|
|
268
|
+
try:
|
|
269
|
+
feishu.rest.im.v1.message.get("om_xxx")
|
|
270
|
+
except RateLimitExceeded as e:
|
|
271
|
+
print(e.retry_after)
|
|
272
|
+
except RequestFailed as e:
|
|
273
|
+
print(e.code, e.msg, e.log_id, e.response.error.get("troubleshooter"))
|
|
274
|
+
except RequestTimeout:
|
|
275
|
+
...
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
飞书的业务错误常以 HTTP 200 返回,SDK 会检查 `code`,非 0 一律抛 `RequestFailed`。
|
|
279
|
+
|
|
280
|
+
默认重试策略:
|
|
281
|
+
|
|
282
|
+
- 限流最多重试 3 次,按 `x-ogw-ratelimit-reset` 等待,再追加不超过 1 秒的随机抖动。需要等待超过 60 秒时不重试,直接抛 `RateLimitExceeded`,由调用方根据 `retry_after` 决定,上限可以通过 `RetryRateLimit(max_wait=...)` 调整。
|
|
283
|
+
- 5xx 最多重试 3 次,退避带随机抖动,**只针对幂等方法**,因为 POST 失败不代表没有生效,重放 `im.v1.message.create` 可能发出重复消息。
|
|
284
|
+
|
|
285
|
+
```python
|
|
286
|
+
from datetime import timedelta
|
|
287
|
+
|
|
288
|
+
from larkify import AppAuthStrategy, Feishu
|
|
289
|
+
from larkify.retry import RetryChainDecision, RetryOption, RetryRateLimit, RetryServerError
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
def retry_timeouts(exc, retry_count):
|
|
293
|
+
return RetryOption(retry_count < 2, timedelta(seconds=1))
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
Feishu(AppAuthStrategy("a", "b"), auto_retry=False)
|
|
297
|
+
Feishu(AppAuthStrategy("a", "b"), auto_retry=retry_timeouts)
|
|
298
|
+
Feishu(
|
|
299
|
+
AppAuthStrategy("a", "b"),
|
|
300
|
+
auto_retry=RetryChainDecision(
|
|
301
|
+
RetryRateLimit(max_retry=5, max_wait=timedelta(minutes=5)),
|
|
302
|
+
RetryServerError(1),
|
|
303
|
+
),
|
|
304
|
+
)
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## 配置
|
|
308
|
+
|
|
309
|
+
```python
|
|
310
|
+
from larkify import LARK_BASE_URL, AppAuthStrategy, Feishu
|
|
311
|
+
from larkify.cache import RedisCacheStrategy
|
|
312
|
+
from larkify.throttling import LocalThrottler
|
|
313
|
+
from redis import Redis
|
|
314
|
+
|
|
315
|
+
feishu = Feishu(
|
|
316
|
+
AppAuthStrategy("cli_xxx", "app_secret"),
|
|
317
|
+
base_url=LARK_BASE_URL, # 使用 Lark
|
|
318
|
+
timeout=60,
|
|
319
|
+
proxy="http://127.0.0.1:7890",
|
|
320
|
+
cache_strategy=RedisCacheStrategy(Redis(), prefix="myapp"), # 多进程共享 token
|
|
321
|
+
throttler=LocalThrottler(20), # 限制并发数
|
|
322
|
+
)
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
`base_url` 只接受 https(本机回环地址除外),且不能内嵌账号密码,因为应用密钥会发往这里。
|
|
326
|
+
|
|
327
|
+
## 事件订阅
|
|
328
|
+
|
|
329
|
+
### 长连接
|
|
330
|
+
|
|
331
|
+
不需要公网地址,也不需要处理加解密。
|
|
332
|
+
|
|
333
|
+
```python
|
|
334
|
+
from larkify import AppAuthStrategy, Feishu
|
|
335
|
+
from larkify.webhooks import EventDispatcher
|
|
336
|
+
from larkify.webhooks.events.im import ImMessageReceiveV1Event
|
|
337
|
+
from larkify.ws import WSClient
|
|
338
|
+
|
|
339
|
+
feishu = Feishu(AppAuthStrategy("cli_xxx", "app_secret"))
|
|
340
|
+
dispatcher = EventDispatcher()
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
@dispatcher.on(ImMessageReceiveV1Event)
|
|
344
|
+
async def on_message(event: ImMessageReceiveV1Event) -> None:
|
|
345
|
+
print(event.event.message.content)
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
WSClient(feishu, dispatcher).run()
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
同步函数和协程函数都可以作为处理器,同步函数在工作线程中运行。异步程序里用 `await WSClient(...).arun()`。
|
|
352
|
+
|
|
353
|
+
### Webhook
|
|
354
|
+
|
|
355
|
+
`EventDispatcher` 不绑定 Web 框架。下面以 FastAPI 为例:
|
|
356
|
+
|
|
357
|
+
```python
|
|
358
|
+
from fastapi import FastAPI, Request, Response
|
|
359
|
+
from larkify.webhooks import EventDispatcher
|
|
360
|
+
|
|
361
|
+
app = FastAPI()
|
|
362
|
+
dispatcher = EventDispatcher(encrypt_key="...", verification_token="...")
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
@app.post("/feishu/events")
|
|
366
|
+
async def events(request: Request) -> Response:
|
|
367
|
+
result = await dispatcher.ahandle(await request.body(), request.headers)
|
|
368
|
+
return Response(result.body, result.status_code, media_type=result.content_type)
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
URL 校验、解密、验签由 `handle` / `ahandle` 完成。没有配置任何凭证时会拒绝请求,避免接受伪造事件;确实不需要时显式传 `insecure_no_verification=True`。
|
|
372
|
+
|
|
373
|
+
飞书在超时未响应时会重推事件,耗时的工作应放到处理器之外,并用 `event.header.event_id` 去重。
|
|
374
|
+
|
|
375
|
+
处理器也可以按名称注册,这对 SDK 还不认识的事件有用,此时收到的是通用的 `EventV2`,`event.event` 为字典:
|
|
376
|
+
|
|
377
|
+
```python
|
|
378
|
+
@dispatcher.on("some.new.event_v1")
|
|
379
|
+
def on_new(event) -> None:
|
|
380
|
+
print(event.event)
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
### 回调
|
|
384
|
+
|
|
385
|
+
`card.action.trigger`、`url.preview.get` 这类回调的处理器返回值会回传给飞书:
|
|
386
|
+
|
|
387
|
+
```python
|
|
388
|
+
from larkify.webhooks import CardActionTriggerEvent, CardActionTriggerResponse
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
@dispatcher.on(CardActionTriggerEvent)
|
|
392
|
+
def on_click(event: CardActionTriggerEvent) -> CardActionTriggerResponse:
|
|
393
|
+
return CardActionTriggerResponse.model_validate(
|
|
394
|
+
{"toast": {"type": "success", "content": "已处理"}}
|
|
395
|
+
)
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
## 项目结构
|
|
399
|
+
|
|
400
|
+
```
|
|
401
|
+
larkify/
|
|
402
|
+
├── feishu.py, core.py 客户端、请求、响应检查、重试循环
|
|
403
|
+
├── auth/ 认证策略
|
|
404
|
+
├── cache/ token 缓存
|
|
405
|
+
├── response.py 响应包装
|
|
406
|
+
├── rest/
|
|
407
|
+
│ ├── paginator.py 分页
|
|
408
|
+
│ └── <项目>/<版本>/ [生成] 接口客户端
|
|
409
|
+
├── models/<项目>/<版本>/ [生成] pydantic 模型与 TypedDict
|
|
410
|
+
├── webhooks/
|
|
411
|
+
│ ├── dispatcher.py 事件路由、验签
|
|
412
|
+
│ ├── crypto.py AES 解密、签名
|
|
413
|
+
│ ├── callbacks.py 卡片回调模型(文档目录未收录,手写)
|
|
414
|
+
│ └── events/ [生成] 事件模型
|
|
415
|
+
└── ws/ 长连接与帧编解码
|
|
416
|
+
codegen/ 代码生成器
|
|
417
|
+
scripts/ 生成结果校验
|
|
418
|
+
schema/ 文档元数据快照(不入库)
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### 与 githubkit 的对应
|
|
422
|
+
|
|
423
|
+
| githubkit | larkify | 说明 |
|
|
424
|
+
| --- | --- | --- |
|
|
425
|
+
| `GitHub` / `GitHubCore` | `Feishu` / `FeishuCore` | |
|
|
426
|
+
| `github.rest.issues.create` | `feishu.rest.im.v1.message.create` | 多了版本一层,与飞书 API 结构一致 |
|
|
427
|
+
| `async_create` | `async_create` | |
|
|
428
|
+
| `data=` 或关键字参数 | 相同 | |
|
|
429
|
+
| `Response.parsed_data` | 相同 | 校验的是 `data`,不是整个响应体 |
|
|
430
|
+
| `github.rest.paginate` | `feishu.rest.paginate` | 基于 `page_token`,`map_func` 改为 `paginate_with` |
|
|
431
|
+
| `AuthStrategy` + `with_auth` | 相同 | |
|
|
432
|
+
| `BaseCacheStrategy` | 相同 | 只缓存 token,飞书 API 没有 HTTP 缓存语义,因此去掉了 hishel |
|
|
433
|
+
| `RetryDecisionFunc` | 相同 | 5xx 只重试幂等方法 |
|
|
434
|
+
| `Throttler` | 相同 | |
|
|
435
|
+
| `github.webhooks` | `larkify.webhooks` | 增加了事件分发和加解密 |
|
|
436
|
+
| - | `larkify.ws` | 飞书特有的长连接 |
|
|
437
|
+
|
|
438
|
+
和 githubkit 不同的取舍:
|
|
439
|
+
|
|
440
|
+
- **响应字段用 `T | None` 而不是 `Missing[T]`。** 文档里响应字段几乎都不是必填,飞书也会返回 `null`,`UNSET` 只增加类型噪音。方法参数仍保留 `Missing` / `UNSET`。
|
|
441
|
+
- **枚举只做静态检查。** 文档枚举可能滞后,方法参数和 `TypedDict` 用 `Literal`,pydantic 模型用基础类型,运行时不会因为新枚举值拒绝请求。
|
|
442
|
+
- **模型放宽校验。** `extra="allow"`、数字可转字符串,因为模型来自文档而非正式 schema。
|
|
443
|
+
- **只支持 pydantic v2 和 httpx2**,没有兼容层。
|
|
444
|
+
|
|
445
|
+
## 代码生成
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
uv sync --all-extras
|
|
449
|
+
uv run python -m codegen fetch # 抓取元数据到 schema/,约 6 分钟,可断点续传
|
|
450
|
+
uv run python -m codegen build # 生成代码
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
飞书没有公开的 OpenAPI 文件,数据来自开放平台文档站点使用的接口:
|
|
454
|
+
|
|
455
|
+
| 来源 | 内容 |
|
|
456
|
+
| --- | --- |
|
|
457
|
+
| `/api/tools/server-side-api/list` | 接口目录 |
|
|
458
|
+
| `/api_explorer/v1/api_definition` | 机器可读定义,**字段全集**、精确类型、token、上传下载标记 |
|
|
459
|
+
| `/document_portal/v1/document/get_detail` | 渲染后的文档,更可靠的 `required`、枚举、描述和示例 |
|
|
460
|
+
| `/api/tools/server-side-event/list` | 事件目录,事件结构从文档表格和示例中解析 |
|
|
461
|
+
|
|
462
|
+
这些是文档站内部接口,不是公开 API,结构可能变化,`fetch` 届时需要调整。
|
|
463
|
+
|
|
464
|
+
生成流程值得注意的几点:
|
|
465
|
+
|
|
466
|
+
- 接口路径取自 `definition.apiPath`。目录的 `url` 字段有 10 处错误,比如缺版本号或路径参数。
|
|
467
|
+
- `definition.pagination` 漏标约三分之一的分页接口,所以按结构判断:传入 `page_token` 且响应有后续标记。
|
|
468
|
+
- 文档把递归结构全部内联(docx 单个接口的元数据达 7MB),模型按「名称 + 结构签名」去重,1753 个接口收敛为 4846 个模型。
|
|
469
|
+
- 文档示例和声明类型冲突的字段放宽为 `Any`,避免一个字段让整个响应解析失败。当前共 11 处。
|
|
470
|
+
|
|
471
|
+
## 测试
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
uv run pytest
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
依赖 `schema/` 快照的校验脚本:
|
|
478
|
+
|
|
479
|
+
```bash
|
|
480
|
+
uv run python scripts/check_generated.py # 构建全部模型
|
|
481
|
+
uv run python scripts/check_endpoints.py # 调用全部接口,比对 method、路径、参数、token
|
|
482
|
+
PYTHONPATH=. uv run python scripts/check_examples.py # 用文档示例回放接口模型
|
|
483
|
+
PYTHONPATH=. uv run python scripts/check_events.py # 用文档示例回放事件模型
|
|
484
|
+
PYTHONPATH=. uv run python scripts/check_official_sdk.py /path/to/oapi-sdk-python
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
### 验证范围
|
|
488
|
+
|
|
489
|
+
已验证:
|
|
490
|
+
|
|
491
|
+
- 全部接口的 sync / async 调用都能发出与元数据一致的请求(mock transport)
|
|
492
|
+
- 文档示例:835 个请求体、1182 个响应、194 个事件全部通过(含上述 11 处放宽)
|
|
493
|
+
- 与官方 SDK 1.7.5 对比:覆盖其 1619 个接口中的 1604 个,并多出 149 个
|
|
494
|
+
- 帧编码与官方 protobuf 实现逐字节一致,解密与官方实现双向互通
|
|
495
|
+
- 长连接通过本地 socket 服务器端到端测试
|
|
496
|
+
|
|
497
|
+
### 已知缺口
|
|
498
|
+
|
|
499
|
+
- 113 个旧版接口(`Version=old`,如 `ccm_sheet`)文档没有结构化数据,生成的是无类型方法,位于 `feishu.rest.<项目>.legacy`
|
|
500
|
+
- 官方 SDK 有、公开文档目录没有的 15 个接口(`unified_kms`、`block/v2` 等)未生成,可用 `feishu.request` 调用
|
|
501
|
+
- 同样情况的 8 个事件(如 `vc.note.generated_v1`)没有类型化模型,可按名称注册
|
|
502
|
+
- 不支持旧版卡片回调(`CardActionHandler`),请使用 `card.action.trigger`
|
|
503
|
+
- 不支持官方 SDK 的 `client_assertion` 无密钥认证
|
|
504
|
+
|
|
505
|
+
## License
|
|
506
|
+
|
|
507
|
+
[MIT](https://github.com/StarHeartHunt/larkify/blob/main/LICENSE)。部分代码源自 githubkit 和 oapi-sdk-python,其许可声明见 [NOTICE](https://github.com/StarHeartHunt/larkify/blob/main/NOTICE)。
|