auth0 6.3.0 → 6.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 (288) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +6 -5
  3. data/.fern/replay.lock +13 -1
  4. data/.version +1 -1
  5. data/CHANGELOG.md +15 -0
  6. data/examples/ruby-api/Gemfile.lock +1 -1
  7. data/lib/auth0/attack_protection/brute_force_protection/types/update_brute_force_settings_request_content.rb +2 -0
  8. data/lib/auth0/attack_protection/captcha_policies/client.rb +210 -0
  9. data/lib/auth0/attack_protection/captcha_policies/types/create_attack_protection_captcha_policy_request_content.rb +21 -0
  10. data/lib/auth0/attack_protection/captcha_policies/types/update_attack_protection_captcha_policy_request_content.rb +23 -0
  11. data/lib/auth0/attack_protection/client.rb +5 -0
  12. data/lib/auth0/client.rb +5 -0
  13. data/lib/auth0/client_grants/client.rb +72 -0
  14. data/lib/auth0/client_grants/types/search_client_grants_request_parameters.rb +23 -0
  15. data/lib/auth0/client_profiles/client.rb +233 -0
  16. data/lib/auth0/client_profiles/types/create_client_profile_request_content.rb +17 -0
  17. data/lib/auth0/client_profiles/types/list_client_profiles_request_parameters.rb +13 -0
  18. data/lib/auth0/client_profiles/types/update_client_profile_request_content.rb +19 -0
  19. data/lib/auth0/clients/client.rb +81 -0
  20. data/lib/auth0/clients/types/create_client_request_content.rb +4 -0
  21. data/lib/auth0/clients/types/search_clients_request_parameters.rb +23 -0
  22. data/lib/auth0/clients/types/update_client_request_content.rb +4 -0
  23. data/lib/auth0/email_templates/client.rb +14 -2
  24. data/lib/auth0/experimentation/client.rb +10 -0
  25. data/lib/auth0/experimentation/experiments/client.rb +258 -0
  26. data/lib/auth0/experimentation/experiments/types/create_experiment_request_content.rb +27 -0
  27. data/lib/auth0/experimentation/experiments/types/list_experiments_request_parameters.rb +21 -0
  28. data/lib/auth0/experimentation/experiments/types/update_experiment_request_parameters.rb +27 -0
  29. data/lib/auth0/experimentation/feature_flags/client.rb +235 -0
  30. data/lib/auth0/experimentation/feature_flags/types/create_feature_flag_request_content.rb +17 -0
  31. data/lib/auth0/experimentation/feature_flags/types/list_feature_flags_request_parameters.rb +19 -0
  32. data/lib/auth0/experimentation/feature_flags/types/update_feature_flag_request_content.rb +21 -0
  33. data/lib/auth0/experimentation/feature_flags/variations/client.rb +230 -0
  34. data/lib/auth0/experimentation/feature_flags/variations/types/create_variation_request_content.rb +21 -0
  35. data/lib/auth0/experimentation/feature_flags/variations/types/update_variation_request_content.rb +23 -0
  36. data/lib/auth0/experimentation/segments/client.rb +228 -0
  37. data/lib/auth0/experimentation/segments/types/create_segment_request_content.rb +17 -0
  38. data/lib/auth0/experimentation/segments/types/list_segments_request_parameters.rb +17 -0
  39. data/lib/auth0/experimentation/segments/types/update_segment_request_content.rb +21 -0
  40. data/lib/auth0/internal/types/model.rb +15 -6
  41. data/lib/auth0/organizations/client.rb +0 -5
  42. data/lib/auth0/resource_servers/types/create_resource_server_request_content.rb +2 -0
  43. data/lib/auth0/resource_servers/types/update_resource_server_request_content.rb +2 -0
  44. data/lib/auth0/roles/client.rb +2 -1
  45. data/lib/auth0/tenants/settings/types/update_tenant_settings_request_content.rb +4 -0
  46. data/lib/auth0/types/allocation_item.rb +27 -0
  47. data/lib/auth0/types/allocation_request_item.rb +19 -0
  48. data/lib/auth0/types/{organization_deletion_behavior_enum.rb → allocation_strategy_enum.rb} +3 -3
  49. data/lib/auth0/types/async_approval_notifications_channels_enum.rb +1 -0
  50. data/lib/auth0/types/attack_protection_captcha_policy.rb +24 -0
  51. data/lib/auth0/types/attack_protection_captcha_policy_action.rb +24 -0
  52. data/lib/auth0/types/attack_protection_captcha_policy_action_input.rb +24 -0
  53. data/lib/auth0/types/attack_protection_captcha_policy_match.rb +12 -0
  54. data/lib/auth0/types/authentication_flow_enum.rb +16 -0
  55. data/lib/auth0/types/brute_force_protection_form_submission_mode_enum.rb +12 -0
  56. data/lib/auth0/types/captcha_active_provider_enum.rb +17 -0
  57. data/lib/auth0/types/captcha_policy_action_arkose.rb +16 -0
  58. data/lib/auth0/types/captcha_policy_action_arkose_input.rb +18 -0
  59. data/lib/auth0/types/captcha_policy_action_auth_challenge.rb +10 -0
  60. data/lib/auth0/types/captcha_policy_action_friendly_captcha.rb +10 -0
  61. data/lib/auth0/types/captcha_policy_action_friendly_captcha_input.rb +12 -0
  62. data/lib/auth0/types/captcha_policy_action_hcaptcha.rb +10 -0
  63. data/lib/auth0/types/captcha_policy_action_hcaptcha_input.rb +12 -0
  64. data/lib/auth0/types/captcha_policy_action_recaptcha_enterprise.rb +12 -0
  65. data/lib/auth0/types/captcha_policy_action_recaptcha_enterprise_input.rb +14 -0
  66. data/lib/auth0/types/captcha_policy_action_recaptcha_v2.rb +10 -0
  67. data/lib/auth0/types/captcha_policy_action_recaptcha_v2input.rb +12 -0
  68. data/lib/auth0/types/captcha_policy_action_simple_captcha.rb +8 -0
  69. data/lib/auth0/types/cimd_external_metadata_created_by_enum.rb +12 -0
  70. data/lib/auth0/types/client.rb +4 -0
  71. data/lib/auth0/types/client_anonymous_session_transfer_network_binding_enum.rb +13 -0
  72. data/lib/auth0/types/client_external_metadata_status_enum.rb +12 -0
  73. data/lib/auth0/types/client_grant_sort_field_enum.rb +12 -0
  74. data/lib/auth0/types/client_oidc_backchannel_logout_initiators_enum.rb +1 -0
  75. data/lib/auth0/types/client_oidc_support_allowed_scopes_enum.rb +14 -0
  76. data/lib/auth0/types/client_oidc_support_patch.rb +14 -0
  77. data/lib/auth0/types/client_oidc_support_post.rb +15 -0
  78. data/lib/auth0/types/client_profile.rb +21 -0
  79. data/lib/auth0/types/client_profile_apply_policy.rb +12 -0
  80. data/lib/auth0/types/client_profile_apply_policy_external_metadata_created_by_enum.rb +11 -0
  81. data/lib/auth0/types/client_profile_apply_policy_external_metadata_type_enum.rb +11 -0
  82. data/lib/auth0/types/client_profile_client_configuration.rb +18 -0
  83. data/lib/auth0/types/client_profile_client_configuration_organization_discovery_method_enum.rb +12 -0
  84. data/lib/auth0/types/client_profile_client_configuration_organization_discovery_methods.rb +10 -0
  85. data/lib/auth0/types/client_profile_client_configuration_organization_require_behavior.rb +10 -0
  86. data/lib/auth0/types/client_profile_client_configuration_organization_require_behavior_enum.rb +13 -0
  87. data/lib/auth0/types/client_profile_client_configuration_organization_usage.rb +10 -0
  88. data/lib/auth0/types/{connection_deletion_behavior_enum.rb → client_profile_client_configuration_organization_usage_enum.rb} +3 -2
  89. data/lib/auth0/types/client_profile_client_configuration_refresh_token.rb +14 -0
  90. data/lib/auth0/types/client_profile_client_configuration_require_proof_of_possession.rb +10 -0
  91. data/lib/auth0/types/client_profile_description.rb +23 -0
  92. data/lib/auth0/types/client_profile_id.rb +23 -0
  93. data/lib/auth0/types/client_profile_name.rb +23 -0
  94. data/lib/auth0/types/client_profile_refresh_token_idle_token_lifetime.rb +10 -0
  95. data/lib/auth0/types/client_profile_refresh_token_leeway.rb +10 -0
  96. data/lib/auth0/types/client_profile_refresh_token_token_lifetime.rb +10 -0
  97. data/lib/auth0/types/client_search_response.rb +139 -0
  98. data/lib/auth0/types/client_sort_field_enum.rb +12 -0
  99. data/lib/auth0/types/connection_profile_provisioning.rb +2 -0
  100. data/lib/auth0/types/connection_profile_provisioning_google_workspace.rb +10 -0
  101. data/lib/auth0/types/connection_profile_provisioning_google_workspace_sync_users.rb +23 -0
  102. data/lib/auth0/types/connection_profile_strategy_overrides_provisioning.rb +2 -0
  103. data/lib/auth0/types/connection_response_common.rb +6 -6
  104. data/lib/auth0/types/connection_response_content_ad.rb +2 -2
  105. data/lib/auth0/types/connection_response_content_adfs.rb +2 -2
  106. data/lib/auth0/types/connection_response_content_amazon.rb +2 -2
  107. data/lib/auth0/types/connection_response_content_apple.rb +2 -2
  108. data/lib/auth0/types/connection_response_content_auth0.rb +2 -2
  109. data/lib/auth0/types/connection_response_content_auth0oidc.rb +2 -2
  110. data/lib/auth0/types/connection_response_content_azure_ad.rb +2 -2
  111. data/lib/auth0/types/connection_response_content_baidu.rb +2 -2
  112. data/lib/auth0/types/connection_response_content_bitbucket.rb +2 -2
  113. data/lib/auth0/types/connection_response_content_bitly.rb +2 -2
  114. data/lib/auth0/types/connection_response_content_box.rb +2 -2
  115. data/lib/auth0/types/connection_response_content_custom.rb +2 -2
  116. data/lib/auth0/types/connection_response_content_daccount.rb +2 -2
  117. data/lib/auth0/types/connection_response_content_dropbox.rb +2 -2
  118. data/lib/auth0/types/connection_response_content_dwolla.rb +2 -2
  119. data/lib/auth0/types/connection_response_content_email.rb +2 -2
  120. data/lib/auth0/types/connection_response_content_evernote.rb +2 -2
  121. data/lib/auth0/types/connection_response_content_evernote_sandbox.rb +2 -2
  122. data/lib/auth0/types/connection_response_content_exact.rb +2 -2
  123. data/lib/auth0/types/connection_response_content_facebook.rb +2 -2
  124. data/lib/auth0/types/connection_response_content_fitbit.rb +2 -2
  125. data/lib/auth0/types/connection_response_content_git_hub.rb +2 -2
  126. data/lib/auth0/types/connection_response_content_google_apps.rb +2 -2
  127. data/lib/auth0/types/connection_response_content_google_o_auth2.rb +2 -2
  128. data/lib/auth0/types/connection_response_content_instagram.rb +2 -2
  129. data/lib/auth0/types/connection_response_content_ip.rb +2 -2
  130. data/lib/auth0/types/connection_response_content_line.rb +2 -2
  131. data/lib/auth0/types/connection_response_content_linkedin.rb +2 -2
  132. data/lib/auth0/types/connection_response_content_o_auth1.rb +2 -2
  133. data/lib/auth0/types/connection_response_content_o_auth2.rb +2 -2
  134. data/lib/auth0/types/connection_response_content_office365.rb +2 -2
  135. data/lib/auth0/types/connection_response_content_oidc.rb +2 -2
  136. data/lib/auth0/types/connection_response_content_okta.rb +2 -2
  137. data/lib/auth0/types/connection_response_content_paypal.rb +2 -2
  138. data/lib/auth0/types/connection_response_content_paypal_sandbox.rb +2 -2
  139. data/lib/auth0/types/connection_response_content_ping_federate.rb +2 -2
  140. data/lib/auth0/types/connection_response_content_planning_center.rb +2 -2
  141. data/lib/auth0/types/connection_response_content_salesforce.rb +2 -2
  142. data/lib/auth0/types/connection_response_content_salesforce_community.rb +2 -2
  143. data/lib/auth0/types/connection_response_content_salesforce_sandbox.rb +2 -2
  144. data/lib/auth0/types/connection_response_content_saml.rb +2 -2
  145. data/lib/auth0/types/connection_response_content_sharepoint.rb +2 -2
  146. data/lib/auth0/types/connection_response_content_shop.rb +2 -2
  147. data/lib/auth0/types/connection_response_content_shopify.rb +2 -2
  148. data/lib/auth0/types/connection_response_content_sms.rb +2 -2
  149. data/lib/auth0/types/connection_response_content_soundcloud.rb +2 -2
  150. data/lib/auth0/types/connection_response_content_thirty_seven_signals.rb +2 -2
  151. data/lib/auth0/types/connection_response_content_twitter.rb +2 -2
  152. data/lib/auth0/types/connection_response_content_untappd.rb +2 -2
  153. data/lib/auth0/types/connection_response_content_vkontakte.rb +2 -2
  154. data/lib/auth0/types/connection_response_content_weibo.rb +2 -2
  155. data/lib/auth0/types/connection_response_content_windows_live.rb +2 -2
  156. data/lib/auth0/types/connection_response_content_wordpress.rb +2 -2
  157. data/lib/auth0/types/connection_response_content_yahoo.rb +2 -2
  158. data/lib/auth0/types/connection_response_content_yandex.rb +2 -2
  159. data/lib/auth0/types/create_client_response_content.rb +4 -0
  160. data/lib/auth0/types/create_experiment_response_content.rb +45 -0
  161. data/lib/auth0/types/create_feature_flag_parameters.rb +23 -0
  162. data/lib/auth0/types/create_feature_flag_response_content.rb +23 -0
  163. data/lib/auth0/types/create_resource_server_response_content.rb +2 -0
  164. data/lib/auth0/types/create_segment_response_content.rb +23 -0
  165. data/lib/auth0/types/create_variation_response_content.rb +21 -0
  166. data/lib/auth0/types/default_config_enum.rb +12 -0
  167. data/lib/auth0/types/enabled_features_enum.rb +1 -0
  168. data/lib/auth0/types/event_stream_cloud_event_connection_created_cloud_event.rb +1 -1
  169. data/lib/auth0/types/event_stream_cloud_event_connection_deleted_cloud_event.rb +1 -1
  170. data/lib/auth0/types/event_stream_cloud_event_connection_updated_cloud_event.rb +1 -1
  171. data/lib/auth0/types/event_stream_cloud_event_group_created_cloud_event.rb +1 -1
  172. data/lib/auth0/types/event_stream_cloud_event_group_deleted_cloud_event.rb +1 -1
  173. data/lib/auth0/types/event_stream_cloud_event_group_member_added_cloud_event.rb +1 -1
  174. data/lib/auth0/types/event_stream_cloud_event_group_member_deleted_cloud_event.rb +1 -1
  175. data/lib/auth0/types/event_stream_cloud_event_group_role_assigned_cloud_event.rb +1 -1
  176. data/lib/auth0/types/event_stream_cloud_event_group_role_deleted_cloud_event.rb +1 -1
  177. data/lib/auth0/types/event_stream_cloud_event_group_updated_cloud_event.rb +1 -1
  178. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_cloud_event.rb +1 -1
  179. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object.rb +2 -0
  180. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level.rb +18 -0
  181. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level0enum.rb +11 -0
  182. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level1enum.rb +11 -0
  183. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level2enum.rb +11 -0
  184. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level3enum.rb +11 -0
  185. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object.rb +2 -0
  186. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_1dbe67.rb +11 -0
  187. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_4de563.rb +11 -0
  188. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_7087fd.rb +11 -0
  189. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_a4ce06.rb +11 -0
  190. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_level.rb +18 -0
  191. data/lib/auth0/types/event_stream_cloud_event_org_connection_removed_cloud_event.rb +1 -1
  192. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_cloud_event.rb +1 -1
  193. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object.rb +2 -0
  194. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level.rb +18 -0
  195. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level0enum.rb +11 -0
  196. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level1enum.rb +11 -0
  197. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level2enum.rb +11 -0
  198. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level3enum.rb +11 -0
  199. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object.rb +2 -0
  200. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_3669df.rb +11 -0
  201. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_55f897.rb +11 -0
  202. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_66926d.rb +11 -0
  203. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_88dadc.rb +11 -0
  204. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_level.rb +18 -0
  205. data/lib/auth0/types/event_stream_cloud_event_org_created_cloud_event.rb +1 -1
  206. data/lib/auth0/types/event_stream_cloud_event_org_deleted_cloud_event.rb +1 -1
  207. data/lib/auth0/types/event_stream_cloud_event_org_group_role_assigned_cloud_event.rb +1 -1
  208. data/lib/auth0/types/event_stream_cloud_event_org_group_role_deleted_cloud_event.rb +1 -1
  209. data/lib/auth0/types/event_stream_cloud_event_org_member_added_cloud_event.rb +1 -1
  210. data/lib/auth0/types/event_stream_cloud_event_org_member_deleted_cloud_event.rb +1 -1
  211. data/lib/auth0/types/event_stream_cloud_event_org_member_role_assigned_cloud_event.rb +1 -1
  212. data/lib/auth0/types/event_stream_cloud_event_org_member_role_deleted_cloud_event.rb +1 -1
  213. data/lib/auth0/types/event_stream_cloud_event_org_updated_cloud_event.rb +1 -1
  214. data/lib/auth0/types/event_stream_cloud_event_user_created_cloud_event.rb +1 -1
  215. data/lib/auth0/types/event_stream_cloud_event_user_deleted_cloud_event.rb +1 -1
  216. data/lib/auth0/types/event_stream_cloud_event_user_updated_cloud_event.rb +1 -1
  217. data/lib/auth0/types/experiment_list_item.rb +45 -0
  218. data/lib/auth0/types/experiment_status_enum.rb +15 -0
  219. data/lib/auth0/types/experiment_transition_status_enum.rb +14 -0
  220. data/lib/auth0/types/experiment_validation_error.rb +11 -0
  221. data/lib/auth0/types/feature_flag.rb +23 -0
  222. data/lib/auth0/types/feature_flag_config_param.rb +13 -0
  223. data/lib/auth0/types/feature_flag_config_param_type_enum.rb +15 -0
  224. data/lib/auth0/types/feature_flag_config_params.rb +23 -0
  225. data/lib/auth0/types/feature_flag_status_enum.rb +13 -0
  226. data/lib/auth0/types/feature_flag_type_enum.rb +12 -0
  227. data/lib/auth0/types/get_brute_force_settings_response_content.rb +2 -0
  228. data/lib/auth0/types/get_client_response_content.rb +4 -0
  229. data/lib/auth0/types/get_experiment_response_content.rb +45 -0
  230. data/lib/auth0/types/get_feature_flag_response_content.rb +23 -0
  231. data/lib/auth0/types/get_resource_server_response_content.rb +2 -0
  232. data/lib/auth0/types/get_segment_response_content.rb +23 -0
  233. data/lib/auth0/types/get_tenant_settings_response_content.rb +4 -0
  234. data/lib/auth0/types/get_variation_response_content.rb +21 -0
  235. data/lib/auth0/types/list_attack_protection_captcha_policies_response_content.rb +23 -0
  236. data/lib/auth0/types/list_client_profiles_paginated_response_content.rb +12 -0
  237. data/lib/auth0/types/list_experiments_response_content.rb +11 -0
  238. data/lib/auth0/types/list_feature_flags_response_content.rb +11 -0
  239. data/lib/auth0/types/list_segments_response_content.rb +11 -0
  240. data/lib/auth0/types/list_variations_response_content.rb +9 -0
  241. data/lib/auth0/types/oauth_scope.rb +7 -1
  242. data/lib/auth0/types/preview_cimd_metadata_response_content.rb +2 -0
  243. data/lib/auth0/types/resource_server.rb +2 -0
  244. data/lib/auth0/types/resource_server_search_response.rb +2 -0
  245. data/lib/auth0/types/role_owner_id.rb +23 -0
  246. data/lib/auth0/types/role_owner_id_filter.rb +23 -0
  247. data/lib/auth0/types/rotate_client_secret_response_content.rb +4 -0
  248. data/lib/auth0/types/search_client_grants_response_content.rb +11 -0
  249. data/lib/auth0/types/search_clients_response_content.rb +11 -0
  250. data/lib/auth0/types/search_organization.rb +0 -2
  251. data/lib/auth0/types/segment.rb +23 -0
  252. data/lib/auth0/types/segment_contains_expression.rb +9 -0
  253. data/lib/auth0/types/segment_ends_with_expression.rb +9 -0
  254. data/lib/auth0/types/segment_exists_expression.rb +9 -0
  255. data/lib/auth0/types/segment_match_conditions.rb +30 -0
  256. data/lib/auth0/types/segment_match_expression.rb +19 -0
  257. data/lib/auth0/types/segment_not_match_conditions.rb +30 -0
  258. data/lib/auth0/types/segment_rule.rb +11 -0
  259. data/lib/auth0/types/segment_starts_with_expression.rb +9 -0
  260. data/lib/auth0/types/segment_status_enum.rb +12 -0
  261. data/lib/auth0/types/segment_type_enum.rb +12 -0
  262. data/lib/auth0/types/segment_type_filter_enum.rb +12 -0
  263. data/lib/auth0/types/system_role_owner_id.rb +11 -0
  264. data/lib/auth0/types/update_brute_force_settings_response_content.rb +2 -0
  265. data/lib/auth0/types/update_client_response_content.rb +4 -0
  266. data/lib/auth0/types/update_experiment_response_content.rb +45 -0
  267. data/lib/auth0/types/update_feature_flag_parameters.rb +23 -0
  268. data/lib/auth0/types/update_feature_flag_response_content.rb +23 -0
  269. data/lib/auth0/types/update_resource_server_response_content.rb +2 -0
  270. data/lib/auth0/types/update_segment_response_content.rb +23 -0
  271. data/lib/auth0/types/update_tenant_settings_response_content.rb +4 -0
  272. data/lib/auth0/types/update_variation_overrides_map.rb +23 -0
  273. data/lib/auth0/types/update_variation_response_content.rb +21 -0
  274. data/lib/auth0/types/validate_experiment_response_content.rb +11 -0
  275. data/lib/auth0/types/variation.rb +21 -0
  276. data/lib/auth0/types/variation_overrides_map.rb +23 -0
  277. data/lib/auth0/users/client.rb +24 -17
  278. data/lib/auth0/version.rb +1 -1
  279. data/lib/auth0.rb +148 -10
  280. data/wiremock/wiremock-mappings.json +1376 -250
  281. metadata +149 -11
  282. data/lib/auth0/organizations/organization_template/client.rb +0 -132
  283. data/lib/auth0/types/organization_template.rb +0 -39
  284. data/lib/auth0/types/organization_template_allowed_strategy_enum.rb +0 -17
  285. data/lib/auth0/types/organization_template_role_visibility_enum.rb +0 -13
  286. data/lib/auth0/types/organization_template_role_visibility_override.rb +0 -12
  287. data/lib/auth0/types/organization_template_role_visibility_policy.rb +0 -12
  288. data/lib/auth0/types/organization_template_use_for_organization_discovery.rb +0 -12
@@ -11,6 +11,226 @@ module Auth0
11
11
  @client = client
12
12
  end
13
13
 
14
+ # Retrieve a paginated list of experiments for the tenant, with optional filters.
15
+ #
16
+ # @param request_options [Hash]
17
+ # @param params [Hash]
18
+ # @option request_options [String] :base_url
19
+ # @option request_options [Hash{String => Object}] :additional_headers
20
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
21
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
22
+ # @option request_options [Integer] :timeout_in_seconds
23
+ # @option params [String, nil] :from
24
+ # @option params [Integer, nil] :take
25
+ # @option params [Auth0::Types::ExperimentStatusEnum, nil] :status
26
+ # @option params [String, nil] :authentication_flow
27
+ # @option params [String, nil] :feature_flag_id
28
+ #
29
+ # @example
30
+ # client.experimentation.experiments.list(
31
+ # from: "from",
32
+ # take: 1,
33
+ # status: "draft",
34
+ # authentication_flow: "authentication_flow",
35
+ # feature_flag_id: "feature_flag_id"
36
+ # )
37
+ #
38
+ # @return [Auth0::Types::ListExperimentsResponseContent]
39
+ def list(request_options: {}, **params)
40
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
41
+ query_params = {}
42
+ query_params["from"] = params[:from] if params.key?(:from)
43
+ query_params["take"] = params.fetch(:take, 50)
44
+ query_params["status"] = params[:status] if params.key?(:status)
45
+ query_params["authentication_flow"] = params[:authentication_flow] if params.key?(:authentication_flow)
46
+ query_params["feature_flag_id"] = params[:feature_flag_id] if params.key?(:feature_flag_id)
47
+
48
+ Auth0::Internal::CursorItemIterator.new(
49
+ cursor_field: :next_,
50
+ item_field: :experiments,
51
+ initial_cursor: query_params["from"]
52
+ ) do |next_cursor|
53
+ query_params["from"] = next_cursor
54
+ request = Auth0::Internal::JSON::Request.new(
55
+ base_url: request_options[:base_url],
56
+ method: "GET",
57
+ path: "experimentation/experiments",
58
+ query: query_params,
59
+ request_options: request_options
60
+ )
61
+ begin
62
+ response = @client.send(request)
63
+ rescue Net::HTTPRequestTimeout
64
+ raise Auth0::Errors::TimeoutError
65
+ end
66
+ code = response.code.to_i
67
+ if code.between?(200, 299)
68
+ parsed_response = (response.body.to_s.empty? ? nil : Auth0::Types::ListExperimentsResponseContent.load(response.body))
69
+ [parsed_response, response]
70
+ else
71
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
72
+ raise error_class.new(response.body, code: code)
73
+ end
74
+ end
75
+ end
76
+
77
+ # Create a new experiment for A/B testing.
78
+ #
79
+ # @param request_options [Hash]
80
+ # @param params [Auth0::Experimentation::Experiments::Types::CreateExperimentRequestContent]
81
+ # @option request_options [String] :base_url
82
+ # @option request_options [Hash{String => Object}] :additional_headers
83
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
84
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
85
+ # @option request_options [Integer] :timeout_in_seconds
86
+ #
87
+ # @example
88
+ # client.experimentation.experiments.create(
89
+ # name: "name",
90
+ # feature_flag_id: "feature_flag_id",
91
+ # authentication_flow: "authentication"
92
+ # )
93
+ #
94
+ # @return [Auth0::Types::CreateExperimentResponseContent]
95
+ def create(request_options: {}, **params)
96
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
97
+ request = Auth0::Internal::JSON::Request.new(
98
+ base_url: request_options[:base_url],
99
+ method: "POST",
100
+ path: "experimentation/experiments",
101
+ body: Auth0::Experimentation::Experiments::Types::CreateExperimentRequestContent.new(params).to_h,
102
+ request_options: request_options
103
+ )
104
+ begin
105
+ response = @client.send(request)
106
+ rescue Net::HTTPRequestTimeout
107
+ raise Auth0::Errors::TimeoutError
108
+ end
109
+ code = response.code.to_i
110
+ if code.between?(200, 299)
111
+ (response.body.to_s.empty? ? nil : Auth0::Types::CreateExperimentResponseContent.load(response.body))
112
+ else
113
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
114
+ raise error_class.new(response.body, code: code)
115
+ end
116
+ end
117
+
118
+ # Retrieve a single experiment with its allocations by ID.
119
+ #
120
+ # @param request_options [Hash]
121
+ # @param params [Hash]
122
+ # @option request_options [String] :base_url
123
+ # @option request_options [Hash{String => Object}] :additional_headers
124
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
125
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
126
+ # @option request_options [Integer] :timeout_in_seconds
127
+ # @option params [String] :id
128
+ #
129
+ # @example
130
+ # client.experimentation.experiments.get(id: "id")
131
+ #
132
+ # @return [Auth0::Types::GetExperimentResponseContent]
133
+ def get(request_options: {}, **params)
134
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
135
+ request = Auth0::Internal::JSON::Request.new(
136
+ base_url: request_options[:base_url],
137
+ method: "GET",
138
+ path: "experimentation/experiments/#{URI.encode_uri_component(params[:id].to_s)}",
139
+ request_options: request_options
140
+ )
141
+ begin
142
+ response = @client.send(request)
143
+ rescue Net::HTTPRequestTimeout
144
+ raise Auth0::Errors::TimeoutError
145
+ end
146
+ code = response.code.to_i
147
+ if code.between?(200, 299)
148
+ (response.body.to_s.empty? ? nil : Auth0::Types::GetExperimentResponseContent.load(response.body))
149
+ else
150
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
151
+ raise error_class.new(response.body, code: code)
152
+ end
153
+ end
154
+
155
+ # Permanently delete an experiment and its allocations by ID. Active experiments cannot be deleted; pause or
156
+ # complete first. Idempotent: returns 204 even if the experiment does not exist.
157
+ #
158
+ # @param request_options [Hash]
159
+ # @param params [Hash]
160
+ # @option request_options [String] :base_url
161
+ # @option request_options [Hash{String => Object}] :additional_headers
162
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
163
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
164
+ # @option request_options [Integer] :timeout_in_seconds
165
+ # @option params [String] :id
166
+ #
167
+ # @example
168
+ # client.experimentation.experiments.delete(id: "id")
169
+ #
170
+ # @return [untyped]
171
+ def delete(request_options: {}, **params)
172
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
173
+ request = Auth0::Internal::JSON::Request.new(
174
+ base_url: request_options[:base_url],
175
+ method: "DELETE",
176
+ path: "experimentation/experiments/#{URI.encode_uri_component(params[:id].to_s)}",
177
+ request_options: request_options
178
+ )
179
+ begin
180
+ response = @client.send(request)
181
+ rescue Net::HTTPRequestTimeout
182
+ raise Auth0::Errors::TimeoutError
183
+ end
184
+ code = response.code.to_i
185
+ return if code.between?(200, 299)
186
+
187
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
188
+ raise error_class.new(response.body, code: code)
189
+ end
190
+
191
+ # Partially update an experiment by ID. Only provided fields are updated. Providing allocations replaces the
192
+ # entire allocations set.
193
+ #
194
+ # @param request_options [Hash]
195
+ # @param params [Auth0::Experimentation::Experiments::Types::UpdateExperimentRequestParameters]
196
+ # @option request_options [String] :base_url
197
+ # @option request_options [Hash{String => Object}] :additional_headers
198
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
199
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
200
+ # @option request_options [Integer] :timeout_in_seconds
201
+ # @option params [String] :id
202
+ #
203
+ # @example
204
+ # client.experimentation.experiments.update(id: "id")
205
+ #
206
+ # @return [Auth0::Types::UpdateExperimentResponseContent]
207
+ def update(request_options: {}, **params)
208
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
209
+ request_data = Auth0::Experimentation::Experiments::Types::UpdateExperimentRequestParameters.new(params).to_h
210
+ non_body_param_names = %w[id]
211
+ body = request_data.except(*non_body_param_names)
212
+
213
+ request = Auth0::Internal::JSON::Request.new(
214
+ base_url: request_options[:base_url],
215
+ method: "PATCH",
216
+ path: "experimentation/experiments/#{URI.encode_uri_component(params[:id].to_s)}",
217
+ body: body,
218
+ request_options: request_options
219
+ )
220
+ begin
221
+ response = @client.send(request)
222
+ rescue Net::HTTPRequestTimeout
223
+ raise Auth0::Errors::TimeoutError
224
+ end
225
+ code = response.code.to_i
226
+ if code.between?(200, 299)
227
+ (response.body.to_s.empty? ? nil : Auth0::Types::UpdateExperimentResponseContent.load(response.body))
228
+ else
229
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
230
+ raise error_class.new(response.body, code: code)
231
+ end
232
+ end
233
+
14
234
  # Increments the current ramp index to the requested target level. Up-only: the target must be the immediate
15
235
  # next level in the schedule. Idempotent: calling with the current level returns success without writing
16
236
  # anything.
@@ -57,6 +277,44 @@ module Auth0
57
277
  raise error_class.new(response.body, code: code)
58
278
  end
59
279
  end
280
+
281
+ # Checks whether an experiment is ready to be activated. Returns is_valid boolean and an errors array describing
282
+ # any blockers. Read-only; no state is modified.
283
+ #
284
+ # @param request_options [Hash]
285
+ # @param params [Hash]
286
+ # @option request_options [String] :base_url
287
+ # @option request_options [Hash{String => Object}] :additional_headers
288
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
289
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
290
+ # @option request_options [Integer] :timeout_in_seconds
291
+ # @option params [String] :id
292
+ #
293
+ # @example
294
+ # client.experimentation.experiments.validate(id: "id")
295
+ #
296
+ # @return [Auth0::Types::ValidateExperimentResponseContent]
297
+ def validate(request_options: {}, **params)
298
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
299
+ request = Auth0::Internal::JSON::Request.new(
300
+ base_url: request_options[:base_url],
301
+ method: "POST",
302
+ path: "experimentation/experiments/#{URI.encode_uri_component(params[:id].to_s)}/validate",
303
+ request_options: request_options
304
+ )
305
+ begin
306
+ response = @client.send(request)
307
+ rescue Net::HTTPRequestTimeout
308
+ raise Auth0::Errors::TimeoutError
309
+ end
310
+ code = response.code.to_i
311
+ if code.between?(200, 299)
312
+ (response.body.to_s.empty? ? nil : Auth0::Types::ValidateExperimentResponseContent.load(response.body))
313
+ else
314
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
315
+ raise error_class.new(response.body, code: code)
316
+ end
317
+ end
60
318
  end
61
319
  end
62
320
  end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Experimentation
5
+ module Experiments
6
+ module Types
7
+ class CreateExperimentRequestContent < Internal::Types::Model
8
+ field :name, -> { String }, optional: false, nullable: false
9
+
10
+ field :description, -> { String }, optional: true, nullable: false
11
+
12
+ field :feature_flag_id, -> { String }, optional: false, nullable: false
13
+
14
+ field :authentication_flow, -> { Auth0::Types::AuthenticationFlowEnum }, optional: false, nullable: false
15
+
16
+ field :default_config, -> { Auth0::Types::DefaultConfigEnum }, optional: true, nullable: false
17
+
18
+ field :allocation_strategy, -> { Auth0::Types::AllocationStrategyEnum }, optional: true, nullable: false
19
+
20
+ field :allocations, -> { Internal::Types::Array[Auth0::Types::AllocationRequestItem] }, optional: true, nullable: false
21
+
22
+ field :levels, -> { Internal::Types::Array[Integer] }, optional: true, nullable: false
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Experimentation
5
+ module Experiments
6
+ module Types
7
+ class ListExperimentsRequestParameters < Internal::Types::Model
8
+ field :from, -> { String }, optional: true, nullable: false
9
+
10
+ field :take, -> { Integer }, optional: true, nullable: false
11
+
12
+ field :status, -> { Auth0::Types::ExperimentStatusEnum }, optional: true, nullable: false
13
+
14
+ field :authentication_flow, -> { String }, optional: true, nullable: false
15
+
16
+ field :feature_flag_id, -> { String }, optional: true, nullable: false
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Experimentation
5
+ module Experiments
6
+ module Types
7
+ class UpdateExperimentRequestParameters < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+
10
+ field :name, -> { String }, optional: true, nullable: false
11
+
12
+ field :description, -> { String }, optional: true, nullable: false
13
+
14
+ field :authentication_flow, -> { Auth0::Types::AuthenticationFlowEnum }, optional: true, nullable: false
15
+
16
+ field :allocations, -> { Internal::Types::Array[Auth0::Types::AllocationRequestItem] }, optional: true, nullable: false
17
+
18
+ field :default_config, -> { Auth0::Types::DefaultConfigEnum }, optional: true, nullable: false
19
+
20
+ field :levels, -> { Internal::Types::Array[Integer] }, optional: true, nullable: false
21
+
22
+ field :status, -> { Auth0::Types::ExperimentTransitionStatusEnum }, optional: true, nullable: false
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,235 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Experimentation
5
+ module FeatureFlags
6
+ class Client
7
+ # @param client [Auth0::Internal::Http::RawClient]
8
+ #
9
+ # @return [void]
10
+ def initialize(client:)
11
+ @client = client
12
+ end
13
+
14
+ # Retrieve a paginated list of feature flags for the tenant.
15
+ #
16
+ # @param request_options [Hash]
17
+ # @param params [Hash]
18
+ # @option request_options [String] :base_url
19
+ # @option request_options [Hash{String => Object}] :additional_headers
20
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
21
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
22
+ # @option request_options [Integer] :timeout_in_seconds
23
+ # @option params [String, nil] :from
24
+ # @option params [Integer, nil] :take
25
+ # @option params [Auth0::Types::FeatureFlagTypeEnum, nil] :type
26
+ # @option params [Auth0::Types::FeatureFlagStatusEnum, nil] :status
27
+ #
28
+ # @example
29
+ # client.experimentation.feature_flags.list(
30
+ # from: "from",
31
+ # take: 1,
32
+ # type: "auth0",
33
+ # status: "draft"
34
+ # )
35
+ #
36
+ # @return [Auth0::Types::ListFeatureFlagsResponseContent]
37
+ def list(request_options: {}, **params)
38
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
39
+ query_params = {}
40
+ query_params["from"] = params[:from] if params.key?(:from)
41
+ query_params["take"] = params.fetch(:take, 50)
42
+ query_params["type"] = params[:type] if params.key?(:type)
43
+ query_params["status"] = params[:status] if params.key?(:status)
44
+
45
+ Auth0::Internal::CursorItemIterator.new(
46
+ cursor_field: :next_,
47
+ item_field: :feature_flags,
48
+ initial_cursor: query_params["from"]
49
+ ) do |next_cursor|
50
+ query_params["from"] = next_cursor
51
+ request = Auth0::Internal::JSON::Request.new(
52
+ base_url: request_options[:base_url],
53
+ method: "GET",
54
+ path: "experimentation/feature-flags",
55
+ query: query_params,
56
+ request_options: request_options
57
+ )
58
+ begin
59
+ response = @client.send(request)
60
+ rescue Net::HTTPRequestTimeout
61
+ raise Auth0::Errors::TimeoutError
62
+ end
63
+ code = response.code.to_i
64
+ if code.between?(200, 299)
65
+ parsed_response = (response.body.to_s.empty? ? nil : Auth0::Types::ListFeatureFlagsResponseContent.load(response.body))
66
+ [parsed_response, response]
67
+ else
68
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
69
+ raise error_class.new(response.body, code: code)
70
+ end
71
+ end
72
+ end
73
+
74
+ # Create a new feature flag with parameters for use in experiments.
75
+ #
76
+ # @param request_options [Hash]
77
+ # @param params [Auth0::Experimentation::FeatureFlags::Types::CreateFeatureFlagRequestContent]
78
+ # @option request_options [String] :base_url
79
+ # @option request_options [Hash{String => Object}] :additional_headers
80
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
81
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
82
+ # @option request_options [Integer] :timeout_in_seconds
83
+ #
84
+ # @example
85
+ # client.experimentation.feature_flags.create(
86
+ # name: "name",
87
+ # parameters: {}
88
+ # )
89
+ #
90
+ # @return [Auth0::Types::CreateFeatureFlagResponseContent]
91
+ def create(request_options: {}, **params)
92
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
93
+ request = Auth0::Internal::JSON::Request.new(
94
+ base_url: request_options[:base_url],
95
+ method: "POST",
96
+ path: "experimentation/feature-flags",
97
+ body: Auth0::Experimentation::FeatureFlags::Types::CreateFeatureFlagRequestContent.new(params).to_h,
98
+ request_options: request_options
99
+ )
100
+ begin
101
+ response = @client.send(request)
102
+ rescue Net::HTTPRequestTimeout
103
+ raise Auth0::Errors::TimeoutError
104
+ end
105
+ code = response.code.to_i
106
+ if code.between?(200, 299)
107
+ (response.body.to_s.empty? ? nil : Auth0::Types::CreateFeatureFlagResponseContent.load(response.body))
108
+ else
109
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
110
+ raise error_class.new(response.body, code: code)
111
+ end
112
+ end
113
+
114
+ # Retrieve a single feature flag by its ID.
115
+ #
116
+ # @param request_options [Hash]
117
+ # @param params [Hash]
118
+ # @option request_options [String] :base_url
119
+ # @option request_options [Hash{String => Object}] :additional_headers
120
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
121
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
122
+ # @option request_options [Integer] :timeout_in_seconds
123
+ # @option params [String] :id
124
+ #
125
+ # @example
126
+ # client.experimentation.feature_flags.get(id: "id")
127
+ #
128
+ # @return [Auth0::Types::GetFeatureFlagResponseContent]
129
+ def get(request_options: {}, **params)
130
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
131
+ request = Auth0::Internal::JSON::Request.new(
132
+ base_url: request_options[:base_url],
133
+ method: "GET",
134
+ path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}",
135
+ request_options: request_options
136
+ )
137
+ begin
138
+ response = @client.send(request)
139
+ rescue Net::HTTPRequestTimeout
140
+ raise Auth0::Errors::TimeoutError
141
+ end
142
+ code = response.code.to_i
143
+ if code.between?(200, 299)
144
+ (response.body.to_s.empty? ? nil : Auth0::Types::GetFeatureFlagResponseContent.load(response.body))
145
+ else
146
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
147
+ raise error_class.new(response.body, code: code)
148
+ end
149
+ end
150
+
151
+ # Delete a feature flag by ID. Idempotent: returns 204 even if flag does not exist.
152
+ #
153
+ # @param request_options [Hash]
154
+ # @param params [Hash]
155
+ # @option request_options [String] :base_url
156
+ # @option request_options [Hash{String => Object}] :additional_headers
157
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
158
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
159
+ # @option request_options [Integer] :timeout_in_seconds
160
+ # @option params [String] :id
161
+ #
162
+ # @example
163
+ # client.experimentation.feature_flags.delete(id: "id")
164
+ #
165
+ # @return [untyped]
166
+ def delete(request_options: {}, **params)
167
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
168
+ request = Auth0::Internal::JSON::Request.new(
169
+ base_url: request_options[:base_url],
170
+ method: "DELETE",
171
+ path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}",
172
+ request_options: request_options
173
+ )
174
+ begin
175
+ response = @client.send(request)
176
+ rescue Net::HTTPRequestTimeout
177
+ raise Auth0::Errors::TimeoutError
178
+ end
179
+ code = response.code.to_i
180
+ return if code.between?(200, 299)
181
+
182
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
183
+ raise error_class.new(response.body, code: code)
184
+ end
185
+
186
+ # Partially update a feature flag by ID. Only provided fields are updated.
187
+ #
188
+ # @param request_options [Hash]
189
+ # @param params [Auth0::Experimentation::FeatureFlags::Types::UpdateFeatureFlagRequestContent]
190
+ # @option request_options [String] :base_url
191
+ # @option request_options [Hash{String => Object}] :additional_headers
192
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
193
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
194
+ # @option request_options [Integer] :timeout_in_seconds
195
+ # @option params [String] :id
196
+ #
197
+ # @example
198
+ # client.experimentation.feature_flags.update(id: "id")
199
+ #
200
+ # @return [Auth0::Types::UpdateFeatureFlagResponseContent]
201
+ def update(request_options: {}, **params)
202
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
203
+ request_data = Auth0::Experimentation::FeatureFlags::Types::UpdateFeatureFlagRequestContent.new(params).to_h
204
+ non_body_param_names = %w[id]
205
+ body = request_data.except(*non_body_param_names)
206
+
207
+ request = Auth0::Internal::JSON::Request.new(
208
+ base_url: request_options[:base_url],
209
+ method: "PATCH",
210
+ path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}",
211
+ body: body,
212
+ request_options: request_options
213
+ )
214
+ begin
215
+ response = @client.send(request)
216
+ rescue Net::HTTPRequestTimeout
217
+ raise Auth0::Errors::TimeoutError
218
+ end
219
+ code = response.code.to_i
220
+ if code.between?(200, 299)
221
+ (response.body.to_s.empty? ? nil : Auth0::Types::UpdateFeatureFlagResponseContent.load(response.body))
222
+ else
223
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
224
+ raise error_class.new(response.body, code: code)
225
+ end
226
+ end
227
+
228
+ # @return [Auth0::Variations::Client]
229
+ def variations
230
+ @variations ||= Auth0::Experimentation::FeatureFlags::Variations::Client.new(client: @client)
231
+ end
232
+ end
233
+ end
234
+ end
235
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Experimentation
5
+ module FeatureFlags
6
+ module Types
7
+ class CreateFeatureFlagRequestContent < Internal::Types::Model
8
+ field :name, -> { String }, optional: false, nullable: false
9
+
10
+ field :description, -> { String }, optional: true, nullable: false
11
+
12
+ field :parameters, -> { Internal::Types::Hash[String, Auth0::Types::FeatureFlagConfigParam] }, optional: false, nullable: false
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Experimentation
5
+ module FeatureFlags
6
+ module Types
7
+ class ListFeatureFlagsRequestParameters < Internal::Types::Model
8
+ field :from, -> { String }, optional: true, nullable: false
9
+
10
+ field :take, -> { Integer }, optional: true, nullable: false
11
+
12
+ field :type, -> { Auth0::Types::FeatureFlagTypeEnum }, optional: true, nullable: false
13
+
14
+ field :status, -> { Auth0::Types::FeatureFlagStatusEnum }, optional: true, nullable: false
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Experimentation
5
+ module FeatureFlags
6
+ module Types
7
+ class UpdateFeatureFlagRequestContent < Internal::Types::Model
8
+ field :id, -> { String }, optional: false, nullable: false
9
+
10
+ field :name, -> { String }, optional: true, nullable: false
11
+
12
+ field :description, -> { String }, optional: true, nullable: false
13
+
14
+ field :parameters, -> { Internal::Types::Hash[String, Auth0::Types::FeatureFlagConfigParam] }, optional: true, nullable: false
15
+
16
+ field :status, -> { Auth0::Types::FeatureFlagStatusEnum }, optional: true, nullable: false
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end