zitadel-client 1.4.2 → 1.5.0

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 (367) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -17
  3. data/lib/{zitadel-client → zitadel/client}/api/feature_service_api.rb +1 -3
  4. data/lib/{zitadel-client → zitadel/client}/api/identity_provider_service_api.rb +1 -3
  5. data/lib/{zitadel-client → zitadel/client}/api/o_i_d_c_service_api.rb +1 -3
  6. data/lib/{zitadel-client → zitadel/client}/api/organization_service_api.rb +1 -3
  7. data/lib/{zitadel-client → zitadel/client}/api/s_a_m_l_service_api.rb +1 -3
  8. data/lib/{zitadel-client → zitadel/client}/api/session_service_api.rb +1 -3
  9. data/lib/{zitadel-client → zitadel/client}/api/settings_api.rb +1 -3
  10. data/lib/{zitadel-client → zitadel/client}/api/settings_service_api.rb +1 -3
  11. data/lib/{zitadel-client → zitadel/client}/api/user_service_api.rb +1 -3
  12. data/lib/zitadel/client/api_client.rb +378 -0
  13. data/lib/zitadel/client/api_error.rb +31 -0
  14. data/lib/zitadel/client/auth/authenticator.rb +80 -0
  15. data/lib/zitadel/client/auth/client_credentials_authenticator.rb +65 -0
  16. data/lib/zitadel/client/auth/no_auth_authenticator.rb +35 -0
  17. data/lib/zitadel/client/auth/o_auth_authenticator.rb +99 -0
  18. data/lib/zitadel/client/auth/open_id.rb +54 -0
  19. data/lib/zitadel/client/auth/personal_access_token_authenticator.rb +37 -0
  20. data/lib/zitadel/client/auth/web_token_authenticator.rb +163 -0
  21. data/lib/zitadel/client/configuration.rb +180 -0
  22. data/lib/{zitadel-client → zitadel/client}/models/feature_service_details.rb +4 -4
  23. data/lib/{zitadel-client → zitadel/client}/models/feature_service_feature_flag.rb +4 -4
  24. data/lib/{zitadel-client → zitadel/client}/models/feature_service_get_instance_features_response.rb +4 -4
  25. data/lib/{zitadel-client/models/feature_service_reset_organization_features_response.rb → zitadel/client/models/feature_service_get_organization_features_response.rb} +5 -5
  26. data/lib/{zitadel-client → zitadel/client}/models/feature_service_get_system_features_response.rb +4 -4
  27. data/lib/{zitadel-client/models/feature_service_set_system_features_response.rb → zitadel/client/models/feature_service_get_user_features_response.rb} +5 -5
  28. data/lib/{zitadel-client → zitadel/client}/models/feature_service_improved_performance.rb +2 -2
  29. data/lib/{zitadel-client → zitadel/client}/models/feature_service_improved_performance_feature_flag.rb +4 -4
  30. data/lib/{zitadel-client → zitadel/client}/models/feature_service_login_v2.rb +4 -4
  31. data/lib/{zitadel-client → zitadel/client}/models/feature_service_login_v2_feature_flag.rb +4 -4
  32. data/lib/{zitadel-client → zitadel/client}/models/feature_service_protobuf_any.rb +4 -4
  33. data/lib/{zitadel-client/models/feature_service_set_organization_features_response.rb → zitadel/client/models/feature_service_reset_instance_features_response.rb} +5 -5
  34. data/lib/zitadel/client/models/feature_service_reset_organization_features_response.rb +230 -0
  35. data/lib/zitadel/client/models/feature_service_reset_system_features_response.rb +230 -0
  36. data/lib/{zitadel-client/models/feature_service_reset_system_features_response.rb → zitadel/client/models/feature_service_reset_user_features_response.rb} +5 -5
  37. data/lib/{zitadel-client → zitadel/client}/models/feature_service_rpc_status.rb +4 -4
  38. data/lib/{zitadel-client → zitadel/client}/models/feature_service_set_instance_features_request.rb +4 -4
  39. data/lib/{zitadel-client/models/feature_service_reset_instance_features_response.rb → zitadel/client/models/feature_service_set_instance_features_response.rb} +5 -5
  40. data/lib/{zitadel-client/models/feature_service_get_organization_features_response.rb → zitadel/client/models/feature_service_set_organization_features_response.rb} +5 -5
  41. data/lib/{zitadel-client → zitadel/client}/models/feature_service_set_system_features_request.rb +4 -4
  42. data/lib/{zitadel-client/models/feature_service_set_instance_features_response.rb → zitadel/client/models/feature_service_set_system_features_response.rb} +5 -5
  43. data/lib/{zitadel-client/models/feature_service_reset_user_features_response.rb → zitadel/client/models/feature_service_set_user_features_response.rb} +5 -5
  44. data/lib/{zitadel-client → zitadel/client}/models/feature_service_source.rb +2 -2
  45. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_apple_config.rb +4 -4
  46. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_auto_linking_option.rb +2 -2
  47. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_azure_a_d_config.rb +4 -4
  48. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_azure_a_d_tenant.rb +4 -4
  49. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_azure_a_d_tenant_type.rb +2 -2
  50. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_details.rb +4 -4
  51. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_generic_o_i_d_c_config.rb +4 -4
  52. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_get_i_d_p_by_i_d_response.rb +4 -4
  53. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_git_hub_config.rb +4 -4
  54. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_git_hub_enterprise_server_config.rb +4 -4
  55. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_git_lab_config.rb +4 -4
  56. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_git_lab_self_hosted_config.rb +4 -4
  57. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_google_config.rb +4 -4
  58. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_i_d_p.rb +4 -4
  59. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_i_d_p_config.rb +4 -4
  60. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_i_d_p_state.rb +2 -2
  61. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_i_d_p_type.rb +2 -2
  62. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_j_w_t_config.rb +4 -4
  63. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_l_d_a_p_attributes.rb +4 -4
  64. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_l_d_a_p_config.rb +4 -4
  65. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_o_auth_config.rb +4 -4
  66. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_options.rb +4 -4
  67. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_protobuf_any.rb +4 -4
  68. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_rpc_status.rb +4 -4
  69. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_s_a_m_l_binding.rb +2 -2
  70. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_s_a_m_l_config.rb +4 -4
  71. data/lib/{zitadel-client → zitadel/client}/models/identity_provider_service_s_a_m_l_name_i_d_format.rb +2 -2
  72. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_auth_request.rb +4 -4
  73. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_authorization_error.rb +4 -4
  74. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_authorize_or_deny_device_authorization_request.rb +4 -4
  75. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_create_callback_request.rb +4 -4
  76. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_create_callback_response.rb +4 -4
  77. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_details.rb +4 -4
  78. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_device_authorization_request.rb +4 -4
  79. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_error_reason.rb +2 -2
  80. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_get_auth_request_response.rb +4 -4
  81. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_get_device_authorization_request_response.rb +4 -4
  82. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_prompt.rb +2 -2
  83. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_protobuf_any.rb +4 -4
  84. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_rpc_status.rb +4 -4
  85. data/lib/{zitadel-client → zitadel/client}/models/o_i_d_c_service_session.rb +4 -4
  86. data/lib/{zitadel-client → zitadel/client}/models/organization_service_add_human_user_request.rb +4 -4
  87. data/lib/{zitadel-client → zitadel/client}/models/organization_service_add_organization_request.rb +4 -4
  88. data/lib/{zitadel-client → zitadel/client}/models/organization_service_add_organization_request_admin.rb +4 -4
  89. data/lib/{zitadel-client → zitadel/client}/models/organization_service_add_organization_response.rb +4 -4
  90. data/lib/{zitadel-client → zitadel/client}/models/organization_service_add_organization_response_created_admin.rb +4 -4
  91. data/lib/{zitadel-client → zitadel/client}/models/organization_service_details.rb +4 -4
  92. data/lib/{zitadel-client → zitadel/client}/models/organization_service_gender.rb +2 -2
  93. data/lib/{zitadel-client → zitadel/client}/models/organization_service_hashed_password.rb +4 -4
  94. data/lib/{zitadel-client → zitadel/client}/models/organization_service_i_d_p_link.rb +4 -4
  95. data/lib/{zitadel-client → zitadel/client}/models/organization_service_list_details.rb +4 -4
  96. data/lib/{zitadel-client → zitadel/client}/models/organization_service_list_organizations_request.rb +4 -4
  97. data/lib/{zitadel-client → zitadel/client}/models/organization_service_list_organizations_response.rb +4 -4
  98. data/lib/{zitadel-client → zitadel/client}/models/organization_service_list_query.rb +4 -4
  99. data/lib/{zitadel-client → zitadel/client}/models/organization_service_organization_domain_query.rb +4 -4
  100. data/lib/{zitadel-client → zitadel/client}/models/organization_service_organization_field_name.rb +2 -2
  101. data/lib/{zitadel-client → zitadel/client}/models/organization_service_organization_i_d_query.rb +4 -4
  102. data/lib/{zitadel-client → zitadel/client}/models/organization_service_organization_name_query.rb +4 -4
  103. data/lib/{zitadel-client → zitadel/client}/models/organization_service_organization_state.rb +2 -2
  104. data/lib/{zitadel-client → zitadel/client}/models/organization_service_organization_state_query.rb +4 -4
  105. data/lib/{zitadel-client → zitadel/client}/models/organization_service_password.rb +4 -4
  106. data/lib/{zitadel-client → zitadel/client}/models/organization_service_protobuf_any.rb +4 -4
  107. data/lib/{zitadel-client → zitadel/client}/models/organization_service_rpc_status.rb +4 -4
  108. data/lib/{zitadel-client → zitadel/client}/models/organization_service_search_query.rb +4 -4
  109. data/lib/{zitadel-client → zitadel/client}/models/organization_service_send_email_verification_code.rb +4 -4
  110. data/lib/{zitadel-client → zitadel/client}/models/organization_service_set_human_email.rb +4 -4
  111. data/lib/{zitadel-client → zitadel/client}/models/organization_service_set_human_phone.rb +4 -4
  112. data/lib/{zitadel-client → zitadel/client}/models/organization_service_set_human_profile.rb +4 -4
  113. data/lib/{zitadel-client → zitadel/client}/models/organization_service_set_metadata_entry.rb +4 -4
  114. data/lib/{zitadel-client → zitadel/client}/models/organization_service_text_query_method.rb +2 -2
  115. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_authorization_error.rb +4 -4
  116. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_create_response_request.rb +4 -4
  117. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_create_response_response.rb +4 -4
  118. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_details.rb +4 -4
  119. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_error_reason.rb +2 -2
  120. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_get_s_a_m_l_request_response.rb +4 -4
  121. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_post_response.rb +4 -4
  122. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_protobuf_any.rb +4 -4
  123. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_rpc_status.rb +4 -4
  124. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_s_a_m_l_request.rb +4 -4
  125. data/lib/{zitadel-client → zitadel/client}/models/s_a_m_l_service_session.rb +4 -4
  126. data/lib/{zitadel-client → zitadel/client}/models/session_service_challenges.rb +4 -4
  127. data/lib/{zitadel-client → zitadel/client}/models/session_service_challenges_web_auth_n.rb +4 -4
  128. data/lib/{zitadel-client → zitadel/client}/models/session_service_check_i_d_p_intent.rb +4 -4
  129. data/lib/{zitadel-client → zitadel/client}/models/session_service_check_o_t_p.rb +4 -4
  130. data/lib/{zitadel-client → zitadel/client}/models/session_service_check_password.rb +4 -4
  131. data/lib/{zitadel-client → zitadel/client}/models/session_service_check_t_o_t_p.rb +4 -4
  132. data/lib/{zitadel-client → zitadel/client}/models/session_service_check_user.rb +4 -4
  133. data/lib/{zitadel-client → zitadel/client}/models/session_service_check_web_auth_n.rb +4 -4
  134. data/lib/{zitadel-client → zitadel/client}/models/session_service_checks.rb +4 -4
  135. data/lib/{zitadel-client → zitadel/client}/models/session_service_create_session_request.rb +4 -4
  136. data/lib/{zitadel-client → zitadel/client}/models/session_service_create_session_response.rb +4 -4
  137. data/lib/{zitadel-client → zitadel/client}/models/session_service_creation_date_query.rb +4 -4
  138. data/lib/{zitadel-client → zitadel/client}/models/session_service_creator_query.rb +4 -4
  139. data/lib/{zitadel-client → zitadel/client}/models/session_service_delete_session_request.rb +4 -4
  140. data/lib/zitadel/client/models/session_service_delete_session_response.rb +230 -0
  141. data/lib/{zitadel-client → zitadel/client}/models/session_service_details.rb +4 -4
  142. data/lib/{zitadel-client → zitadel/client}/models/session_service_factors.rb +4 -4
  143. data/lib/{zitadel-client → zitadel/client}/models/session_service_get_session_response.rb +4 -4
  144. data/lib/{zitadel-client → zitadel/client}/models/session_service_i_ds_query.rb +4 -4
  145. data/lib/{zitadel-client/models/session_service_password_factor.rb → zitadel/client/models/session_service_intent_factor.rb} +6 -6
  146. data/lib/{zitadel-client → zitadel/client}/models/session_service_list_details.rb +4 -4
  147. data/lib/{zitadel-client → zitadel/client}/models/session_service_list_query.rb +4 -4
  148. data/lib/{zitadel-client → zitadel/client}/models/session_service_list_sessions_request.rb +4 -4
  149. data/lib/{zitadel-client → zitadel/client}/models/session_service_list_sessions_response.rb +4 -4
  150. data/lib/{zitadel-client → zitadel/client}/models/session_service_o_t_p_email_send_code.rb +4 -4
  151. data/lib/{zitadel-client → zitadel/client}/models/session_service_o_t_p_factor.rb +4 -4
  152. data/lib/{zitadel-client/models/session_service_t_o_t_p_factor.rb → zitadel/client/models/session_service_password_factor.rb} +6 -6
  153. data/lib/{zitadel-client → zitadel/client}/models/session_service_protobuf_any.rb +4 -4
  154. data/lib/{zitadel-client → zitadel/client}/models/session_service_request_challenges.rb +4 -4
  155. data/lib/{zitadel-client → zitadel/client}/models/session_service_request_challenges_o_t_p_email.rb +4 -4
  156. data/lib/{zitadel-client → zitadel/client}/models/session_service_request_challenges_o_t_p_s_m_s.rb +4 -4
  157. data/lib/{zitadel-client → zitadel/client}/models/session_service_request_challenges_web_auth_n.rb +4 -4
  158. data/lib/{zitadel-client → zitadel/client}/models/session_service_rpc_status.rb +4 -4
  159. data/lib/{zitadel-client → zitadel/client}/models/session_service_search_query.rb +4 -4
  160. data/lib/{zitadel-client → zitadel/client}/models/session_service_session.rb +4 -4
  161. data/lib/{zitadel-client → zitadel/client}/models/session_service_session_field_name.rb +2 -2
  162. data/lib/{zitadel-client → zitadel/client}/models/session_service_set_session_request.rb +4 -4
  163. data/lib/{zitadel-client → zitadel/client}/models/session_service_set_session_response.rb +4 -4
  164. data/lib/{zitadel-client/models/session_service_intent_factor.rb → zitadel/client/models/session_service_t_o_t_p_factor.rb} +6 -6
  165. data/lib/{zitadel-client → zitadel/client}/models/session_service_timestamp_query_method.rb +2 -2
  166. data/lib/{zitadel-client → zitadel/client}/models/session_service_user_agent.rb +4 -4
  167. data/lib/{zitadel-client → zitadel/client}/models/session_service_user_agent_header_values.rb +4 -4
  168. data/lib/{zitadel-client → zitadel/client}/models/session_service_user_agent_query.rb +4 -4
  169. data/lib/{zitadel-client → zitadel/client}/models/session_service_user_factor.rb +4 -4
  170. data/lib/{zitadel-client → zitadel/client}/models/session_service_user_i_d_query.rb +4 -4
  171. data/lib/{zitadel-client → zitadel/client}/models/session_service_user_verification_requirement.rb +2 -2
  172. data/lib/{zitadel-client → zitadel/client}/models/session_service_web_auth_n_factor.rb +4 -4
  173. data/lib/{zitadel-client → zitadel/client}/models/settings_service_auto_linking_option.rb +2 -2
  174. data/lib/{zitadel-client → zitadel/client}/models/settings_service_branding_settings.rb +4 -4
  175. data/lib/{zitadel-client → zitadel/client}/models/settings_service_details.rb +4 -4
  176. data/lib/{zitadel-client → zitadel/client}/models/settings_service_domain_settings.rb +4 -4
  177. data/lib/{zitadel-client → zitadel/client}/models/settings_service_embedded_iframe_settings.rb +4 -4
  178. data/lib/{zitadel-client → zitadel/client}/models/settings_service_get_active_identity_providers_response.rb +4 -4
  179. data/lib/{zitadel-client → zitadel/client}/models/settings_service_get_branding_settings_response.rb +4 -4
  180. data/lib/{zitadel-client/models/settings_service_get_security_settings_response.rb → zitadel/client/models/settings_service_get_domain_settings_response.rb} +6 -6
  181. data/lib/{zitadel-client → zitadel/client}/models/settings_service_get_general_settings_response.rb +4 -4
  182. data/lib/{zitadel-client → zitadel/client}/models/settings_service_get_legal_and_support_settings_response.rb +4 -4
  183. data/lib/{zitadel-client/models/settings_service_get_login_settings_response.rb → zitadel/client/models/settings_service_get_lockout_settings_response.rb} +6 -6
  184. data/lib/{zitadel-client/models/settings_service_get_lockout_settings_response.rb → zitadel/client/models/settings_service_get_login_settings_response.rb} +6 -6
  185. data/lib/{zitadel-client → zitadel/client}/models/settings_service_get_password_complexity_settings_response.rb +4 -4
  186. data/lib/{zitadel-client → zitadel/client}/models/settings_service_get_password_expiry_settings_response.rb +4 -4
  187. data/lib/{zitadel-client/models/settings_service_get_domain_settings_response.rb → zitadel/client/models/settings_service_get_security_settings_response.rb} +6 -6
  188. data/lib/{zitadel-client → zitadel/client}/models/settings_service_identity_provider.rb +4 -4
  189. data/lib/{zitadel-client → zitadel/client}/models/settings_service_identity_provider_type.rb +2 -2
  190. data/lib/{zitadel-client → zitadel/client}/models/settings_service_legal_and_support_settings.rb +4 -4
  191. data/lib/{zitadel-client → zitadel/client}/models/settings_service_list_details.rb +4 -4
  192. data/lib/{zitadel-client → zitadel/client}/models/settings_service_lockout_settings.rb +4 -4
  193. data/lib/{zitadel-client → zitadel/client}/models/settings_service_login_settings.rb +4 -4
  194. data/lib/{zitadel-client → zitadel/client}/models/settings_service_multi_factor_type.rb +2 -2
  195. data/lib/{zitadel-client → zitadel/client}/models/settings_service_options.rb +4 -4
  196. data/lib/{zitadel-client → zitadel/client}/models/settings_service_passkeys_type.rb +2 -2
  197. data/lib/{zitadel-client → zitadel/client}/models/settings_service_password_complexity_settings.rb +4 -4
  198. data/lib/{zitadel-client → zitadel/client}/models/settings_service_password_expiry_settings.rb +4 -4
  199. data/lib/{zitadel-client → zitadel/client}/models/settings_service_protobuf_any.rb +4 -4
  200. data/lib/{zitadel-client → zitadel/client}/models/settings_service_resource_owner_type.rb +2 -2
  201. data/lib/{zitadel-client → zitadel/client}/models/settings_service_rpc_status.rb +4 -4
  202. data/lib/{zitadel-client → zitadel/client}/models/settings_service_second_factor_type.rb +2 -2
  203. data/lib/{zitadel-client → zitadel/client}/models/settings_service_security_settings.rb +4 -4
  204. data/lib/{zitadel-client → zitadel/client}/models/settings_service_set_security_settings_request.rb +4 -4
  205. data/lib/{zitadel-client/models/user_service_verify_passkey_registration_response.rb → zitadel/client/models/settings_service_set_security_settings_response.rb} +6 -6
  206. data/lib/{zitadel-client → zitadel/client}/models/settings_service_theme.rb +4 -4
  207. data/lib/{zitadel-client → zitadel/client}/models/settings_service_theme_mode.rb +2 -2
  208. data/lib/{zitadel-client → zitadel/client}/models/user_service_access_token_type.rb +2 -2
  209. data/lib/{zitadel-client → zitadel/client}/models/user_service_add_human_user_request.rb +4 -4
  210. data/lib/{zitadel-client → zitadel/client}/models/user_service_add_human_user_response.rb +4 -4
  211. data/lib/{zitadel-client → zitadel/client}/models/user_service_add_i_d_p_link_request.rb +4 -4
  212. data/lib/{zitadel-client/models/user_service_remove_o_t_p_s_m_s_response.rb → zitadel/client/models/user_service_add_i_d_p_link_response.rb} +5 -5
  213. data/lib/{zitadel-client/models/user_service_remove_i_d_p_link_response.rb → zitadel/client/models/user_service_add_o_t_p_email_response.rb} +5 -5
  214. data/lib/{zitadel-client/models/user_service_add_o_t_p_email_response.rb → zitadel/client/models/user_service_add_o_t_p_s_m_s_response.rb} +5 -5
  215. data/lib/{zitadel-client → zitadel/client}/models/user_service_and_query.rb +4 -4
  216. data/lib/{zitadel-client → zitadel/client}/models/user_service_auth_factor.rb +4 -4
  217. data/lib/{zitadel-client → zitadel/client}/models/user_service_auth_factor_state.rb +2 -2
  218. data/lib/{zitadel-client → zitadel/client}/models/user_service_auth_factor_u2_f.rb +4 -4
  219. data/lib/{zitadel-client → zitadel/client}/models/user_service_authentication_method_type.rb +2 -2
  220. data/lib/{zitadel-client → zitadel/client}/models/user_service_create_invite_code_request.rb +4 -4
  221. data/lib/{zitadel-client → zitadel/client}/models/user_service_create_invite_code_response.rb +4 -4
  222. data/lib/{zitadel-client → zitadel/client}/models/user_service_create_passkey_registration_link_request.rb +4 -4
  223. data/lib/{zitadel-client → zitadel/client}/models/user_service_create_passkey_registration_link_response.rb +4 -4
  224. data/lib/{zitadel-client/models/user_service_resend_invite_code_response.rb → zitadel/client/models/user_service_deactivate_user_response.rb} +5 -5
  225. data/lib/{zitadel-client → zitadel/client}/models/user_service_delete_user_response.rb +4 -4
  226. data/lib/{zitadel-client → zitadel/client}/models/user_service_details.rb +4 -4
  227. data/lib/{zitadel-client → zitadel/client}/models/user_service_display_name_query.rb +4 -4
  228. data/lib/{zitadel-client → zitadel/client}/models/user_service_email_query.rb +4 -4
  229. data/lib/{zitadel-client → zitadel/client}/models/user_service_first_name_query.rb +4 -4
  230. data/lib/{zitadel-client → zitadel/client}/models/user_service_gender.rb +2 -2
  231. data/lib/{zitadel-client → zitadel/client}/models/user_service_get_user_by_i_d_response.rb +4 -4
  232. data/lib/{zitadel-client → zitadel/client}/models/user_service_hashed_password.rb +4 -4
  233. data/lib/{zitadel-client → zitadel/client}/models/user_service_human_email.rb +4 -4
  234. data/lib/{zitadel-client/models/user_service_verify_u2_f_registration_response.rb → zitadel/client/models/user_service_human_m_f_a_init_skipped_response.rb} +5 -5
  235. data/lib/{zitadel-client → zitadel/client}/models/user_service_human_phone.rb +4 -4
  236. data/lib/{zitadel-client → zitadel/client}/models/user_service_human_profile.rb +4 -4
  237. data/lib/{zitadel-client → zitadel/client}/models/user_service_human_user.rb +4 -4
  238. data/lib/{zitadel-client → zitadel/client}/models/user_service_i_d_p_information.rb +4 -4
  239. data/lib/{zitadel-client → zitadel/client}/models/user_service_i_d_p_intent.rb +4 -4
  240. data/lib/{zitadel-client → zitadel/client}/models/user_service_i_d_p_l_d_a_p_access_information.rb +4 -4
  241. data/lib/{zitadel-client → zitadel/client}/models/user_service_i_d_p_link.rb +4 -4
  242. data/lib/{zitadel-client → zitadel/client}/models/user_service_i_d_p_o_auth_access_information.rb +4 -4
  243. data/lib/{zitadel-client → zitadel/client}/models/user_service_i_d_p_s_a_m_l_access_information.rb +4 -4
  244. data/lib/{zitadel-client → zitadel/client}/models/user_service_in_user_emails_query.rb +4 -4
  245. data/lib/{zitadel-client → zitadel/client}/models/user_service_in_user_i_d_query.rb +4 -4
  246. data/lib/{zitadel-client → zitadel/client}/models/user_service_l_d_a_p_credentials.rb +4 -4
  247. data/lib/{zitadel-client → zitadel/client}/models/user_service_last_name_query.rb +4 -4
  248. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_authentication_factors_response.rb +4 -4
  249. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_authentication_method_types_response.rb +4 -4
  250. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_details.rb +4 -4
  251. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_i_d_p_links_request.rb +4 -4
  252. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_i_d_p_links_response.rb +4 -4
  253. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_passkeys_response.rb +4 -4
  254. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_query.rb +4 -4
  255. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_users_request.rb +4 -4
  256. data/lib/{zitadel-client → zitadel/client}/models/user_service_list_users_response.rb +4 -4
  257. data/lib/{zitadel-client/models/user_service_unlock_user_response.rb → zitadel/client/models/user_service_lock_user_response.rb} +5 -5
  258. data/lib/{zitadel-client → zitadel/client}/models/user_service_login_name_query.rb +4 -4
  259. data/lib/{zitadel-client → zitadel/client}/models/user_service_machine_user.rb +4 -4
  260. data/lib/{zitadel-client → zitadel/client}/models/user_service_nick_name_query.rb +4 -4
  261. data/lib/{zitadel-client → zitadel/client}/models/user_service_not_query.rb +4 -4
  262. data/lib/{zitadel-client → zitadel/client}/models/user_service_notification_type.rb +2 -2
  263. data/lib/{zitadel-client → zitadel/client}/models/user_service_or_query.rb +4 -4
  264. data/lib/{zitadel-client → zitadel/client}/models/user_service_organization.rb +4 -4
  265. data/lib/{zitadel-client → zitadel/client}/models/user_service_organization_id_query.rb +4 -4
  266. data/lib/{zitadel-client → zitadel/client}/models/user_service_passkey.rb +4 -4
  267. data/lib/{zitadel-client → zitadel/client}/models/user_service_passkey_authenticator.rb +2 -2
  268. data/lib/{zitadel-client → zitadel/client}/models/user_service_passkey_registration_code.rb +4 -4
  269. data/lib/{zitadel-client → zitadel/client}/models/user_service_password.rb +4 -4
  270. data/lib/{zitadel-client → zitadel/client}/models/user_service_password_reset_request.rb +4 -4
  271. data/lib/{zitadel-client/models/user_service_resend_phone_code_response.rb → zitadel/client/models/user_service_password_reset_response.rb} +5 -5
  272. data/lib/{zitadel-client → zitadel/client}/models/user_service_phone_query.rb +4 -4
  273. data/lib/{zitadel-client → zitadel/client}/models/user_service_protobuf_any.rb +4 -4
  274. data/lib/{zitadel-client/models/user_service_verify_invite_code_response.rb → zitadel/client/models/user_service_reactivate_user_response.rb} +5 -5
  275. data/lib/{zitadel-client → zitadel/client}/models/user_service_redirect_u_r_ls.rb +4 -4
  276. data/lib/{zitadel-client → zitadel/client}/models/user_service_register_passkey_request.rb +4 -4
  277. data/lib/{zitadel-client → zitadel/client}/models/user_service_register_passkey_response.rb +4 -4
  278. data/lib/{zitadel-client → zitadel/client}/models/user_service_register_t_o_t_p_response.rb +4 -4
  279. data/lib/{zitadel-client → zitadel/client}/models/user_service_register_u2_f_request.rb +4 -4
  280. data/lib/{zitadel-client → zitadel/client}/models/user_service_register_u2_f_response.rb +4 -4
  281. data/lib/{zitadel-client/models/user_service_deactivate_user_response.rb → zitadel/client/models/user_service_remove_i_d_p_link_response.rb} +5 -5
  282. data/lib/{zitadel-client/models/session_service_delete_session_response.rb → zitadel/client/models/user_service_remove_o_t_p_email_response.rb} +6 -6
  283. data/lib/{zitadel-client/models/user_service_reactivate_user_response.rb → zitadel/client/models/user_service_remove_o_t_p_s_m_s_response.rb} +5 -5
  284. data/lib/{zitadel-client/models/user_service_add_o_t_p_s_m_s_response.rb → zitadel/client/models/user_service_remove_passkey_response.rb} +5 -5
  285. data/lib/{zitadel-client/models/user_service_remove_passkey_response.rb → zitadel/client/models/user_service_remove_phone_response.rb} +5 -5
  286. data/lib/{zitadel-client → zitadel/client}/models/user_service_remove_t_o_t_p_response.rb +4 -4
  287. data/lib/{zitadel-client/models/user_service_remove_phone_response.rb → zitadel/client/models/user_service_remove_u2_f_response.rb} +5 -5
  288. data/lib/{zitadel-client/models/user_service_send_email_code_request.rb → zitadel/client/models/user_service_resend_email_code_request.rb} +5 -5
  289. data/lib/{zitadel-client/models/user_service_send_email_code_response.rb → zitadel/client/models/user_service_resend_email_code_response.rb} +5 -5
  290. data/lib/{zitadel-client/models/feature_service_get_user_features_response.rb → zitadel/client/models/user_service_resend_invite_code_response.rb} +6 -6
  291. data/lib/{zitadel-client → zitadel/client}/models/user_service_resend_phone_code_request.rb +4 -4
  292. data/lib/{zitadel-client/models/user_service_password_reset_response.rb → zitadel/client/models/user_service_resend_phone_code_response.rb} +5 -5
  293. data/lib/{zitadel-client → zitadel/client}/models/user_service_retrieve_identity_provider_intent_request.rb +4 -4
  294. data/lib/{zitadel-client → zitadel/client}/models/user_service_retrieve_identity_provider_intent_response.rb +4 -4
  295. data/lib/{zitadel-client → zitadel/client}/models/user_service_rpc_status.rb +4 -4
  296. data/lib/{zitadel-client → zitadel/client}/models/user_service_search_query.rb +4 -4
  297. data/lib/{zitadel-client/models/user_service_resend_email_code_request.rb → zitadel/client/models/user_service_send_email_code_request.rb} +5 -5
  298. data/lib/{zitadel-client/models/user_service_resend_email_code_response.rb → zitadel/client/models/user_service_send_email_code_response.rb} +5 -5
  299. data/lib/{zitadel-client → zitadel/client}/models/user_service_send_email_verification_code.rb +4 -4
  300. data/lib/{zitadel-client → zitadel/client}/models/user_service_send_invite_code.rb +4 -4
  301. data/lib/{zitadel-client → zitadel/client}/models/user_service_send_passkey_registration_link.rb +4 -4
  302. data/lib/{zitadel-client → zitadel/client}/models/user_service_send_password_reset_link.rb +4 -4
  303. data/lib/{zitadel-client/models/user_service_set_human_email.rb → zitadel/client/models/user_service_set_email_request.rb} +5 -5
  304. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_email_response.rb +4 -4
  305. data/lib/{zitadel-client/models/user_service_set_email_request.rb → zitadel/client/models/user_service_set_human_email.rb} +5 -5
  306. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_human_phone.rb +4 -4
  307. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_human_profile.rb +4 -4
  308. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_metadata_entry.rb +4 -4
  309. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_password.rb +4 -4
  310. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_password_request.rb +4 -4
  311. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_password_response.rb +4 -4
  312. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_phone_request.rb +4 -4
  313. data/lib/{zitadel-client → zitadel/client}/models/user_service_set_phone_response.rb +4 -4
  314. data/lib/{zitadel-client → zitadel/client}/models/user_service_start_identity_provider_intent_request.rb +4 -4
  315. data/lib/{zitadel-client → zitadel/client}/models/user_service_start_identity_provider_intent_response.rb +4 -4
  316. data/lib/{zitadel-client → zitadel/client}/models/user_service_state_query.rb +4 -4
  317. data/lib/{zitadel-client → zitadel/client}/models/user_service_text_query_method.rb +2 -2
  318. data/lib/{zitadel-client → zitadel/client}/models/user_service_type.rb +2 -2
  319. data/lib/{zitadel-client → zitadel/client}/models/user_service_type_query.rb +4 -4
  320. data/lib/{zitadel-client/models/user_service_add_i_d_p_link_response.rb → zitadel/client/models/user_service_unlock_user_response.rb} +5 -5
  321. data/lib/{zitadel-client → zitadel/client}/models/user_service_update_human_user_request.rb +4 -4
  322. data/lib/{zitadel-client → zitadel/client}/models/user_service_update_human_user_response.rb +4 -4
  323. data/lib/{zitadel-client → zitadel/client}/models/user_service_user.rb +4 -4
  324. data/lib/{zitadel-client → zitadel/client}/models/user_service_user_field_name.rb +2 -2
  325. data/lib/{zitadel-client → zitadel/client}/models/user_service_user_name_query.rb +4 -4
  326. data/lib/{zitadel-client → zitadel/client}/models/user_service_user_state.rb +2 -2
  327. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_email_request.rb +4 -4
  328. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_email_response.rb +4 -4
  329. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_invite_code_request.rb +4 -4
  330. data/lib/{zitadel-client/models/feature_service_set_user_features_response.rb → zitadel/client/models/user_service_verify_invite_code_response.rb} +6 -6
  331. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_passkey_registration_request.rb +4 -4
  332. data/lib/zitadel/client/models/user_service_verify_passkey_registration_response.rb +230 -0
  333. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_phone_request.rb +4 -4
  334. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_phone_response.rb +4 -4
  335. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_t_o_t_p_registration_request.rb +4 -4
  336. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_t_o_t_p_registration_response.rb +4 -4
  337. data/lib/{zitadel-client → zitadel/client}/models/user_service_verify_u2_f_registration_request.rb +4 -4
  338. data/lib/{zitadel-client/models/settings_service_set_security_settings_response.rb → zitadel/client/models/user_service_verify_u2_f_registration_response.rb} +6 -6
  339. data/lib/{zitadel-client → zitadel/client}/models/zitadelobjectv2_organization.rb +4 -4
  340. data/lib/{zitadel-client → zitadel/client}/models/zitadelorgv2_organization.rb +4 -4
  341. data/lib/zitadel/client/utils/url_util.rb +25 -0
  342. data/lib/zitadel/client/version.rb +7 -0
  343. data/lib/zitadel/client/zitadel.rb +84 -0
  344. data/lib/zitadel/client/zitadel_error.rb +10 -0
  345. data/lib/zitadel_client.rb +20 -6
  346. data/sig/lib.rbs +186 -183
  347. metadata +346 -346
  348. data/lib/zitadel-client/api_client.rb +0 -376
  349. data/lib/zitadel-client/api_error.rb +0 -29
  350. data/lib/zitadel-client/auth/authenticator.rb +0 -78
  351. data/lib/zitadel-client/auth/client_credentials_authenticator.rb +0 -63
  352. data/lib/zitadel-client/auth/no_auth_authenticator.rb +0 -33
  353. data/lib/zitadel-client/auth/o_auth_authenticator.rb +0 -97
  354. data/lib/zitadel-client/auth/open_id.rb +0 -52
  355. data/lib/zitadel-client/auth/personal_access_token_authenticator.rb +0 -35
  356. data/lib/zitadel-client/auth/web_token_authenticator.rb +0 -161
  357. data/lib/zitadel-client/configuration.rb +0 -178
  358. data/lib/zitadel-client/models/user_service_human_m_f_a_init_skipped_response.rb +0 -230
  359. data/lib/zitadel-client/models/user_service_lock_user_response.rb +0 -230
  360. data/lib/zitadel-client/models/user_service_remove_o_t_p_email_response.rb +0 -230
  361. data/lib/zitadel-client/models/user_service_remove_u2_f_response.rb +0 -230
  362. data/lib/zitadel-client/utils/url_util.rb +0 -23
  363. data/lib/zitadel-client/version.rb +0 -5
  364. data/lib/zitadel-client/zitadel.rb +0 -82
  365. data/lib/zitadel-client/zitadel_error.rb +0 -8
  366. /data/lib/{zitadel-client → zitadel/client}/api/.openapi +0 -0
  367. /data/lib/{zitadel-client → zitadel/client}/models/.openapi +0 -0
@@ -1,376 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # rubocop:disable Style/ClassVars
4
- # rubocop:disable Metrics/AbcSize
5
- # rubocop:disable Metrics/CyclomaticComplexity
6
- # rubocop:disable Metrics/MethodLength
7
- # rubocop:disable Metrics/PerceivedComplexity
8
- # rubocop:disable Metrics/ClassLength
9
-
10
- require 'date'
11
- require 'json'
12
- require 'logger'
13
- require 'tempfile'
14
- require 'time'
15
- require 'typhoeus'
16
- require 'uri'
17
-
18
- module ZitadelClient
19
- # ApiClient handles all HTTP interactions with the Zitadel API.
20
- #
21
- # It is responsible for:
22
- # - Constructing and signing requests via the configured authenticator
23
- # - Executing HTTP calls and handling errors (timeouts, non-2xx responses)
24
- # - Streaming file downloads into temporary files
25
- # - Deserializing JSON responses into Ruby types and model objects
26
- #
27
- # === Usage Example:
28
- # config = ZitadelClient::Configuration.new do |c|
29
- # c.authenticator = ZitadelClient::ClientCredentialsAuthenticator.builder(base_url, id, secret).build
30
- # end
31
- # client = ZitadelClient::ApiClient.new(config)
32
- # data, status, headers = client.call_api(:get, '/users', query_params: { limit: 10 })
33
- class ApiClient
34
- # The Configuration object holding settings to be used in the API client.
35
- attr_accessor :config
36
-
37
- # Defines the headers to be used in HTTP requests of all API calls by default.
38
- #
39
- # @return [Hash[String, String]]
40
- attr_accessor :default_headers
41
-
42
- # Initializes the ApiClient
43
- # @option config [Configuration] Configuration for initializing the object, default to the
44
- # default configuration.
45
- def initialize(config = Configuration.new)
46
- @config = config
47
- @default_headers = {
48
- 'Content-Type' => 'application/json',
49
- 'User-Agent' => config.user_agent
50
- }
51
- end
52
-
53
- # noinspection RubyClassVariableUsageInspection,RbsMissingTypeSignature
54
- # @return [ZitadelClient::ApiClient]
55
- def self.default
56
- @@default ||= ApiClient.new
57
- end
58
-
59
- # Call an API with given options.
60
- #
61
- # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
62
- # the data deserialized from response body (which may be a Tempfile or nil), response status code and response headers.
63
- # noinspection RbsMissingTypeSignature
64
- def call_api(http_method, path, opts = {})
65
- request = build_request(http_method, path, opts)
66
- tempfile = nil
67
- (download_file(request) { tempfile = _1 }) if opts[:return_type] == 'File'
68
- response = request.run
69
-
70
- @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n" if @config.debugging
71
-
72
- unless response.success?
73
- if response.timed_out?
74
- raise 'Connection timed out'
75
- elsif response.return_code != :ok
76
- raise "Network error (#{response.return_code}): #{response.return_message}"
77
- else
78
- raise ApiError.new(response.code, response.headers, response.body)
79
- end
80
- end
81
-
82
- data = if opts[:return_type] == 'File'
83
- tempfile
84
- elsif opts[:return_type]
85
- deserialize(response, opts[:return_type])
86
- end
87
- [data, response.code, response.headers]
88
- end
89
-
90
- def build_request(http_method, path, opts = {})
91
- url = URI.join("#{@config.authenticator.send(:host).chomp('/')}/", path).to_s
92
- http_method = http_method.to_sym.downcase
93
-
94
- query_params = opts[:query_params] || {}
95
- form_params = opts[:form_params] || {}
96
- follow_location = opts[:follow_location] || true
97
- header_params = @default_headers.merge(opts[:header_params] || {}).merge(@config.authenticator.send(:auth_headers))
98
-
99
- req_opts = {
100
- method: http_method,
101
- headers: header_params,
102
- params: query_params,
103
- params_encoding: @config.params_encoding,
104
- timeout: @config.timeout,
105
- ssl_verifypeer: @config.verify_ssl,
106
- ssl_verifyhost: (@config.verify_ssl_host ? 2 : 0),
107
- sslcert: @config.cert_file,
108
- sslkey: @config.key_file,
109
- verbose: @config.debugging,
110
- followlocation: follow_location
111
- }
112
-
113
- # set custom cert, if provided
114
- req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
115
-
116
- if %i[post patch put delete].include?(http_method)
117
- req_body = build_request_body(header_params, form_params, opts[:body])
118
- req_opts.update body: req_body
119
- @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n" if @config.debugging
120
- end
121
-
122
- Typhoeus::Request.new(url, req_opts)
123
- end
124
-
125
- # Builds the HTTP request body
126
- #
127
- # @param [Hash] header_params Header parameters
128
- # @param [Hash] form_params Query parameters
129
- # @param [Object] body HTTP body (JSON/XML)
130
- # @return [String] HTTP body data in the form of string
131
- # noinspection RubyMismatchedReturnType,RubyArgCount,RbsMissingTypeSignature
132
- def build_request_body(header_params, form_params, body)
133
- # http form
134
- if ['application/x-www-form-urlencoded',
135
- 'multipart/form-data'].include?(header_params['Content-Type'])
136
- data = {}
137
- form_params.each do |key, value|
138
- data[key] = case value
139
- when ::File, ::Array, nil
140
- # let typhoeus handle File, Array and nil parameters
141
- value
142
- else
143
- value.to_s
144
- end
145
- end
146
- elsif body
147
- data = body.is_a?(String) ? body : body.to_json
148
- else
149
- data = nil
150
- end
151
- data
152
- end
153
-
154
- # Save response body into a file in (the defined) temporary folder, using the filename
155
- # from the "Content-Disposition" header if provided, otherwise a random filename.
156
- # The response body is written to the file in chunks in order to handle files which
157
- # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
158
- # process can use.
159
- #
160
- # @see Configuration#temp_folder_path
161
- #
162
- # @return [Tempfile] the tempfile generated
163
- # noinspection RbsMissingTypeSignature
164
- def download_file(request)
165
- tempfile = nil
166
- encoding = nil
167
-
168
- request.on_headers do |response|
169
- content_disposition = response.headers['Content-Disposition']
170
- if content_disposition && content_disposition =~ /filename=/i
171
- filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
172
- prefix = sanitize_filename(filename)
173
- else
174
- prefix = 'download-'
175
- end
176
- prefix += '-' unless prefix.end_with?('-')
177
- encoding = response.body.encoding
178
- tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
179
- end
180
-
181
- request.on_body do |chunk|
182
- chunk.force_encoding(encoding) if encoding
183
- ensure_tempfile(tempfile).write(chunk)
184
- end
185
-
186
- request.on_complete do
187
- t = ensure_tempfile(tempfile)
188
- t.close
189
- @config.logger.info "Temp file written to #{t.path}, please copy the file to a proper folder " \
190
- "with e.g. `FileUtils.cp(t.path, '/new/file/path')` otherwise the temp file " \
191
- "will be deleted automatically with GC. It's also recommended to delete the temp file " \
192
- 'explicitly with `t.delete`'
193
- yield t if block_given?
194
- end
195
- end
196
-
197
- def ensure_tempfile(temp)
198
- temp || (raise 'Tempfile not created')
199
- end
200
-
201
- # Check if the given MIME is a JSON MIME.
202
- # JSON MIME examples:
203
- # application/json
204
- # application/json; charset=UTF8
205
- # APPLICATION/JSON
206
- # */*
207
- # @param [String] mime MIME
208
- # @return [Boolean] True if the MIME is application/json
209
- # noinspection RbsMissingTypeSignature
210
- def json_mime?(mime)
211
- (mime == '*/*') || !(mime =~ %r{^Application/.*json(?!p)(;.*)?}i).nil?
212
- end
213
-
214
- # Deserialize the response to the given return type.
215
- #
216
- # @param [Response] response HTTP response
217
- # @param [String] return_type some examples: "User", "Array<User>", "Hash<String, Integer>"
218
- # noinspection RbsMissingTypeSignature
219
- def deserialize(response, return_type)
220
- body = response.body
221
- return nil if body.nil? || body.empty?
222
-
223
- # return response body directly for String return type
224
- return body.to_s if return_type == 'String'
225
-
226
- # ensuring a default content type
227
- content_type = response.headers['Content-Type'] || 'application/json'
228
-
229
- raise "Content-Type is not supported: #{content_type}" unless json_mime?(content_type)
230
-
231
- begin
232
- data = JSON.parse("[#{body}]", symbolize_names: true)[0]
233
- rescue JSON::ParserError => e
234
- raise e unless %w[String Date Time].include?(return_type)
235
-
236
- data = body
237
- end
238
-
239
- convert_to_type data, return_type
240
- end
241
-
242
- # Convert data to the given return type.
243
- # @param [Object] data Data to be converted
244
- # @param [String] return_type Return type
245
- # @return [Mixed] Data in a particular type
246
- # noinspection RubyArgCount,RubyMismatchedArgumentType,RbsMissingTypeSignature
247
- def convert_to_type(data, return_type)
248
- return nil if data.nil?
249
-
250
- # noinspection RegExpRedundantEscape
251
- case return_type
252
- when 'String'
253
- data.to_s
254
- when 'Integer'
255
- data.to_i
256
- when 'Float'
257
- data.to_f
258
- when 'Boolean'
259
- data == true
260
- when 'Time'
261
- # parse date time (expecting ISO 8601 format)
262
- Time.parse data
263
- when 'Date'
264
- # parse date time (expecting ISO 8601 format)
265
- Date.parse data
266
- when 'Object'
267
- # generic object (usually a Hash), return directly
268
- data
269
- when /\AArray<(.+)>\z/
270
- # e.g. Array<Pet>
271
- sub_type = ::Regexp.last_match(1)
272
- data.map { |item| convert_to_type(item, sub_type) }
273
- when /\AHash<String, (.+)>\z/
274
- # e.g. Hash<String, Integer>
275
- sub_type = ::Regexp.last_match(1)
276
- {}.tap do |hash|
277
- data.each { |k, v| hash[k] = convert_to_type(v, sub_type) }
278
- end
279
- else
280
- # models (e.g. Pet) or oneOf
281
- klass = ZitadelClient::Models.const_get(return_type)
282
- klass.respond_to?(:openapi_one_of) ? klass.build(data) : klass.build_from_hash(data)
283
- end
284
- end
285
-
286
- # Sanitize filename by removing path.
287
- # e.g. ../../sun.gif becomes sun.gif
288
- #
289
- # @param [String] filename the filename to be sanitized
290
- # @return [String] the sanitized filename
291
- # noinspection RubyMismatchedReturnType,RbsMissingTypeSignature
292
- def sanitize_filename(filename)
293
- filename.split(%r{[/\\]}).last
294
- end
295
-
296
- # Return Accept header based on an array of accepts provided.
297
- # @param [Array] accepts array for Accept
298
- # @return [String] the Accept header (e.g. application/json)
299
- # noinspection RubyArgCount,RbsMissingTypeSignature
300
- def select_header_accept(accepts)
301
- return nil if accepts.nil? || accepts.empty?
302
-
303
- # use JSON when present, otherwise use all the provided
304
- json_accept = accepts.find { |s| json_mime?(s) }
305
- json_accept || accepts.join(',')
306
- end
307
-
308
- # Return Content-Type header based on an array of content types provided.
309
- # @param [Array] content_types array for Content-Type
310
- # @return [String] the Content-Type header (e.g. application/json)
311
- # noinspection RubyArgCount,RbsMissingTypeSignature
312
- def select_header_content_type(content_types)
313
- # return nil by default
314
- return if content_types.nil? || content_types.empty?
315
-
316
- # use JSON when present, otherwise use the first one
317
- json_content_type = content_types.find { |s| json_mime?(s) }
318
- json_content_type || content_types.first
319
- end
320
-
321
- # Convert object (array, hash, object, etc.) to JSON string.
322
- # @param [Object] model object to be converted into JSON string
323
- # @return [String] JSON string representation of the object
324
- # noinspection RubyMismatchedReturnType,RbsMissingTypeSignature
325
- def object_to_http_body(model)
326
- return model if model.nil? || model.is_a?(String)
327
-
328
- local_body = if model.is_a?(Array)
329
- model.map { |m| object_to_hash(m) }
330
- else
331
- object_to_hash(model)
332
- end
333
- local_body.to_json
334
- end
335
-
336
- # Convert object(non-array) to hash.
337
- # @param [Object] obj object to be converted into JSON string
338
- # @return [String] JSON string representation of the object
339
- # noinspection RubyMismatchedReturnType,RbsMissingTypeSignature
340
- def object_to_hash(obj)
341
- if obj.respond_to?(:to_hash)
342
- obj.to_hash
343
- else
344
- obj
345
- end
346
- end
347
-
348
- # Build parameter value according to the given collection format.
349
- # @param [String] collection_format one of :csv, :ssv, :tsv, :pipes and :multi
350
- # noinspection RbsMissingTypeSignature
351
- def build_collection_param(param, collection_format)
352
- case collection_format
353
- when :csv
354
- param.join(',')
355
- when :ssv
356
- param.join(' ')
357
- when :tsv
358
- param.join("\t")
359
- when :pipes
360
- param.join('|')
361
- when :multi
362
- # return the array directly as typhoeus will handle it as expected
363
- param
364
- else
365
- raise "unknown collection format: #{collection_format.inspect}"
366
- end
367
- end
368
- end
369
- end
370
-
371
- # rubocop:enable Style/ClassVars
372
- # rubocop:enable Metrics/AbcSize
373
- # rubocop:enable Metrics/CyclomaticComplexity
374
- # rubocop:enable Metrics/MethodLength
375
- # rubocop:enable Metrics/PerceivedComplexity
376
- # rubocop:enable Metrics/ClassLength
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ZitadelClient
4
- ##
5
- # Represents an HTTP error returned from the Zitadel API.
6
- #
7
- # Exposes the HTTP status code, response headers, and response body.
8
- class ApiError < ZitadelError
9
- # @return [Integer] HTTP status code
10
- attr_reader :code
11
-
12
- # @return [Hash{String=>Array<String>}] HTTP response headers
13
- attr_reader :response_headers
14
-
15
- # @return [String, Typhoeus::Response] HTTP response body
16
- attr_reader :response_body
17
-
18
- ##
19
- # @param code [Integer] HTTP status code
20
- # @param response_headers [Hash{String=>Array<String>}] HTTP response headers
21
- # @param response_body [String, Typhoeus::Response] HTTP response body
22
- def initialize(code, response_headers, response_body)
23
- super("Error #{code}")
24
- @code = code
25
- @response_headers = response_headers
26
- @response_body = response_body
27
- end
28
- end
29
- end
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'time'
4
-
5
- module ZitadelClient
6
- module Auth
7
- ##
8
- # Abstract base class for authenticators.
9
- #
10
- # This class defines the basic structure for any authenticator by requiring the implementation
11
- # of a method to retrieve authentication headers, and provides a way to store and retrieve the host.
12
- #
13
- class Authenticator
14
- protected
15
-
16
- attr_reader :host
17
-
18
- ##
19
- # Initializes the Authenticator with the specified host.
20
- #
21
- # @param host [String] the base URL or endpoint for the service.
22
- #
23
- def initialize(host)
24
- @host = host
25
- end
26
-
27
- ##
28
- # Retrieves the authentication headers to be sent with requests.
29
- #
30
- # Subclasses must override this method to return the appropriate headers.
31
- #
32
- # @raise [NotImplementedError] Always raised to require implementation in a subclass.
33
- #
34
- # @return [Hash{String => String}]
35
- #
36
- def auth_headers
37
- # :nocov:
38
- raise NotImplementedError,
39
- "#{self.class}#get_auth_headers is an abstract method. Please override it in a subclass."
40
- # :nocov:
41
- end
42
- end
43
-
44
- ##
45
- # Abstract builder class for constructing OAuth authenticator instances.
46
- #
47
- # This builder provides common configuration options such as the OpenId instance and authentication scopes.
48
- #
49
- class OAuthAuthenticatorBuilder
50
- protected
51
-
52
- attr_reader :open_id, :auth_scopes
53
-
54
- ##
55
- # Initializes the OAuthAuthenticatorBuilder with a given host.
56
- #
57
- # @param host [String] the base URL for the OAuth provider.
58
- #
59
- def initialize(host)
60
- @open_id = OpenId.new(host)
61
- @auth_scopes = Set.new(%w[openid urn:zitadel:iam:org:project:id:zitadel:aud])
62
- end
63
-
64
- public
65
-
66
- ##
67
- # Sets the authentication scopes for the OAuth authenticator.
68
- #
69
- # @param scopes [Array<String>] a variable number of scope strings.
70
- # @return [self] the builder instance to allow for method chaining.
71
- #
72
- def scopes(*scopes)
73
- @auth_scopes = Set.new(scopes)
74
- self
75
- end
76
- end
77
- end
78
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ZitadelClient
4
- module Auth
5
- # ClientCredentialsAuthenticator implements the client credentials flow.
6
- class ClientCredentialsAuthenticator < ZitadelClient::Auth::OAuthAuthenticator
7
- # Constructs a ClientCredentialsAuthenticator using client credentials flow.
8
- #
9
- # @param open_id [OpenId] The OpenId instance with OAuth endpoint info.
10
- # @param client_id [String] The OAuth client identifier.
11
- # @param client_secret [String] The OAuth client secret.
12
- # @param auth_scopes [Set<String>] The scope(s) for the token request.
13
- def initialize(open_id, client_id, client_secret, auth_scopes)
14
- # noinspection RubyArgCount
15
- super(open_id, auth_scopes, OAuth2::Client.new(client_id, client_secret, {
16
- site: open_id.host_endpoint,
17
- token_url: open_id.token_endpoint
18
- }))
19
- end
20
-
21
- # Returns a new builder for constructing a ClientCredentialsAuthenticator.
22
- #
23
- # @param host [String] The OAuth provider's base URL.
24
- # @param client_id [String] The OAuth client identifier.
25
- # @param client_secret [String] The OAuth client secret.
26
- # @return [ClientCredentialsAuthenticatorBuilder] A builder instance.
27
- def self.builder(host, client_id, client_secret)
28
- ClientCredentialsAuthenticatorBuilder.new(host, client_id, client_secret)
29
- end
30
-
31
- protected
32
-
33
- # Overrides the base get_grant to return client credentials grant parameters.
34
-
35
- # @return [OAuth2::AccessToken] A hash containing the grant type.
36
- def get_grant(client, auth_scopes)
37
- client.client_credentials.get_token({ scope: auth_scopes })
38
- end
39
-
40
- # Builder class for ClientCredentialsAuthenticator.
41
- class ClientCredentialsAuthenticatorBuilder < OAuthAuthenticatorBuilder
42
- # Initializes the builder with host, client ID, and client secret.
43
- #
44
- # @param host [String] The OAuth provider's base URL.
45
- # @param client_id [String] The OAuth client identifier.
46
- # @param client_secret [String] The OAuth client secret.
47
- def initialize(host, client_id, client_secret)
48
- # noinspection RubyArgCount
49
- super(host)
50
- @client_id = client_id
51
- @client_secret = client_secret
52
- end
53
-
54
- # Constructs and returns a ClientCredentialsAuthenticator using the configured parameters.
55
- #
56
- # @return [ClientCredentialsAuthenticator] A configured instance.
57
- def build
58
- ClientCredentialsAuthenticator.new(open_id, @client_id, @client_secret, auth_scopes)
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ZitadelClient
4
- module Auth
5
- ##
6
- # A simple authenticator that performs no authentication.
7
- #
8
- # This authenticator is useful for cases where no token or credentials are required.
9
- # It simply returns an empty dictionary for authentication headers.
10
- #
11
- class NoAuthAuthenticator < Authenticator
12
- ##
13
- # Initializes the NoAuthAuthenticator with a default host.
14
- #
15
- # @param host [String] the base URL for the service. Defaults to "http://localhost".
16
- #
17
- def initialize(host = 'http://localhost')
18
- super
19
- end
20
-
21
- protected
22
-
23
- ##
24
- # Returns an empty dictionary since no authentication is performed.
25
- #
26
- # @return [Hash{String => String}] an empty hash.
27
- #
28
- def auth_headers
29
- {}
30
- end
31
- end
32
- end
33
- end
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'time'
4
- require 'oauth2'
5
-
6
- OAuth2.configure do |config|
7
- # noinspection RubyResolve
8
- config.silence_extra_tokens_warning = true
9
- end
10
-
11
- module ZitadelClient
12
- module Auth
13
- ##
14
- # Base class for OAuth-based authentication using an OAuth2 client.
15
- #
16
- # Attributes:
17
- # open_id: An object providing OAuth endpoint information.
18
- # auth_session: An OAuth2Session instance used for fetching tokens.
19
- #
20
- class OAuthAuthenticator < Authenticator
21
- protected
22
-
23
- ##
24
- # Constructs an OAuthAuthenticator.
25
- #
26
- # @param open_id [OpenId] An object that must implement `get_host_endpoint` and `get_token_endpoint`.
27
- # @param auth_session [OAuth2Session] The OAuth2Session instance used for token requests.
28
- #
29
- def initialize(open_id, auth_scopes, auth_session)
30
- super(open_id.host_endpoint)
31
- @open_id = open_id
32
- @token = nil
33
- @auth_session = auth_session
34
- @auth_scopes = auth_scopes.to_a.join(' ')
35
- end
36
-
37
- ##
38
- # Returns the current access token, refreshing it if necessary.
39
- #
40
- # @return [String] The current access token.
41
- #
42
- def auth_token
43
- token = @token
44
- if token.nil? || token.expired?
45
- refresh_token
46
- token = @token
47
- end
48
-
49
- raise 'Token is nil after refresh' if token.nil?
50
-
51
- token.token
52
- end
53
-
54
- ##
55
- # Retrieves authentication headers.
56
- #
57
- # @return [Hash{String => String}] A hash containing the 'Authorization' header.
58
- #
59
- def auth_headers
60
- { 'Authorization' => "Bearer #{auth_token}" }
61
- end
62
-
63
- ##
64
- # Builds and returns a hash of grant parameters required for the token request.
65
- #
66
- # The base class will invoke this method by passing its OAuth2 client.
67
- # The subclass implementation should return the result of either:
68
- # client.client_credentials.get_token(scope: scopes)
69
- # or
70
- # client.assertion.get_token(claims)
71
- #
72
- # @param auth_client [OAuth2::Client] The OAuth2 client instance.
73
- # @param [String] auth_scopes
74
- # @return [OAuth2::AccessToken] A hash of parameters used to fetch a token.
75
- #
76
- def get_grant(auth_client, auth_scopes)
77
- # :nocov:
78
- raise NotImplementedError, "#{self.class}#get_grant must be implemented"
79
- # :nocov:
80
- end
81
-
82
- ##
83
- # Refreshes the access token using the OAuth flow.
84
- #
85
- # It uses `get_grant` to obtain all necessary parameters for the token request.
86
- #
87
- # @return [OAuth2::AccessToken] A new Token instance.
88
- # @raise [RuntimeError] if the token refresh fails.
89
- #
90
- def refresh_token
91
- @token = get_grant(@auth_session, @auth_scopes)
92
- rescue StandardError => e
93
- raise ZitadelError.new("Failed to refresh token: #{e.message}"), cause: e
94
- end
95
- end
96
- end
97
- end