xyp 0.1.0a1__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.
Files changed (579) hide show
  1. xyp-0.1.0a1/.gitignore +22 -0
  2. xyp-0.1.0a1/LICENSE +21 -0
  3. xyp-0.1.0a1/PKG-INFO +245 -0
  4. xyp-0.1.0a1/README.md +221 -0
  5. xyp-0.1.0a1/examples/smoke.py +31 -0
  6. xyp-0.1.0a1/pyproject.toml +79 -0
  7. xyp-0.1.0a1/src/xyp/__init__.py +58 -0
  8. xyp-0.1.0a1/src/xyp/_client.py +170 -0
  9. xyp-0.1.0a1/src/xyp/_groups.py +264 -0
  10. xyp-0.1.0a1/src/xyp/_models.py +218 -0
  11. xyp-0.1.0a1/src/xyp/_operations.py +511 -0
  12. xyp-0.1.0a1/src/xyp/_service.py +15 -0
  13. xyp-0.1.0a1/src/xyp/_signer.py +74 -0
  14. xyp-0.1.0a1/src/xyp/_soap.py +163 -0
  15. xyp-0.1.0a1/src/xyp/_tls.py +40 -0
  16. xyp-0.1.0a1/src/xyp/_transport.py +160 -0
  17. xyp-0.1.0a1/src/xyp/auth.py +102 -0
  18. xyp-0.1.0a1/src/xyp/certs/MNICA-2022.pem +32 -0
  19. xyp-0.1.0a1/src/xyp/certs/MNRCA-2021.pem +32 -0
  20. xyp-0.1.0a1/src/xyp/errors.py +146 -0
  21. xyp-0.1.0a1/src/xyp/models/__init__.py +4 -0
  22. xyp-0.1.0a1/src/xyp/models/citizen.py +422 -0
  23. xyp-0.1.0a1/src/xyp/models/education.py +122 -0
  24. xyp-0.1.0a1/src/xyp/models/foreign_service.py +36 -0
  25. xyp-0.1.0a1/src/xyp/models/government_service.py +280 -0
  26. xyp-0.1.0a1/src/xyp/models/health.py +406 -0
  27. xyp-0.1.0a1/src/xyp/models/insurance.py +328 -0
  28. xyp-0.1.0a1/src/xyp/models/labor_welfare.py +104 -0
  29. xyp-0.1.0a1/src/xyp/models/legal_entity.py +134 -0
  30. xyp-0.1.0a1/src/xyp/models/meta.py +36 -0
  31. xyp-0.1.0a1/src/xyp/models/payment.py +188 -0
  32. xyp-0.1.0a1/src/xyp/models/pki.py +14 -0
  33. xyp-0.1.0a1/src/xyp/models/private_service.py +40 -0
  34. xyp-0.1.0a1/src/xyp/models/property.py +178 -0
  35. xyp-0.1.0a1/src/xyp/models/statistic.py +126 -0
  36. xyp-0.1.0a1/src/xyp/models/tax.py +54 -0
  37. xyp-0.1.0a1/src/xyp/models/transport.py +262 -0
  38. xyp-0.1.0a1/src/xyp/operations/__init__.py +4 -0
  39. xyp-0.1.0a1/src/xyp/operations/citizen/__init__.py +4 -0
  40. xyp-0.1.0a1/src/xyp/operations/citizen/active_vocational_student_info.py +109 -0
  41. xyp-0.1.0a1/src/xyp/operations/citizen/address_apartment_info.py +86 -0
  42. xyp-0.1.0a1/src/xyp/operations/citizen/address_street_info.py +86 -0
  43. xyp-0.1.0a1/src/xyp/operations/citizen/address_type_info.py +65 -0
  44. xyp-0.1.0a1/src/xyp/operations/citizen/affiliation_registration_info.py +100 -0
  45. xyp-0.1.0a1/src/xyp/operations/citizen/aimag_city_info.py +65 -0
  46. xyp-0.1.0a1/src/xyp/operations/citizen/authorize_citizen.py +78 -0
  47. xyp-0.1.0a1/src/xyp/operations/citizen/bag_khoroo_info.py +83 -0
  48. xyp-0.1.0a1/src/xyp/operations/citizen/border_ban.py +116 -0
  49. xyp-0.1.0a1/src/xyp/operations/citizen/check_citizen_address_info.py +107 -0
  50. xyp-0.1.0a1/src/xyp/operations/citizen/check_citizen_info.py +84 -0
  51. xyp-0.1.0a1/src/xyp/operations/citizen/check_citizen_non_passport.py +78 -0
  52. xyp-0.1.0a1/src/xyp/operations/citizen/check_citizen_regnum.py +72 -0
  53. xyp-0.1.0a1/src/xyp/operations/citizen/check_id_card_service.py +112 -0
  54. xyp-0.1.0a1/src/xyp/operations/citizen/check_twin_info.py +119 -0
  55. xyp-0.1.0a1/src/xyp/operations/citizen/children_rank_statistic_info.py +120 -0
  56. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_address_list_english.py +125 -0
  57. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_birth_info.py +101 -0
  58. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_birth_info_ws101123.py +103 -0
  59. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_denationalization_info.py +133 -0
  60. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_doing_criminal_liabilityl_info.py +94 -0
  61. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_doing_criminal_liabilty_eng_info.py +124 -0
  62. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_graduate_school_description.py +93 -0
  63. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_graduate_school_info.py +104 -0
  64. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_graduate_school_list.py +96 -0
  65. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_high_school_description.py +84 -0
  66. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_kindergarten_description.py +84 -0
  67. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_look_up_address.py +152 -0
  68. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_look_up_info.py +150 -0
  69. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_new_diploma_info.py +147 -0
  70. xyp-0.1.0a1/src/xyp/operations/citizen/citizen_was_criminal_liabilityl_info.py +124 -0
  71. xyp-0.1.0a1/src/xyp/operations/citizen/civil_info_at_burtgelmn.py +92 -0
  72. xyp-0.1.0a1/src/xyp/operations/citizen/civil_service_employee_info.py +117 -0
  73. xyp-0.1.0a1/src/xyp/operations/citizen/conformity_certificate_detail_service.py +142 -0
  74. xyp-0.1.0a1/src/xyp/operations/citizen/conformity_certificate_list.py +256 -0
  75. xyp-0.1.0a1/src/xyp/operations/citizen/current_passport_info.py +133 -0
  76. xyp-0.1.0a1/src/xyp/operations/citizen/decease_list_by_date.py +123 -0
  77. xyp-0.1.0a1/src/xyp/operations/citizen/entity_affil_by_regnum_service.py +102 -0
  78. xyp-0.1.0a1/src/xyp/operations/citizen/extend_term_of_granted_name.py +104 -0
  79. xyp-0.1.0a1/src/xyp/operations/citizen/extend_term_of_granted_name_update.py +90 -0
  80. xyp-0.1.0a1/src/xyp/operations/citizen/first_time_passport_info.py +93 -0
  81. xyp-0.1.0a1/src/xyp/operations/citizen/foreign_passport_unregistered_info_english.py +83 -0
  82. xyp-0.1.0a1/src/xyp/operations/citizen/get_children_info.py +119 -0
  83. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_address_info.py +119 -0
  84. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_before_address_info.py +87 -0
  85. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_below_subsistence_level_info.py +106 -0
  86. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_birth_info.py +107 -0
  87. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_change_name_info.py +104 -0
  88. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_change_regnum_info.py +88 -0
  89. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_decease_info.py +91 -0
  90. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_foul_info.py +74 -0
  91. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_health_insurance_info.py +89 -0
  92. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_id_card_info.py +173 -0
  93. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_marriage_divorce_info.py +99 -0
  94. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_marriage_info.py +97 -0
  95. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_no_marriage_info.py +90 -0
  96. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_non_id_card_info.py +141 -0
  97. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_non_payment_info.py +111 -0
  98. xyp-0.1.0a1/src/xyp/operations/citizen/get_citizen_regnum_info.py +89 -0
  99. xyp-0.1.0a1/src/xyp/operations/citizen/get_dictionary_name_info.py +85 -0
  100. xyp-0.1.0a1/src/xyp/operations/citizen/get_dissolved_legal_entity_info.py +85 -0
  101. xyp-0.1.0a1/src/xyp/operations/citizen/get_election_location.py +91 -0
  102. xyp-0.1.0a1/src/xyp/operations/citizen/get_id_card_photo.py +97 -0
  103. xyp-0.1.0a1/src/xyp/operations/citizen/get_marriage_restore_info.py +122 -0
  104. xyp-0.1.0a1/src/xyp/operations/citizen/get_organization_where_citizen_works_info.py +132 -0
  105. xyp-0.1.0a1/src/xyp/operations/citizen/get_passport_civil_info.py +138 -0
  106. xyp-0.1.0a1/src/xyp/operations/citizen/get_passport_issued_place.py +81 -0
  107. xyp-0.1.0a1/src/xyp/operations/citizen/get_stamp_reference.py +95 -0
  108. xyp-0.1.0a1/src/xyp/operations/citizen/get_topic_scope.py +81 -0
  109. xyp-0.1.0a1/src/xyp/operations/citizen/get_topics.py +99 -0
  110. xyp-0.1.0a1/src/xyp/operations/citizen/graduated_vocational_student_info.py +121 -0
  111. xyp-0.1.0a1/src/xyp/operations/citizen/internal_troops_description.py +86 -0
  112. xyp-0.1.0a1/src/xyp/operations/citizen/legal_entity_name_validity_service.py +103 -0
  113. xyp-0.1.0a1/src/xyp/operations/citizen/list_of_civil_titles.py +110 -0
  114. xyp-0.1.0a1/src/xyp/operations/citizen/passport_info.py +114 -0
  115. xyp-0.1.0a1/src/xyp/operations/citizen/passport_info_second_time.py +104 -0
  116. xyp-0.1.0a1/src/xyp/operations/citizen/passport_invalid_info.py +153 -0
  117. xyp-0.1.0a1/src/xyp/operations/citizen/passport_validity_checker.py +102 -0
  118. xyp-0.1.0a1/src/xyp/operations/citizen/police_weapon_movement_transfer_service.py +140 -0
  119. xyp-0.1.0a1/src/xyp/operations/citizen/regnum_change_info_english.py +101 -0
  120. xyp-0.1.0a1/src/xyp/operations/citizen/regnum_info_english.py +89 -0
  121. xyp-0.1.0a1/src/xyp/operations/citizen/soum_district_info.py +77 -0
  122. xyp-0.1.0a1/src/xyp/operations/citizen/svc_marriage_restores.py +93 -0
  123. xyp-0.1.0a1/src/xyp/operations/education/__init__.py +4 -0
  124. xyp-0.1.0a1/src/xyp/operations/education/basic_edu_cert_request.py +97 -0
  125. xyp-0.1.0a1/src/xyp/operations/education/basic_education_certificate_supplement_en.py +139 -0
  126. xyp-0.1.0a1/src/xyp/operations/education/basic_education_certificate_supplement_mn.py +139 -0
  127. xyp-0.1.0a1/src/xyp/operations/education/certificate_supplement_look_up.py +139 -0
  128. xyp-0.1.0a1/src/xyp/operations/education/certificate_supplement_lookup_mn.py +139 -0
  129. xyp-0.1.0a1/src/xyp/operations/education/check_kindergarten_enrollment.py +115 -0
  130. xyp-0.1.0a1/src/xyp/operations/education/children_info_by_parent_civil_id.py +140 -0
  131. xyp-0.1.0a1/src/xyp/operations/education/civil_capacity_certificate_detail_service.py +97 -0
  132. xyp-0.1.0a1/src/xyp/operations/education/diploma_copy_bilingual_service.py +80 -0
  133. xyp-0.1.0a1/src/xyp/operations/education/foreign_higher_education_detail_service.py +111 -0
  134. xyp-0.1.0a1/src/xyp/operations/education/foreign_higher_education_service_one.py +111 -0
  135. xyp-0.1.0a1/src/xyp/operations/education/get_citizen_capacity_certificate_list.py +90 -0
  136. xyp-0.1.0a1/src/xyp/operations/education/kindergarten_description.py +88 -0
  137. xyp-0.1.0a1/src/xyp/operations/education/send_kindergarten_enrollment.py +290 -0
  138. xyp-0.1.0a1/src/xyp/operations/education/student_card.py +117 -0
  139. xyp-0.1.0a1/src/xyp/operations/education/teacher_card_info.py +84 -0
  140. xyp-0.1.0a1/src/xyp/operations/education/uee_reference_service.py +77 -0
  141. xyp-0.1.0a1/src/xyp/operations/education/umns_education_info.py +87 -0
  142. xyp-0.1.0a1/src/xyp/operations/foreign_service/__init__.py +4 -0
  143. xyp-0.1.0a1/src/xyp/operations/foreign_service/foreign_citizen_info_service.py +93 -0
  144. xyp-0.1.0a1/src/xyp/operations/foreign_service/foreigner_residence_permit_inquiry.py +90 -0
  145. xyp-0.1.0a1/src/xyp/operations/foreign_service/get_border_crossing_info.py +151 -0
  146. xyp-0.1.0a1/src/xyp/operations/foreign_service/new_executive_management_registration_verification.py +88 -0
  147. xyp-0.1.0a1/src/xyp/operations/foreign_service/non_governmental_organization_info.py +96 -0
  148. xyp-0.1.0a1/src/xyp/operations/foreign_service/visa_residency_info.py +139 -0
  149. xyp-0.1.0a1/src/xyp/operations/government_service/__init__.py +4 -0
  150. xyp-0.1.0a1/src/xyp/operations/government_service/agricultural_incentive_receipt_service.py +102 -0
  151. xyp-0.1.0a1/src/xyp/operations/government_service/available_courtroom_schedule_service.py +91 -0
  152. xyp-0.1.0a1/src/xyp/operations/government_service/check_imei.py +99 -0
  153. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_birth_info_eng.py +98 -0
  154. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_covid19_e_pass.py +77 -0
  155. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_id_card_info_eng.py +162 -0
  156. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_international_cert.py +116 -0
  157. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_legal_entity_weapons.py +96 -0
  158. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_marriage_info_eng.py +91 -0
  159. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_no_marriage_info_data.py +83 -0
  160. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_non_payment_eng_info.py +116 -0
  161. xyp-0.1.0a1/src/xyp/operations/government_service/citizen_weapon_registration_booking_service.py +107 -0
  162. xyp-0.1.0a1/src/xyp/operations/government_service/covid19_medical_certificate_info.py +132 -0
  163. xyp-0.1.0a1/src/xyp/operations/government_service/covid_vaccine_dose_count.py +80 -0
  164. xyp-0.1.0a1/src/xyp/operations/government_service/create_complaint_rating.py +99 -0
  165. xyp-0.1.0a1/src/xyp/operations/government_service/create_feedback_fact_call.py +144 -0
  166. xyp-0.1.0a1/src/xyp/operations/government_service/create_feedback_session.py +168 -0
  167. xyp-0.1.0a1/src/xyp/operations/government_service/docx_access_verification_service.py +80 -0
  168. xyp-0.1.0a1/src/xyp/operations/government_service/feedback_dimension_departments.py +74 -0
  169. xyp-0.1.0a1/src/xyp/operations/government_service/firearm_owner_certificate_info.py +79 -0
  170. xyp-0.1.0a1/src/xyp/operations/government_service/foreign_citizen_international_cert.py +98 -0
  171. xyp-0.1.0a1/src/xyp/operations/government_service/gas_gun_bullet_registration_certificate.py +111 -0
  172. xyp-0.1.0a1/src/xyp/operations/government_service/get_aimag_city_info_by_zipcode.py +81 -0
  173. xyp-0.1.0a1/src/xyp/operations/government_service/get_bag_district_list_by_zipcode.py +81 -0
  174. xyp-0.1.0a1/src/xyp/operations/government_service/get_complaint_status.py +100 -0
  175. xyp-0.1.0a1/src/xyp/operations/government_service/get_electoral_station_info.py +119 -0
  176. xyp-0.1.0a1/src/xyp/operations/government_service/get_explosive_tools_info.py +74 -0
  177. xyp-0.1.0a1/src/xyp/operations/government_service/get_explosives_info.py +81 -0
  178. xyp-0.1.0a1/src/xyp/operations/government_service/get_feedback_dimension_tags.py +74 -0
  179. xyp-0.1.0a1/src/xyp/operations/government_service/get_feedback_fact_call.py +123 -0
  180. xyp-0.1.0a1/src/xyp/operations/government_service/get_gun_models_info.py +94 -0
  181. xyp-0.1.0a1/src/xyp/operations/government_service/get_list_of_countries_info.py +81 -0
  182. xyp-0.1.0a1/src/xyp/operations/government_service/get_person_complaint_status_list.py +88 -0
  183. xyp-0.1.0a1/src/xyp/operations/government_service/get_pos_receipt_dtl_product.py +86 -0
  184. xyp-0.1.0a1/src/xyp/operations/government_service/get_raw_materials_info.py +81 -0
  185. xyp-0.1.0a1/src/xyp/operations/government_service/get_soum_district_list_by_zipcode.py +81 -0
  186. xyp-0.1.0a1/src/xyp/operations/government_service/get_tree_register.py +93 -0
  187. xyp-0.1.0a1/src/xyp/operations/government_service/lawyer_info_service.py +170 -0
  188. xyp-0.1.0a1/src/xyp/operations/government_service/non_adult_citizen_info.py +138 -0
  189. xyp-0.1.0a1/src/xyp/operations/government_service/notary_trust_archived_info.py +120 -0
  190. xyp-0.1.0a1/src/xyp/operations/government_service/notary_trust_info.py +140 -0
  191. xyp-0.1.0a1/src/xyp/operations/government_service/notary_vehicle_info.py +126 -0
  192. xyp-0.1.0a1/src/xyp/operations/government_service/operation_archive_by_regnum_service.py +101 -0
  193. xyp-0.1.0a1/src/xyp/operations/government_service/payment_confirmation_service.py +138 -0
  194. xyp-0.1.0a1/src/xyp/operations/government_service/payment_info_service.py +105 -0
  195. xyp-0.1.0a1/src/xyp/operations/government_service/registration_number_validator.py +73 -0
  196. xyp-0.1.0a1/src/xyp/operations/government_service/risk_reference_service.py +163 -0
  197. xyp-0.1.0a1/src/xyp/operations/government_service/risk_registration_service.py +149 -0
  198. xyp-0.1.0a1/src/xyp/operations/government_service/risk_status_change_service.py +107 -0
  199. xyp-0.1.0a1/src/xyp/operations/government_service/special_equipment_cartridge_registration_certificate.py +111 -0
  200. xyp-0.1.0a1/src/xyp/operations/government_service/student_soldier_info.py +127 -0
  201. xyp-0.1.0a1/src/xyp/operations/government_service/tree_register.py +101 -0
  202. xyp-0.1.0a1/src/xyp/operations/government_service/weapon_ballistic_registration_certificate.py +111 -0
  203. xyp-0.1.0a1/src/xyp/operations/government_service/weapon_registration_schedule_service.py +94 -0
  204. xyp-0.1.0a1/src/xyp/operations/health/__init__.py +4 -0
  205. xyp-0.1.0a1/src/xyp/operations/health/check_payment_months.py +80 -0
  206. xyp-0.1.0a1/src/xyp/operations/health/check_prescription_infoby_regnum.py +110 -0
  207. xyp-0.1.0a1/src/xyp/operations/health/citizen_image_diagnosis_and_analysis_info.py +112 -0
  208. xyp-0.1.0a1/src/xyp/operations/health/citizen_monthly_service_usage_inquiry_service.py +124 -0
  209. xyp-0.1.0a1/src/xyp/operations/health/citizen_questionnaire_submit_service.py +99 -0
  210. xyp-0.1.0a1/src/xyp/operations/health/citizen_service_package_number_inquiry_service.py +88 -0
  211. xyp-0.1.0a1/src/xyp/operations/health/covid_pcr_last_result_info.py +91 -0
  212. xyp-0.1.0a1/src/xyp/operations/health/docter_degree_info.py +84 -0
  213. xyp-0.1.0a1/src/xyp/operations/health/doctor_license_check.py +85 -0
  214. xyp-0.1.0a1/src/xyp/operations/health/e_health_check_patient_exists.py +80 -0
  215. xyp-0.1.0a1/src/xyp/operations/health/e_health_create_patient.py +122 -0
  216. xyp-0.1.0a1/src/xyp/operations/health/e_health_get_analysis_dates.py +82 -0
  217. xyp-0.1.0a1/src/xyp/operations/health/e_health_get_analysis_result.py +88 -0
  218. xyp-0.1.0a1/src/xyp/operations/health/e_health_get_free_time_list.py +100 -0
  219. xyp-0.1.0a1/src/xyp/operations/health/e_health_get_hospitals.py +86 -0
  220. xyp-0.1.0a1/src/xyp/operations/health/e_health_get_medical_services.py +91 -0
  221. xyp-0.1.0a1/src/xyp/operations/health/e_health_list_service.py +78 -0
  222. xyp-0.1.0a1/src/xyp/operations/health/e_health_online_appointment_order.py +113 -0
  223. xyp-0.1.0a1/src/xyp/operations/health/e_health_online_time_order_list.py +103 -0
  224. xyp-0.1.0a1/src/xyp/operations/health/e_health_time_order_approve.py +80 -0
  225. xyp-0.1.0a1/src/xyp/operations/health/e_health_time_order_cancel.py +80 -0
  226. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_by_address.py +78 -0
  227. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_check_patient_exists.py +80 -0
  228. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_citizen_analysis_info.py +100 -0
  229. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_create_patient.py +122 -0
  230. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_find_address.py +68 -0
  231. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_get_analysis_dates.py +80 -0
  232. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_get_analysis_result.py +88 -0
  233. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_get_free_time_list.py +100 -0
  234. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_get_hospitals.py +86 -0
  235. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_get_medical_services.py +91 -0
  236. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_online_appointment_order.py +113 -0
  237. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_online_time_order_list.py +103 -0
  238. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_time_order_approve.py +80 -0
  239. xyp-0.1.0a1/src/xyp/operations/health/e_hospital_time_order_cancel.py +80 -0
  240. xyp-0.1.0a1/src/xyp/operations/health/early_detection_service.py +85 -0
  241. xyp-0.1.0a1/src/xyp/operations/health/get_active_pregnancy.py +90 -0
  242. xyp-0.1.0a1/src/xyp/operations/health/get_all_druglistings_info.py +139 -0
  243. xyp-0.1.0a1/src/xyp/operations/health/get_ambulatory.py +101 -0
  244. xyp-0.1.0a1/src/xyp/operations/health/get_ambulatory_dtl.py +112 -0
  245. xyp-0.1.0a1/src/xyp/operations/health/get_blood_type_service.py +78 -0
  246. xyp-0.1.0a1/src/xyp/operations/health/get_child_birth.py +84 -0
  247. xyp-0.1.0a1/src/xyp/operations/health/get_child_book.py +105 -0
  248. xyp-0.1.0a1/src/xyp/operations/health/get_child_book_check_ups.py +81 -0
  249. xyp-0.1.0a1/src/xyp/operations/health/get_children_birth_info.py +92 -0
  250. xyp-0.1.0a1/src/xyp/operations/health/get_data_by_form_summary.py +101 -0
  251. xyp-0.1.0a1/src/xyp/operations/health/get_drug_info.py +135 -0
  252. xyp-0.1.0a1/src/xyp/operations/health/get_ecare_by_regnum.py +123 -0
  253. xyp-0.1.0a1/src/xyp/operations/health/get_emd_service_history.py +111 -0
  254. xyp-0.1.0a1/src/xyp/operations/health/get_form13_a_info.py +146 -0
  255. xyp-0.1.0a1/src/xyp/operations/health/get_form13_a_list.py +94 -0
  256. xyp-0.1.0a1/src/xyp/operations/health/get_health_insurance_premium_list.py +91 -0
  257. xyp-0.1.0a1/src/xyp/operations/health/get_hospital_list_info.py +148 -0
  258. xyp-0.1.0a1/src/xyp/operations/health/get_hospital_operation_info.py +89 -0
  259. xyp-0.1.0a1/src/xyp/operations/health/get_hospitals_from_distance.py +174 -0
  260. xyp-0.1.0a1/src/xyp/operations/health/get_kid_question_result.py +104 -0
  261. xyp-0.1.0a1/src/xyp/operations/health/get_kindergarten_analysis_result_by_child_regno.py +107 -0
  262. xyp-0.1.0a1/src/xyp/operations/health/get_personal_info.py +84 -0
  263. xyp-0.1.0a1/src/xyp/operations/health/get_receipt_by_regnum_and_number.py +200 -0
  264. xyp-0.1.0a1/src/xyp/operations/health/get_streptococcus.py +100 -0
  265. xyp-0.1.0a1/src/xyp/operations/health/get_vaccine_by_regnum_info.py +151 -0
  266. xyp-0.1.0a1/src/xyp/operations/health/h_info_nc_diseases_report.py +157 -0
  267. xyp-0.1.0a1/src/xyp/operations/health/medicine_import_insert.py +87 -0
  268. xyp-0.1.0a1/src/xyp/operations/health/multi_degree_info.py +99 -0
  269. xyp-0.1.0a1/src/xyp/operations/health/multi_license_info.py +102 -0
  270. xyp-0.1.0a1/src/xyp/operations/health/pregnancy_control_note_reference_info.py +100 -0
  271. xyp-0.1.0a1/src/xyp/operations/health/pregnancy_summary.py +98 -0
  272. xyp-0.1.0a1/src/xyp/operations/health/preventive_screening_info.py +108 -0
  273. xyp-0.1.0a1/src/xyp/operations/health/receive_service_complain_data.py +89 -0
  274. xyp-0.1.0a1/src/xyp/operations/health/receive_tablet_complain.py +119 -0
  275. xyp-0.1.0a1/src/xyp/operations/health/request_prescription_register.py +126 -0
  276. xyp-0.1.0a1/src/xyp/operations/health/search_drug_images_by_barcode.py +85 -0
  277. xyp-0.1.0a1/src/xyp/operations/health/search_for_drug_instructions_by_barcode.py +87 -0
  278. xyp-0.1.0a1/src/xyp/operations/health/service_for_donor_card_check.py +90 -0
  279. xyp-0.1.0a1/src/xyp/operations/health/service_for_sending_health_insurance.py +179 -0
  280. xyp-0.1.0a1/src/xyp/operations/health/white_book_detail_info.py +121 -0
  281. xyp-0.1.0a1/src/xyp/operations/insurance/__init__.py +4 -0
  282. xyp-0.1.0a1/src/xyp/operations/insurance/check_child_money.py +72 -0
  283. xyp-0.1.0a1/src/xyp/operations/insurance/check_house_hold_child.py +72 -0
  284. xyp-0.1.0a1/src/xyp/operations/insurance/check_house_hold_food.py +72 -0
  285. xyp-0.1.0a1/src/xyp/operations/insurance/check_insured_eng_info.py +83 -0
  286. xyp-0.1.0a1/src/xyp/operations/insurance/check_is_insured_info.py +72 -0
  287. xyp-0.1.0a1/src/xyp/operations/insurance/check_mother_time_all_info.py +75 -0
  288. xyp-0.1.0a1/src/xyp/operations/insurance/citizen_insurance_info_for_statistic.py +115 -0
  289. xyp-0.1.0a1/src/xyp/operations/insurance/citizen_loss_of_ability_to_work_info.py +80 -0
  290. xyp-0.1.0a1/src/xyp/operations/insurance/disability_benefits_apply.py +115 -0
  291. xyp-0.1.0a1/src/xyp/operations/insurance/disability_medical_cert_edit.py +229 -0
  292. xyp-0.1.0a1/src/xyp/operations/insurance/disability_medical_cert_info.py +224 -0
  293. xyp-0.1.0a1/src/xyp/operations/insurance/disability_medical_cert_invalid.py +72 -0
  294. xyp-0.1.0a1/src/xyp/operations/insurance/disability_pension_document_eng_info.py +175 -0
  295. xyp-0.1.0a1/src/xyp/operations/insurance/disability_pension_document_info.py +163 -0
  296. xyp-0.1.0a1/src/xyp/operations/insurance/disabled_human_english_info.py +120 -0
  297. xyp-0.1.0a1/src/xyp/operations/insurance/disabled_human_info.py +120 -0
  298. xyp-0.1.0a1/src/xyp/operations/insurance/enterprises_org_contribution_info.py +178 -0
  299. xyp-0.1.0a1/src/xyp/operations/insurance/funeral_allowance_info.py +74 -0
  300. xyp-0.1.0a1/src/xyp/operations/insurance/get_bank_account.py +81 -0
  301. xyp-0.1.0a1/src/xyp/operations/insurance/get_camp_voucher_of_elder_info.py +88 -0
  302. xyp-0.1.0a1/src/xyp/operations/insurance/get_check_mother_time_info.py +84 -0
  303. xyp-0.1.0a1/src/xyp/operations/insurance/get_citizen_pension_inquiry.py +94 -0
  304. xyp-0.1.0a1/src/xyp/operations/insurance/get_citizen_salary_info.py +106 -0
  305. xyp-0.1.0a1/src/xyp/operations/insurance/get_citizen_salary_info_eng.py +104 -0
  306. xyp-0.1.0a1/src/xyp/operations/insurance/get_disabled_person_supply_info.py +86 -0
  307. xyp-0.1.0a1/src/xyp/operations/insurance/get_health_insurance_fee.py +98 -0
  308. xyp-0.1.0a1/src/xyp/operations/insurance/get_insurance_products.py +65 -0
  309. xyp-0.1.0a1/src/xyp/operations/insurance/get_insured_for_last_three_month_info.py +79 -0
  310. xyp-0.1.0a1/src/xyp/operations/insurance/get_insured_for_last_three_month_occupation_info.py +90 -0
  311. xyp-0.1.0a1/src/xyp/operations/insurance/get_insuree_work_history_info.py +80 -0
  312. xyp-0.1.0a1/src/xyp/operations/insurance/get_invoice_by_number.py +93 -0
  313. xyp-0.1.0a1/src/xyp/operations/insurance/get_org_ben_num_by36_month.py +100 -0
  314. xyp-0.1.0a1/src/xyp/operations/insurance/get_organization_dept_info.py +78 -0
  315. xyp-0.1.0a1/src/xyp/operations/insurance/get_payment_info.py +106 -0
  316. xyp-0.1.0a1/src/xyp/operations/insurance/get_pension_info.py +163 -0
  317. xyp-0.1.0a1/src/xyp/operations/insurance/get_total_work_month.py +74 -0
  318. xyp-0.1.0a1/src/xyp/operations/insurance/health_insurance_info.py +103 -0
  319. xyp-0.1.0a1/src/xyp/operations/insurance/insurance_info_by_org_service.py +90 -0
  320. xyp-0.1.0a1/src/xyp/operations/insurance/insurance_org_contribution_info.py +200 -0
  321. xyp-0.1.0a1/src/xyp/operations/insurance/insured_list_last3_month_by_date.py +87 -0
  322. xyp-0.1.0a1/src/xyp/operations/insurance/investment_application_service.py +103 -0
  323. xyp-0.1.0a1/src/xyp/operations/insurance/investment_bank_service.py +94 -0
  324. xyp-0.1.0a1/src/xyp/operations/insurance/list_of_investment_requests.py +98 -0
  325. xyp-0.1.0a1/src/xyp/operations/insurance/lost_caregiver_pension_document_eng_info.py +175 -0
  326. xyp-0.1.0a1/src/xyp/operations/insurance/lost_caregiver_pension_document_info.py +163 -0
  327. xyp-0.1.0a1/src/xyp/operations/insurance/medical_cert_check.py +85 -0
  328. xyp-0.1.0a1/src/xyp/operations/insurance/org_debt_with_transac_info.py +90 -0
  329. xyp-0.1.0a1/src/xyp/operations/insurance/org_has_debt.py +72 -0
  330. xyp-0.1.0a1/src/xyp/operations/insurance/org_info_for_statistic.py +128 -0
  331. xyp-0.1.0a1/src/xyp/operations/insurance/pension_document_eng_info.py +175 -0
  332. xyp-0.1.0a1/src/xyp/operations/insurance/pension_document_info.py +163 -0
  333. xyp-0.1.0a1/src/xyp/operations/insurance/pension_five_years_average_change.py +89 -0
  334. xyp-0.1.0a1/src/xyp/operations/insurance/pension_five_years_average_check_status.py +98 -0
  335. xyp-0.1.0a1/src/xyp/operations/insurance/pregnancy_childbirth_cert_invalid.py +72 -0
  336. xyp-0.1.0a1/src/xyp/operations/insurance/pregnancy_childbirth_cert_list.py +193 -0
  337. xyp-0.1.0a1/src/xyp/operations/insurance/pregnancy_childbirth_edit.py +223 -0
  338. xyp-0.1.0a1/src/xyp/operations/insurance/pregnancy_childbirth_info.py +218 -0
  339. xyp-0.1.0a1/src/xyp/operations/insurance/refund_half_account_list.py +89 -0
  340. xyp-0.1.0a1/src/xyp/operations/insurance/refund_half_bank_list.py +76 -0
  341. xyp-0.1.0a1/src/xyp/operations/insurance/refund_half_create_account.py +90 -0
  342. xyp-0.1.0a1/src/xyp/operations/insurance/refund_half_update_account.py +90 -0
  343. xyp-0.1.0a1/src/xyp/operations/insurance/retirement_list_info.py +88 -0
  344. xyp-0.1.0a1/src/xyp/operations/insurance/send_investment_request.py +102 -0
  345. xyp-0.1.0a1/src/xyp/operations/insurance/set_invoice_payment.py +90 -0
  346. xyp-0.1.0a1/src/xyp/operations/insurance/social_insurance_info.py +106 -0
  347. xyp-0.1.0a1/src/xyp/operations/insurance/unemployment_benefits_apply.py +169 -0
  348. xyp-0.1.0a1/src/xyp/operations/insurance/unemployment_benefits_count.py +79 -0
  349. xyp-0.1.0a1/src/xyp/operations/labor_welfare/__init__.py +4 -0
  350. xyp-0.1.0a1/src/xyp/operations/labor_welfare/below_standard_level_citizen.py +91 -0
  351. xyp-0.1.0a1/src/xyp/operations/labor_welfare/check_letter.py +89 -0
  352. xyp-0.1.0a1/src/xyp/operations/labor_welfare/citizen_info_disability_certified.py +88 -0
  353. xyp-0.1.0a1/src/xyp/operations/labor_welfare/civilized_confirmed_services.py +93 -0
  354. xyp-0.1.0a1/src/xyp/operations/labor_welfare/get_child_notification.py +76 -0
  355. xyp-0.1.0a1/src/xyp/operations/labor_welfare/get_child_request_info.py +96 -0
  356. xyp-0.1.0a1/src/xyp/operations/labor_welfare/get_citizen_labor_info.py +196 -0
  357. xyp-0.1.0a1/src/xyp/operations/labor_welfare/get_foster_parent_service_info.py +95 -0
  358. xyp-0.1.0a1/src/xyp/operations/labor_welfare/get_household_info_by_regnum.py +108 -0
  359. xyp-0.1.0a1/src/xyp/operations/labor_welfare/get_service_document_list.py +95 -0
  360. xyp-0.1.0a1/src/xyp/operations/labor_welfare/get_total_transaction_monthly.py +101 -0
  361. xyp-0.1.0a1/src/xyp/operations/labor_welfare/household_score_calculate_request.py +78 -0
  362. xyp-0.1.0a1/src/xyp/operations/labor_welfare/household_score_check.py +132 -0
  363. xyp-0.1.0a1/src/xyp/operations/labor_welfare/household_score_check_info.py +109 -0
  364. xyp-0.1.0a1/src/xyp/operations/labor_welfare/household_score_info.py +173 -0
  365. xyp-0.1.0a1/src/xyp/operations/labor_welfare/job_seeker_info.py +78 -0
  366. xyp-0.1.0a1/src/xyp/operations/labor_welfare/pension_info.py +86 -0
  367. xyp-0.1.0a1/src/xyp/operations/labor_welfare/set_child_request.py +91 -0
  368. xyp-0.1.0a1/src/xyp/operations/labor_welfare/set_user_service.py +85 -0
  369. xyp-0.1.0a1/src/xyp/operations/legal_entity/__init__.py +4 -0
  370. xyp-0.1.0a1/src/xyp/operations/legal_entity/check_legal_entity_name_info.py +80 -0
  371. xyp-0.1.0a1/src/xyp/operations/legal_entity/citizen_legal_entity_info_list.py +86 -0
  372. xyp-0.1.0a1/src/xyp/operations/legal_entity/citizen_legal_entity_list.py +83 -0
  373. xyp-0.1.0a1/src/xyp/operations/legal_entity/copy_of_the_legal_entity_cert.py +80 -0
  374. xyp-0.1.0a1/src/xyp/operations/legal_entity/copy_of_the_legal_entity_rules.py +80 -0
  375. xyp-0.1.0a1/src/xyp/operations/legal_entity/energy_license_certificate_info.py +97 -0
  376. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_customs_offns_info.py +120 -0
  377. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_ebalance_info.py +89 -0
  378. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_legal_entity_info.py +139 -0
  379. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_legal_entity_info_with_regnum.py +466 -0
  380. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_non_legal_entity_info.py +74 -0
  381. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_trade_service_license_citizen.py +96 -0
  382. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_trade_service_license_org.py +102 -0
  383. xyp-0.1.0a1/src/xyp/operations/legal_entity/get_valid_special_permission.py +117 -0
  384. xyp-0.1.0a1/src/xyp/operations/legal_entity/legal_entity_general_info.py +140 -0
  385. xyp-0.1.0a1/src/xyp/operations/legal_entity/legal_entity_non_payment_info.py +106 -0
  386. xyp-0.1.0a1/src/xyp/operations/legal_entity/legal_entity_open_data.py +88 -0
  387. xyp-0.1.0a1/src/xyp/operations/legal_entity/liquidation_info_service.py +102 -0
  388. xyp-0.1.0a1/src/xyp/operations/legal_entity/valid_contracts_by_regnum.py +99 -0
  389. xyp-0.1.0a1/src/xyp/operations/meta/__init__.py +4 -0
  390. xyp-0.1.0a1/src/xyp/operations/meta/auth_service_check_by_citizen.py +90 -0
  391. xyp-0.1.0a1/src/xyp/operations/meta/auth_service_check_by_otp.py +78 -0
  392. xyp-0.1.0a1/src/xyp/operations/meta/check_access.py +98 -0
  393. xyp-0.1.0a1/src/xyp/operations/meta/check_otp.py +78 -0
  394. xyp-0.1.0a1/src/xyp/operations/meta/list_access.py +80 -0
  395. xyp-0.1.0a1/src/xyp/operations/meta/register_otp_request.py +109 -0
  396. xyp-0.1.0a1/src/xyp/operations/payment/__init__.py +4 -0
  397. xyp-0.1.0a1/src/xyp/operations/payment/check_transaction_info.py +114 -0
  398. xyp-0.1.0a1/src/xyp/operations/payment/citizen_bs_loan_info.py +102 -0
  399. xyp-0.1.0a1/src/xyp/operations/payment/citizen_create_invoice.py +118 -0
  400. xyp-0.1.0a1/src/xyp/operations/payment/citizen_fico_info.py +127 -0
  401. xyp-0.1.0a1/src/xyp/operations/payment/citizen_loan_info.py +74 -0
  402. xyp-0.1.0a1/src/xyp/operations/payment/citizen_loan_info_titan.py +167 -0
  403. xyp-0.1.0a1/src/xyp/operations/payment/court_decision_return.py +120 -0
  404. xyp-0.1.0a1/src/xyp/operations/payment/credit_score_nd_salary_income.py +80 -0
  405. xyp-0.1.0a1/src/xyp/operations/payment/exchange_rate.py +83 -0
  406. xyp-0.1.0a1/src/xyp/operations/payment/get_all_authority_info.py +121 -0
  407. xyp-0.1.0a1/src/xyp/operations/payment/get_list_of_ett_dividend_info.py +74 -0
  408. xyp-0.1.0a1/src/xyp/operations/payment/invoice_number_uth_payment_service.py +141 -0
  409. xyp-0.1.0a1/src/xyp/operations/payment/invoice_payment_info_service.py +87 -0
  410. xyp-0.1.0a1/src/xyp/operations/payment/invoice_payment_inquiry_servicer.py +121 -0
  411. xyp-0.1.0a1/src/xyp/operations/payment/invoice_status_service.py +84 -0
  412. xyp-0.1.0a1/src/xyp/operations/payment/legal_entity_bs_loan_info.py +117 -0
  413. xyp-0.1.0a1/src/xyp/operations/payment/orgenzation_loan_info_titan.py +116 -0
  414. xyp-0.1.0a1/src/xyp/operations/payment/overdue_citizen_loan_debt_reference.py +87 -0
  415. xyp-0.1.0a1/src/xyp/operations/payment/overdue_organization_loan_debt_reference.py +87 -0
  416. xyp-0.1.0a1/src/xyp/operations/payment/paid_fine_by_register_service.py +137 -0
  417. xyp-0.1.0a1/src/xyp/operations/payment/paid_fine_service.py +137 -0
  418. xyp-0.1.0a1/src/xyp/operations/payment/payment_info_by_register_service.py +161 -0
  419. xyp-0.1.0a1/src/xyp/operations/payment/payment_order_invoice_generator.py +154 -0
  420. xyp-0.1.0a1/src/xyp/operations/payment/payment_received.py +145 -0
  421. xyp-0.1.0a1/src/xyp/operations/payment/payment_verification_service.py +74 -0
  422. xyp-0.1.0a1/src/xyp/operations/payment/person_loan_info_titan.py +120 -0
  423. xyp-0.1.0a1/src/xyp/operations/payment/qr_code_generation_for_payment_orders_service.py +83 -0
  424. xyp-0.1.0a1/src/xyp/operations/payment/tax_payer_info.py +87 -0
  425. xyp-0.1.0a1/src/xyp/operations/payment/tax_receipt_bank_by_regnum.py +138 -0
  426. xyp-0.1.0a1/src/xyp/operations/payment/unpaid_fine_by_register_service.py +137 -0
  427. xyp-0.1.0a1/src/xyp/operations/payment/unpaid_fine_service.py +137 -0
  428. xyp-0.1.0a1/src/xyp/operations/payment/violation_payment_by_plate_number.py +291 -0
  429. xyp-0.1.0a1/src/xyp/operations/payment/violation_payment_by_regnum.py +289 -0
  430. xyp-0.1.0a1/src/xyp/operations/pki/__init__.py +4 -0
  431. xyp-0.1.0a1/src/xyp/operations/pki/certificate_info.py +87 -0
  432. xyp-0.1.0a1/src/xyp/operations/private_service/__init__.py +4 -0
  433. xyp-0.1.0a1/src/xyp/operations/private_service/check_kindergarten_enrollment.py +115 -0
  434. xyp-0.1.0a1/src/xyp/operations/private_service/children_info_by_parent_civil_id.py +172 -0
  435. xyp-0.1.0a1/src/xyp/operations/private_service/id_card_info_em.py +167 -0
  436. xyp-0.1.0a1/src/xyp/operations/private_service/kindergarten_description.py +88 -0
  437. xyp-0.1.0a1/src/xyp/operations/private_service/result_kindergarten_enrollment.py +98 -0
  438. xyp-0.1.0a1/src/xyp/operations/private_service/send_kindergarten_enrollment.py +293 -0
  439. xyp-0.1.0a1/src/xyp/operations/property/__init__.py +4 -0
  440. xyp-0.1.0a1/src/xyp/operations/property/cadastre_applicant_status_info.py +97 -0
  441. xyp-0.1.0a1/src/xyp/operations/property/electric_requirement_request.py +215 -0
  442. xyp-0.1.0a1/src/xyp/operations/property/electric_requirement_request_details.py +160 -0
  443. xyp-0.1.0a1/src/xyp/operations/property/electric_requirement_request_hold.py +72 -0
  444. xyp-0.1.0a1/src/xyp/operations/property/electric_requirement_request_list.py +125 -0
  445. xyp-0.1.0a1/src/xyp/operations/property/electric_requirement_request_remove.py +72 -0
  446. xyp-0.1.0a1/src/xyp/operations/property/get_bank_property_inquiry.py +110 -0
  447. xyp-0.1.0a1/src/xyp/operations/property/get_cadastral_map.py +72 -0
  448. xyp-0.1.0a1/src/xyp/operations/property/get_property_info.py +118 -0
  449. xyp-0.1.0a1/src/xyp/operations/property/get_property_info_by_national_property_number_eng.py +82 -0
  450. xyp-0.1.0a1/src/xyp/operations/property/get_property_info_certificate.py +80 -0
  451. xyp-0.1.0a1/src/xyp/operations/property/get_property_info_eng.py +92 -0
  452. xyp-0.1.0a1/src/xyp/operations/property/get_property_list.py +95 -0
  453. xyp-0.1.0a1/src/xyp/operations/property/get_property_type_list.py +147 -0
  454. xyp-0.1.0a1/src/xyp/operations/property/has_bank_property_inquiry.py +109 -0
  455. xyp-0.1.0a1/src/xyp/operations/property/is_property_check.py +73 -0
  456. xyp-0.1.0a1/src/xyp/operations/property/land_cadastral_map_info.py +110 -0
  457. xyp-0.1.0a1/src/xyp/operations/property/land_cadastre_agreement_info.py +111 -0
  458. xyp-0.1.0a1/src/xyp/operations/property/land_cadastre_applicant_info.py +103 -0
  459. xyp-0.1.0a1/src/xyp/operations/property/land_cadastre_qr.py +72 -0
  460. xyp-0.1.0a1/src/xyp/operations/property/land_cadastre_vicinity_info.py +111 -0
  461. xyp-0.1.0a1/src/xyp/operations/property/land_info_by_person_id_and_parcel_id.py +190 -0
  462. xyp-0.1.0a1/src/xyp/operations/property/land_owning_certificate_info.py +117 -0
  463. xyp-0.1.0a1/src/xyp/operations/property/land_owning_contract_info.py +147 -0
  464. xyp-0.1.0a1/src/xyp/operations/property/land_owning_decision_info.py +101 -0
  465. xyp-0.1.0a1/src/xyp/operations/property/land_settlement_act.py +148 -0
  466. xyp-0.1.0a1/src/xyp/operations/property/property_details_between_date.py +128 -0
  467. xyp-0.1.0a1/src/xyp/operations/property/property_info_eng.py +114 -0
  468. xyp-0.1.0a1/src/xyp/operations/property/property_value_info.py +75 -0
  469. xyp-0.1.0a1/src/xyp/operations/property/umns_property_info.py +90 -0
  470. xyp-0.1.0a1/src/xyp/operations/statistic/__init__.py +4 -0
  471. xyp-0.1.0a1/src/xyp/operations/statistic/additional_survey_service.py +124 -0
  472. xyp-0.1.0a1/src/xyp/operations/statistic/change_name_info.py +93 -0
  473. xyp-0.1.0a1/src/xyp/operations/statistic/change_register_info.py +86 -0
  474. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_address_info.py +99 -0
  475. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_and_legal_entity_livestock_info.py +93 -0
  476. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_and_legal_entity_livestock_info_ws200135.py +105 -0
  477. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_feedback_verify.py +88 -0
  478. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_info.py +81 -0
  479. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_livestock_info.py +102 -0
  480. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_livestock_list.py +175 -0
  481. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_pasture_info.py +187 -0
  482. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_statistic_info.py +103 -0
  483. xyp-0.1.0a1/src/xyp/operations/statistic/citizen_suggestion_info.py +295 -0
  484. xyp-0.1.0a1/src/xyp/operations/statistic/delete_additional_survey_service.py +76 -0
  485. xyp-0.1.0a1/src/xyp/operations/statistic/delete_livestock_tax_survey_service.py +76 -0
  486. xyp-0.1.0a1/src/xyp/operations/statistic/get_household_info.py +175 -0
  487. xyp-0.1.0a1/src/xyp/operations/statistic/get_imei_lost_device_list.py +96 -0
  488. xyp-0.1.0a1/src/xyp/operations/statistic/get_livestock_tax_type.py +81 -0
  489. xyp-0.1.0a1/src/xyp/operations/statistic/ldfunded_survey_service.py +94 -0
  490. xyp-0.1.0a1/src/xyp/operations/statistic/legal_entity_livestock_info.py +93 -0
  491. xyp-0.1.0a1/src/xyp/operations/statistic/legal_entity_livestock_list.py +82 -0
  492. xyp-0.1.0a1/src/xyp/operations/statistic/livestock_tax_survey_service.py +106 -0
  493. xyp-0.1.0a1/src/xyp/operations/statistic/umns_household_info.py +106 -0
  494. xyp-0.1.0a1/src/xyp/operations/statistic/umns_livestock_info.py +77 -0
  495. xyp-0.1.0a1/src/xyp/operations/tax/__init__.py +4 -0
  496. xyp-0.1.0a1/src/xyp/operations/tax/citizen_tax_report_info.py +147 -0
  497. xyp-0.1.0a1/src/xyp/operations/tax/get_individual_info.py +116 -0
  498. xyp-0.1.0a1/src/xyp/operations/tax/get_organization_info.py +119 -0
  499. xyp-0.1.0a1/src/xyp/operations/tax/get_vehicle_paid_tax_history.py +110 -0
  500. xyp-0.1.0a1/src/xyp/operations/tax/licensing_info.py +154 -0
  501. xyp-0.1.0a1/src/xyp/operations/tax/tax_payment_service.py +108 -0
  502. xyp-0.1.0a1/src/xyp/operations/tax/tax_payment_verification_service.py +80 -0
  503. xyp-0.1.0a1/src/xyp/operations/tax/trade_info.py +151 -0
  504. xyp-0.1.0a1/src/xyp/operations/tax/unpaid_tax_information_service.py +135 -0
  505. xyp-0.1.0a1/src/xyp/operations/transport/__init__.py +4 -0
  506. xyp-0.1.0a1/src/xyp/operations/transport/border_registered_passengers.py +181 -0
  507. xyp-0.1.0a1/src/xyp/operations/transport/border_registered_transport.py +150 -0
  508. xyp-0.1.0a1/src/xyp/operations/transport/check_border_permit_vehicle.py +113 -0
  509. xyp-0.1.0a1/src/xyp/operations/transport/check_ecl_icense_from_kiosk.py +87 -0
  510. xyp-0.1.0a1/src/xyp/operations/transport/driver_license_ordered_log.py +71 -0
  511. xyp-0.1.0a1/src/xyp/operations/transport/ec_license_cancel.py +78 -0
  512. xyp-0.1.0a1/src/xyp/operations/transport/ec_license_checker.py +82 -0
  513. xyp-0.1.0a1/src/xyp/operations/transport/ec_license_creator.py +111 -0
  514. xyp-0.1.0a1/src/xyp/operations/transport/freight_transport_train_document_detail.py +108 -0
  515. xyp-0.1.0a1/src/xyp/operations/transport/freight_transport_train_document_list.py +92 -0
  516. xyp-0.1.0a1/src/xyp/operations/transport/get_citizen_vehicle_list.py +168 -0
  517. xyp-0.1.0a1/src/xyp/operations/transport/get_driver_info_with_register_and_license.py +125 -0
  518. xyp-0.1.0a1/src/xyp/operations/transport/get_driver_license_info.py +176 -0
  519. xyp-0.1.0a1/src/xyp/operations/transport/get_fine_info_using_fine_number.py +97 -0
  520. xyp-0.1.0a1/src/xyp/operations/transport/get_international_driver_info.py +106 -0
  521. xyp-0.1.0a1/src/xyp/operations/transport/get_organization_vehicle_list.py +171 -0
  522. xyp-0.1.0a1/src/xyp/operations/transport/get_pre_owned_org_vehicle_total.py +74 -0
  523. xyp-0.1.0a1/src/xyp/operations/transport/get_pre_owned_vehicle.py +107 -0
  524. xyp-0.1.0a1/src/xyp/operations/transport/get_pre_owned_vehicle_with_org_regnum.py +105 -0
  525. xyp-0.1.0a1/src/xyp/operations/transport/get_reserved_number_list.py +88 -0
  526. xyp-0.1.0a1/src/xyp/operations/transport/get_saved_number_list.py +88 -0
  527. xyp-0.1.0a1/src/xyp/operations/transport/get_vehicle_info.py +169 -0
  528. xyp-0.1.0a1/src/xyp/operations/transport/get_vehicle_inspection_data_by_plate_no.py +89 -0
  529. xyp-0.1.0a1/src/xyp/operations/transport/get_vehicle_inspection_info.py +82 -0
  530. xyp-0.1.0a1/src/xyp/operations/transport/get_vehicle_owner_history_list.py +109 -0
  531. xyp-0.1.0a1/src/xyp/operations/transport/get_vehicle_penalty_list.py +96 -0
  532. xyp-0.1.0a1/src/xyp/operations/transport/order_driver_license.py +192 -0
  533. xyp-0.1.0a1/src/xyp/operations/transport/pensioner_transport_service.py +100 -0
  534. xyp-0.1.0a1/src/xyp/operations/transport/plate_border_info.py +124 -0
  535. xyp-0.1.0a1/src/xyp/operations/transport/police_ec_license_checker.py +82 -0
  536. xyp-0.1.0a1/src/xyp/operations/transport/product_list.py +81 -0
  537. xyp-0.1.0a1/src/xyp/operations/transport/sas_company_info_list.py +70 -0
  538. xyp-0.1.0a1/src/xyp/operations/transport/special_driver_info.py +118 -0
  539. xyp-0.1.0a1/src/xyp/operations/transport/toll_invoice_details.py +99 -0
  540. xyp-0.1.0a1/src/xyp/operations/transport/train_border_info.py +126 -0
  541. xyp-0.1.0a1/src/xyp/operations/transport/transport_company_create_worker.py +253 -0
  542. xyp-0.1.0a1/src/xyp/operations/transport/transport_company_employee_list.py +88 -0
  543. xyp-0.1.0a1/src/xyp/operations/transport/transport_company_list.py +110 -0
  544. xyp-0.1.0a1/src/xyp/operations/transport/transport_company_route_list.py +94 -0
  545. xyp-0.1.0a1/src/xyp/operations/transport/transport_company_vehicles_list.py +97 -0
  546. xyp-0.1.0a1/src/xyp/operations/transport/umns_vehicle_info.py +92 -0
  547. xyp-0.1.0a1/src/xyp/operations/transport/unlicensed_vehicles_list.py +240 -0
  548. xyp-0.1.0a1/src/xyp/operations/transport/vehicle_and_driver_border_report.py +80 -0
  549. xyp-0.1.0a1/src/xyp/operations/transport/vehicle_border_info.py +128 -0
  550. xyp-0.1.0a1/src/xyp/operations/transport/vehicle_certificate.py +174 -0
  551. xyp-0.1.0a1/src/xyp/operations/transport/vehicle_legal_entity_info.py +227 -0
  552. xyp-0.1.0a1/src/xyp/operations/transport/vehicle_legal_entity_total.py +74 -0
  553. xyp-0.1.0a1/src/xyp/operations/transport/vehicle_tax_info_service.py +107 -0
  554. xyp-0.1.0a1/src/xyp/py.typed +0 -0
  555. xyp-0.1.0a1/src/xyp/services/__init__.py +4 -0
  556. xyp-0.1.0a1/src/xyp/services/citizen.py +516 -0
  557. xyp-0.1.0a1/src/xyp/services/education.py +147 -0
  558. xyp-0.1.0a1/src/xyp/services/foreign_service.py +57 -0
  559. xyp-0.1.0a1/src/xyp/services/government_service.py +349 -0
  560. xyp-0.1.0a1/src/xyp/services/health.py +479 -0
  561. xyp-0.1.0a1/src/xyp/services/insurance.py +424 -0
  562. xyp-0.1.0a1/src/xyp/services/labor_welfare.py +126 -0
  563. xyp-0.1.0a1/src/xyp/services/legal_entity.py +136 -0
  564. xyp-0.1.0a1/src/xyp/services/meta.py +51 -0
  565. xyp-0.1.0a1/src/xyp/services/payment.py +224 -0
  566. xyp-0.1.0a1/src/xyp/services/pki.py +24 -0
  567. xyp-0.1.0a1/src/xyp/services/private_service.py +57 -0
  568. xyp-0.1.0a1/src/xyp/services/property.py +195 -0
  569. xyp-0.1.0a1/src/xyp/services/statistic.py +151 -0
  570. xyp-0.1.0a1/src/xyp/services/tax.py +70 -0
  571. xyp-0.1.0a1/src/xyp/services/transport.py +309 -0
  572. xyp-0.1.0a1/tests/conftest.py +45 -0
  573. xyp-0.1.0a1/tests/test_client.py +190 -0
  574. xyp-0.1.0a1/tests/test_generated.py +70 -0
  575. xyp-0.1.0a1/tests/test_models.py +124 -0
  576. xyp-0.1.0a1/tests/test_signer.py +92 -0
  577. xyp-0.1.0a1/tests/test_soap.py +133 -0
  578. xyp-0.1.0a1/tests/test_zeep_parity.py +215 -0
  579. xyp-0.1.0a1/uv.lock +1091 -0
xyp-0.1.0a1/.gitignore ADDED
@@ -0,0 +1,22 @@
1
+ # Python
2
+ __pycache__/
3
+ *.py[cod]
4
+ .venv/
5
+ dist/
6
+ build/
7
+ *.egg-info/
8
+ .pytest_cache/
9
+ .ruff_cache/
10
+ .pyright/
11
+
12
+ # Node
13
+ node_modules/
14
+
15
+ # Credentials must never be committed
16
+ *.key
17
+ *.pem
18
+ !packages/python/src/xyp/certs/*.pem
19
+ .env
20
+ .env.*
21
+
22
+ .DS_Store
xyp-0.1.0a1/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 baljinnyamday
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.
xyp-0.1.0a1/PKG-INFO ADDED
@@ -0,0 +1,245 @@
1
+ Metadata-Version: 2.5
2
+ Name: xyp
3
+ Version: 0.1.0a1
4
+ Summary: Typed Python SDK for XYP (ХУР), Mongolia's government data exchange system
5
+ Project-URL: Homepage, https://github.com/baljinnyamday/xyp-sdk
6
+ Project-URL: Documentation, https://github.com/baljinnyamday/xyp-sdk/tree/main/packages/python#readme
7
+ Project-URL: Issues, https://github.com/baljinnyamday/xyp-sdk/issues
8
+ Project-URL: Source, https://github.com/baljinnyamday/xyp-sdk/tree/main/packages/python
9
+ Author: baljinnyamday
10
+ License-Expression: MIT
11
+ License-File: LICENSE
12
+ Keywords: e-mongolia,khur,mongolia,sdk,soap,xyp
13
+ Classifier: Development Status :: 3 - Alpha
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Typing :: Typed
17
+ Requires-Python: >=3.10
18
+ Requires-Dist: cryptography>=42
19
+ Requires-Dist: defusedxml>=0.7.1
20
+ Requires-Dist: httpx>=0.27
21
+ Requires-Dist: pydantic>=2.6
22
+ Requires-Dist: typing-extensions>=4.6
23
+ Description-Content-Type: text/markdown
24
+
25
+ # xyp
26
+
27
+ Typed Python SDK for **XYP (ХУР)**, Mongolia's government data exchange system.
28
+ All 499 services, sync and async, fully type-hinted.
29
+
30
+ ```bash
31
+ pip install --pre xyp # pre-release until it has been confirmed against production
32
+ ```
33
+
34
+ ```python
35
+ from xyp import Xyp
36
+
37
+ xyp = Xyp(access_token="...", private_key="private.key")
38
+
39
+ card = xyp.citizen.get_citizen_id_card_info(regnum="РД00000000")
40
+ print(card.firstname, card.lastname)
41
+ ```
42
+
43
+ That is the whole integration. The SDK signs every request, builds the SOAP
44
+ envelope, verifies XYP's certificate and turns the XML into typed objects.
45
+
46
+ > **Status: alpha.** The production system is only reachable from the National
47
+ > Data Center VPN, so the SDK is verified differentially instead: for every
48
+ > operation in the WSDLs we hold, the test suite checks that the XML this SDK
49
+ > sends is identical to what [zeep](https://docs.python-zeep.org) — the SOAP
50
+ > library behind the official samples and known-working integrations — builds
51
+ > from the WSDL, that responses are decoded to the same values, and that the
52
+ > request signature is byte-identical to the official `XypSign.py`. Endpoints
53
+ > whose WSDL is not public are covered by the same code paths but not by that
54
+ > comparison. Please open an issue with anything that differs in practice.
55
+
56
+ ## Requirements
57
+
58
+ - Python 3.10+
59
+ - An access token and RSA key issued by the National Data Center, and a working
60
+ connection to their VPN with `xyp.gov.mn` in your hosts file
61
+ ([connection guide](https://developer.xyp.gov.mn/docs/guide)). The SDK cannot
62
+ replace that step.
63
+
64
+ ## Credentials
65
+
66
+ ```python
67
+ Xyp(access_token="...", private_key="private.key") # file path
68
+ Xyp(access_token="...", private_key=pem_text_or_bytes) # from your secret manager
69
+ Xyp() # XYP_ACCESS_TOKEN + XYP_PRIVATE_KEY (path)
70
+ ```
71
+
72
+ Keep the token and key out of your source code; environment variables or a
73
+ secret manager are the intended way. Neither ever appears in `repr()`, logs or
74
+ exception messages.
75
+
76
+ ## Finding a service
77
+
78
+ Services are grouped by XYP endpoint, and named after the original operation in
79
+ snake_case. Your editor autocompletes all of them:
80
+
81
+ | Group | Services | | Group | Services |
82
+ | --- | --- | --- | --- | --- |
83
+ | `xyp.citizen` | 83 | | `xyp.property` | 30 |
84
+ | `xyp.health` | 76 | | `xyp.statistic` | 24 |
85
+ | `xyp.insurance` | 67 | | `xyp.labor_welfare` | 19 |
86
+ | `xyp.government_service` | 54 | | `xyp.legal_entity` | 19 |
87
+ | `xyp.transport` | 48 | | `xyp.education` | 18 |
88
+ | `xyp.payment` | 33 | | `xyp.tax`, `xyp.meta`, `xyp.foreign_service`, `xyp.private_service`, `xyp.pki` | 28 |
89
+
90
+ `WS100101_getCitizenIDCardInfo` becomes `xyp.citizen.get_citizen_id_card_info`.
91
+ Every method's docstring starts with the original name, so searching the
92
+ package for `WS100101` finds it. Inputs are keyword arguments; the result is a
93
+ [Pydantic](https://docs.pydantic.dev) model (`.model_dump()`, `.model_dump_json()`).
94
+ Need the type for an annotation? `from xyp.models.citizen import GetCitizenIdCardInfoResponse`.
95
+
96
+ Prefer the original names? Call any service by name and get the raw data:
97
+
98
+ ```python
99
+ xyp.call("WS100101_getCitizenIDCardInfo", {"regnum": "РД00000000"}) # -> dict
100
+ ```
101
+
102
+ This also works for services XYP adds before the SDK is updated — pass
103
+ `endpoint="citizen-1.5.0"` for those.
104
+
105
+ ## Async
106
+
107
+ ```python
108
+ from xyp import AsyncXyp
109
+
110
+ async with AsyncXyp(access_token="...", private_key="private.key") as xyp:
111
+ card = await xyp.citizen.get_citizen_id_card_info(regnum="РД00000000")
112
+ ```
113
+
114
+ Same options, same services. Create one client and reuse it — it keeps a
115
+ connection pool. Use it as a context manager or call `close()`.
116
+
117
+ ## Citizen approval (OTP, fingerprint, digital signature, ДАН)
118
+
119
+ Many services only answer when the citizen has approved the request:
120
+
121
+ ```python
122
+ from xyp import CitizenAuth
123
+
124
+ # 1. ask XYP to text the citizen a code for the services you are going to call
125
+ xyp.meta.register_otp_request(
126
+ regnum=regnum,
127
+ json_ws_list='[{"ws": "WS100101_getCitizenIDCardInfo"}]',
128
+ is_sms=1,
129
+ auth=CitizenAuth(regnum=regnum),
130
+ )
131
+
132
+ # 2. call the service with the code they read out to you
133
+ card = xyp.citizen.get_citizen_id_card_info(
134
+ regnum=regnum,
135
+ auth=CitizenAuth.with_otp(regnum=regnum, otp=123456),
136
+ )
137
+ ```
138
+
139
+ Also available: `CitizenAuth.with_sso_otp`, `.with_signature`,
140
+ `.with_fingerprint`, `.with_dan_app`, and `OperatorAuth` with the same
141
+ constructors for services that need the operator too (`operator=`).
142
+
143
+ ## Errors
144
+
145
+ ```python
146
+ from xyp import NotFoundError, AccessDeniedError, XypApiError, XypConnectionError
147
+
148
+ try:
149
+ card = xyp.citizen.get_citizen_id_card_info(regnum=regnum)
150
+ except NotFoundError:
151
+ card = None # resultCode 1: provider has no record
152
+ except AccessDeniedError:
153
+ ... # your token may not call this service
154
+ except XypApiError as error:
155
+ log(error.result_code, error.message, error.request_id)
156
+ except XypConnectionError:
157
+ ... # VPN down, hosts entry missing, TLS, timeout
158
+ ```
159
+
160
+ | Exception | `resultCode` |
161
+ | --- | --- |
162
+ | `NotFoundError` | 1 |
163
+ | `InternalError` | 2 |
164
+ | `InvalidRequestError` | 3 (missing input, bad token / timestamp / signature header) |
165
+ | `AuthRequiredError` | 200–202 |
166
+ | `AccessDeniedError` | 203, 501 |
167
+ | `FingerprintError` | 301–304 |
168
+ | `CitizenDataError` | 401–402 |
169
+ | `SignatureError` | 601–605 |
170
+ | `ProviderError` | 801–802 |
171
+
172
+ All of them are `XypApiError`; everything the SDK raises is an `XypError`.
173
+ `request_id` is what XYP support will ask you for.
174
+
175
+ Every error has an `origin`, so you (and your logs) know whose side it is on:
176
+
177
+ | `error.origin` | Meaning | Exceptions |
178
+ | --- | --- | --- |
179
+ | `"config"` | how the client was set up | `XypConfigError` |
180
+ | `"network"` | VPN, hosts entry, TLS, timeout | `XypConnectionError`, `XypTimeoutError` |
181
+ | `"xyp"` | XYP or the data provider answered with an error | `XypApiError` and subclasses, `XypResponseError` |
182
+ | `"sdk"` | a gap in this SDK — please report it | `XypValidationError` |
183
+
184
+ ### When XYP's data does not match the model
185
+
186
+ The response models are generated from XYP's public catalog, which is typed by
187
+ hand, so real data can disagree with them. That never costs you a call:
188
+
189
+ ```python
190
+ card = xyp.citizen.get_citizen_id_card_info(regnum=regnum) # succeeds
191
+ card.firstname # everything that fits is typed as usual
192
+ card.birth_date # None: this field did not fit
193
+ card.xyp_mismatches # (Mismatch(path="birthDate", problem="..."),) with the raw .value
194
+ ```
195
+
196
+ You also get an `XypModelMismatchWarning` pointing at your line, naming the
197
+ field and saying plainly that the SDK's model is wrong — not XYP, not your
198
+ code. It contains field names only, never values, so citizen data stays out of
199
+ your logs. Silence it with `warnings.simplefilter("ignore", XypModelMismatchWarning)`
200
+ or turn it into an error in your tests. `XypValidationError` is reserved for
201
+ the rare response that cannot be fitted at all; its `.data` still holds the
202
+ parsed response.
203
+
204
+ ## TLS
205
+
206
+ XYP's certificate is issued by the Mongolian national CA, which no operating
207
+ system trusts by default — the reason most integrations (including the official
208
+ samples) switch verification off. This SDK bundles the national root and
209
+ issuing CA instead and verifies against exactly those.
210
+
211
+ ```python
212
+ Xyp(..., verify=True) # default: bundled national CAs
213
+ Xyp(..., verify="/path/to/ca.pem") # your own CA bundle
214
+ Xyp(..., verify=ssl_context) # full control
215
+ Xyp(..., verify=False) # off — read docs/tls.md first
216
+ ```
217
+
218
+ Going through your own HTTPS proxy? Set `base_url="https://proxy.example"` and
219
+ a `verify` that matches the proxy's certificate. Details and the reasoning:
220
+ [docs/tls.md](https://github.com/baljinnyamday/xyp-sdk/blob/main/docs/tls.md).
221
+
222
+ ## Types
223
+
224
+ - Every response field is optional: providers leave fields out freely.
225
+ - Unknown fields are kept (`model.model_extra`) instead of raising.
226
+ - `Date` fields are `datetime` when XYP sends ISO 8601 and the original `str`
227
+ otherwise; formats are not documented, so nothing is rejected.
228
+ - `byte[]` fields (photos, PDFs) arrive as `bytes`.
229
+
230
+ ## Development
231
+
232
+ ```bash
233
+ uv sync
234
+ uv run pytest
235
+ uv run pyright
236
+ uv run ruff check .
237
+ ```
238
+
239
+ `src/xyp/operations` (one module per service), `src/xyp/services`,
240
+ `src/xyp/models`, `_groups.py` and `_operations.py` are generated — change `generator/` or `spec/` and run `uv run xyp-generate` from
241
+ `generator/` instead of editing them.
242
+
243
+ ## License
244
+
245
+ MIT
xyp-0.1.0a1/README.md ADDED
@@ -0,0 +1,221 @@
1
+ # xyp
2
+
3
+ Typed Python SDK for **XYP (ХУР)**, Mongolia's government data exchange system.
4
+ All 499 services, sync and async, fully type-hinted.
5
+
6
+ ```bash
7
+ pip install --pre xyp # pre-release until it has been confirmed against production
8
+ ```
9
+
10
+ ```python
11
+ from xyp import Xyp
12
+
13
+ xyp = Xyp(access_token="...", private_key="private.key")
14
+
15
+ card = xyp.citizen.get_citizen_id_card_info(regnum="РД00000000")
16
+ print(card.firstname, card.lastname)
17
+ ```
18
+
19
+ That is the whole integration. The SDK signs every request, builds the SOAP
20
+ envelope, verifies XYP's certificate and turns the XML into typed objects.
21
+
22
+ > **Status: alpha.** The production system is only reachable from the National
23
+ > Data Center VPN, so the SDK is verified differentially instead: for every
24
+ > operation in the WSDLs we hold, the test suite checks that the XML this SDK
25
+ > sends is identical to what [zeep](https://docs.python-zeep.org) — the SOAP
26
+ > library behind the official samples and known-working integrations — builds
27
+ > from the WSDL, that responses are decoded to the same values, and that the
28
+ > request signature is byte-identical to the official `XypSign.py`. Endpoints
29
+ > whose WSDL is not public are covered by the same code paths but not by that
30
+ > comparison. Please open an issue with anything that differs in practice.
31
+
32
+ ## Requirements
33
+
34
+ - Python 3.10+
35
+ - An access token and RSA key issued by the National Data Center, and a working
36
+ connection to their VPN with `xyp.gov.mn` in your hosts file
37
+ ([connection guide](https://developer.xyp.gov.mn/docs/guide)). The SDK cannot
38
+ replace that step.
39
+
40
+ ## Credentials
41
+
42
+ ```python
43
+ Xyp(access_token="...", private_key="private.key") # file path
44
+ Xyp(access_token="...", private_key=pem_text_or_bytes) # from your secret manager
45
+ Xyp() # XYP_ACCESS_TOKEN + XYP_PRIVATE_KEY (path)
46
+ ```
47
+
48
+ Keep the token and key out of your source code; environment variables or a
49
+ secret manager are the intended way. Neither ever appears in `repr()`, logs or
50
+ exception messages.
51
+
52
+ ## Finding a service
53
+
54
+ Services are grouped by XYP endpoint, and named after the original operation in
55
+ snake_case. Your editor autocompletes all of them:
56
+
57
+ | Group | Services | | Group | Services |
58
+ | --- | --- | --- | --- | --- |
59
+ | `xyp.citizen` | 83 | | `xyp.property` | 30 |
60
+ | `xyp.health` | 76 | | `xyp.statistic` | 24 |
61
+ | `xyp.insurance` | 67 | | `xyp.labor_welfare` | 19 |
62
+ | `xyp.government_service` | 54 | | `xyp.legal_entity` | 19 |
63
+ | `xyp.transport` | 48 | | `xyp.education` | 18 |
64
+ | `xyp.payment` | 33 | | `xyp.tax`, `xyp.meta`, `xyp.foreign_service`, `xyp.private_service`, `xyp.pki` | 28 |
65
+
66
+ `WS100101_getCitizenIDCardInfo` becomes `xyp.citizen.get_citizen_id_card_info`.
67
+ Every method's docstring starts with the original name, so searching the
68
+ package for `WS100101` finds it. Inputs are keyword arguments; the result is a
69
+ [Pydantic](https://docs.pydantic.dev) model (`.model_dump()`, `.model_dump_json()`).
70
+ Need the type for an annotation? `from xyp.models.citizen import GetCitizenIdCardInfoResponse`.
71
+
72
+ Prefer the original names? Call any service by name and get the raw data:
73
+
74
+ ```python
75
+ xyp.call("WS100101_getCitizenIDCardInfo", {"regnum": "РД00000000"}) # -> dict
76
+ ```
77
+
78
+ This also works for services XYP adds before the SDK is updated — pass
79
+ `endpoint="citizen-1.5.0"` for those.
80
+
81
+ ## Async
82
+
83
+ ```python
84
+ from xyp import AsyncXyp
85
+
86
+ async with AsyncXyp(access_token="...", private_key="private.key") as xyp:
87
+ card = await xyp.citizen.get_citizen_id_card_info(regnum="РД00000000")
88
+ ```
89
+
90
+ Same options, same services. Create one client and reuse it — it keeps a
91
+ connection pool. Use it as a context manager or call `close()`.
92
+
93
+ ## Citizen approval (OTP, fingerprint, digital signature, ДАН)
94
+
95
+ Many services only answer when the citizen has approved the request:
96
+
97
+ ```python
98
+ from xyp import CitizenAuth
99
+
100
+ # 1. ask XYP to text the citizen a code for the services you are going to call
101
+ xyp.meta.register_otp_request(
102
+ regnum=regnum,
103
+ json_ws_list='[{"ws": "WS100101_getCitizenIDCardInfo"}]',
104
+ is_sms=1,
105
+ auth=CitizenAuth(regnum=regnum),
106
+ )
107
+
108
+ # 2. call the service with the code they read out to you
109
+ card = xyp.citizen.get_citizen_id_card_info(
110
+ regnum=regnum,
111
+ auth=CitizenAuth.with_otp(regnum=regnum, otp=123456),
112
+ )
113
+ ```
114
+
115
+ Also available: `CitizenAuth.with_sso_otp`, `.with_signature`,
116
+ `.with_fingerprint`, `.with_dan_app`, and `OperatorAuth` with the same
117
+ constructors for services that need the operator too (`operator=`).
118
+
119
+ ## Errors
120
+
121
+ ```python
122
+ from xyp import NotFoundError, AccessDeniedError, XypApiError, XypConnectionError
123
+
124
+ try:
125
+ card = xyp.citizen.get_citizen_id_card_info(regnum=regnum)
126
+ except NotFoundError:
127
+ card = None # resultCode 1: provider has no record
128
+ except AccessDeniedError:
129
+ ... # your token may not call this service
130
+ except XypApiError as error:
131
+ log(error.result_code, error.message, error.request_id)
132
+ except XypConnectionError:
133
+ ... # VPN down, hosts entry missing, TLS, timeout
134
+ ```
135
+
136
+ | Exception | `resultCode` |
137
+ | --- | --- |
138
+ | `NotFoundError` | 1 |
139
+ | `InternalError` | 2 |
140
+ | `InvalidRequestError` | 3 (missing input, bad token / timestamp / signature header) |
141
+ | `AuthRequiredError` | 200–202 |
142
+ | `AccessDeniedError` | 203, 501 |
143
+ | `FingerprintError` | 301–304 |
144
+ | `CitizenDataError` | 401–402 |
145
+ | `SignatureError` | 601–605 |
146
+ | `ProviderError` | 801–802 |
147
+
148
+ All of them are `XypApiError`; everything the SDK raises is an `XypError`.
149
+ `request_id` is what XYP support will ask you for.
150
+
151
+ Every error has an `origin`, so you (and your logs) know whose side it is on:
152
+
153
+ | `error.origin` | Meaning | Exceptions |
154
+ | --- | --- | --- |
155
+ | `"config"` | how the client was set up | `XypConfigError` |
156
+ | `"network"` | VPN, hosts entry, TLS, timeout | `XypConnectionError`, `XypTimeoutError` |
157
+ | `"xyp"` | XYP or the data provider answered with an error | `XypApiError` and subclasses, `XypResponseError` |
158
+ | `"sdk"` | a gap in this SDK — please report it | `XypValidationError` |
159
+
160
+ ### When XYP's data does not match the model
161
+
162
+ The response models are generated from XYP's public catalog, which is typed by
163
+ hand, so real data can disagree with them. That never costs you a call:
164
+
165
+ ```python
166
+ card = xyp.citizen.get_citizen_id_card_info(regnum=regnum) # succeeds
167
+ card.firstname # everything that fits is typed as usual
168
+ card.birth_date # None: this field did not fit
169
+ card.xyp_mismatches # (Mismatch(path="birthDate", problem="..."),) with the raw .value
170
+ ```
171
+
172
+ You also get an `XypModelMismatchWarning` pointing at your line, naming the
173
+ field and saying plainly that the SDK's model is wrong — not XYP, not your
174
+ code. It contains field names only, never values, so citizen data stays out of
175
+ your logs. Silence it with `warnings.simplefilter("ignore", XypModelMismatchWarning)`
176
+ or turn it into an error in your tests. `XypValidationError` is reserved for
177
+ the rare response that cannot be fitted at all; its `.data` still holds the
178
+ parsed response.
179
+
180
+ ## TLS
181
+
182
+ XYP's certificate is issued by the Mongolian national CA, which no operating
183
+ system trusts by default — the reason most integrations (including the official
184
+ samples) switch verification off. This SDK bundles the national root and
185
+ issuing CA instead and verifies against exactly those.
186
+
187
+ ```python
188
+ Xyp(..., verify=True) # default: bundled national CAs
189
+ Xyp(..., verify="/path/to/ca.pem") # your own CA bundle
190
+ Xyp(..., verify=ssl_context) # full control
191
+ Xyp(..., verify=False) # off — read docs/tls.md first
192
+ ```
193
+
194
+ Going through your own HTTPS proxy? Set `base_url="https://proxy.example"` and
195
+ a `verify` that matches the proxy's certificate. Details and the reasoning:
196
+ [docs/tls.md](https://github.com/baljinnyamday/xyp-sdk/blob/main/docs/tls.md).
197
+
198
+ ## Types
199
+
200
+ - Every response field is optional: providers leave fields out freely.
201
+ - Unknown fields are kept (`model.model_extra`) instead of raising.
202
+ - `Date` fields are `datetime` when XYP sends ISO 8601 and the original `str`
203
+ otherwise; formats are not documented, so nothing is rejected.
204
+ - `byte[]` fields (photos, PDFs) arrive as `bytes`.
205
+
206
+ ## Development
207
+
208
+ ```bash
209
+ uv sync
210
+ uv run pytest
211
+ uv run pyright
212
+ uv run ruff check .
213
+ ```
214
+
215
+ `src/xyp/operations` (one module per service), `src/xyp/services`,
216
+ `src/xyp/models`, `_groups.py` and `_operations.py` are generated — change `generator/` or `spec/` and run `uv run xyp-generate` from
217
+ `generator/` instead of editing them.
218
+
219
+ ## License
220
+
221
+ MIT
@@ -0,0 +1,31 @@
1
+ """First-contact check against the real XYP. Run it from a machine on the VPN:
2
+
3
+ export XYP_ACCESS_TOKEN=... # never commit these
4
+ export XYP_PRIVATE_KEY=/path/to/private.key
5
+ uv run python examples/smoke.py
6
+
7
+ `listAccess` needs no citizen data, so it is the safest first call. It proves
8
+ four things at once: TLS against the bundled national CAs, the request
9
+ signature, the SOAP envelope, and response parsing.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import sys
15
+
16
+ from xyp import Xyp, XypError
17
+
18
+
19
+ def main() -> int:
20
+ try:
21
+ with Xyp() as xyp:
22
+ access = xyp.meta.list_access()
23
+ except XypError as error:
24
+ sys.stderr.write(f"FAILED: {type(error).__name__}: {error}\n")
25
+ return 1
26
+ sys.stdout.write(f"OK: {access.model_dump_json(indent=2)[:2000]}\n")
27
+ return 0
28
+
29
+
30
+ if __name__ == "__main__":
31
+ raise SystemExit(main())
@@ -0,0 +1,79 @@
1
+ [project]
2
+ name = "xyp"
3
+ version = "0.1.0a1"
4
+ description = "Typed Python SDK for XYP (ХУР), Mongolia's government data exchange system"
5
+ readme = "README.md"
6
+ license = "MIT"
7
+ license-files = ["LICENSE"]
8
+ authors = [{ name = "baljinnyamday" }]
9
+ requires-python = ">=3.10"
10
+ keywords = ["xyp", "khur", "mongolia", "soap", "sdk", "e-mongolia"]
11
+ classifiers = [
12
+ "Development Status :: 3 - Alpha",
13
+ "Intended Audience :: Developers",
14
+ "Programming Language :: Python :: 3",
15
+ "Typing :: Typed",
16
+ ]
17
+ dependencies = [
18
+ "httpx>=0.27",
19
+ "pydantic>=2.6",
20
+ "cryptography>=42",
21
+ "defusedxml>=0.7.1",
22
+ "typing-extensions>=4.6",
23
+ ]
24
+
25
+ [project.urls]
26
+ Homepage = "https://github.com/baljinnyamday/xyp-sdk"
27
+ Documentation = "https://github.com/baljinnyamday/xyp-sdk/tree/main/packages/python#readme"
28
+ Issues = "https://github.com/baljinnyamday/xyp-sdk/issues"
29
+ Source = "https://github.com/baljinnyamday/xyp-sdk/tree/main/packages/python"
30
+
31
+ [dependency-groups]
32
+ dev = [
33
+ "pytest>=8",
34
+ "pytest-asyncio>=0.24",
35
+ "respx>=0.21",
36
+ "ruff>=0.6",
37
+ "pyright>=1.1.380",
38
+ "types-defusedxml>=0.7.0.20260504",
39
+ "zeep>=4.3.3",
40
+ ]
41
+
42
+ [build-system]
43
+ requires = ["hatchling"]
44
+ build-backend = "hatchling.build"
45
+
46
+ [tool.hatch.build]
47
+ # The repository ignores *.pem so credentials cannot be committed by accident;
48
+ # the bundled CA certificates are the deliberate exception.
49
+ artifacts = ["src/xyp/certs/*.pem"]
50
+
51
+ [tool.hatch.build.targets.wheel]
52
+ packages = ["src/xyp"]
53
+
54
+ [tool.pytest.ini_options]
55
+ asyncio_mode = "auto"
56
+ testpaths = ["tests"]
57
+ filterwarnings = ["error"]
58
+
59
+ [tool.ruff]
60
+ src = ["src"]
61
+ line-length = 100
62
+ target-version = "py310"
63
+
64
+ [tool.ruff.lint.flake8-tidy-imports]
65
+ ban-relative-imports = "all"
66
+
67
+ [tool.ruff.lint]
68
+ select = ["E", "F", "I", "UP", "B", "SIM", "RUF", "TID252"]
69
+ # Generated docstrings carry Mongolian text from the portal (Cyrillic is expected).
70
+ ignore = ["RUF001", "RUF002", "RUF003"]
71
+
72
+ [tool.ruff.lint.per-file-ignores]
73
+ # Generated code: docstrings quote the portal verbatim, and some XYP names are very long.
74
+ "src/xyp/operations/**/*.py" = ["E501"]
75
+ "src/xyp/services/*.py" = ["E501"]
76
+
77
+ [tool.pyright]
78
+ typeCheckingMode = "strict"
79
+ include = ["src"]
@@ -0,0 +1,58 @@
1
+ """Typed Python SDK for XYP (ХУР), Mongolia's government data exchange system.
2
+
3
+ from xyp import Xyp
4
+
5
+ xyp = Xyp(access_token="...", private_key="private.key")
6
+ card = xyp.citizen.get_citizen_id_card_info(regnum="...")
7
+ """
8
+
9
+ from xyp._client import AsyncXyp, Xyp
10
+ from xyp._models import Mismatch, XypModel, XypModelMismatchWarning
11
+ from xyp.auth import AuthType, CitizenAuth, OperatorAuth
12
+ from xyp.errors import (
13
+ AccessDeniedError,
14
+ AuthRequiredError,
15
+ CitizenDataError,
16
+ FingerprintError,
17
+ InternalError,
18
+ InvalidRequestError,
19
+ NotFoundError,
20
+ ProviderError,
21
+ SignatureError,
22
+ XypApiError,
23
+ XypConfigError,
24
+ XypConnectionError,
25
+ XypError,
26
+ XypResponseError,
27
+ XypTimeoutError,
28
+ XypValidationError,
29
+ )
30
+
31
+ __version__ = "0.1.0a1"
32
+
33
+ __all__ = [
34
+ "AccessDeniedError",
35
+ "AsyncXyp",
36
+ "AuthRequiredError",
37
+ "AuthType",
38
+ "CitizenAuth",
39
+ "CitizenDataError",
40
+ "FingerprintError",
41
+ "InternalError",
42
+ "InvalidRequestError",
43
+ "Mismatch",
44
+ "NotFoundError",
45
+ "OperatorAuth",
46
+ "ProviderError",
47
+ "SignatureError",
48
+ "Xyp",
49
+ "XypApiError",
50
+ "XypConfigError",
51
+ "XypConnectionError",
52
+ "XypError",
53
+ "XypModel",
54
+ "XypModelMismatchWarning",
55
+ "XypResponseError",
56
+ "XypTimeoutError",
57
+ "XypValidationError",
58
+ ]