auth0 6.4.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 (216) hide show
  1. checksums.yaml +4 -4
  2. data/.fern/metadata.json +3 -3
  3. data/.fern/replay.lock +7 -1
  4. data/.version +1 -1
  5. data/CHANGELOG.md +9 -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 +2 -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/experiments/client.rb +0 -46
  25. data/lib/auth0/experimentation/experiments/types/update_experiment_request_parameters.rb +2 -0
  26. data/lib/auth0/experimentation/feature_flags/client.rb +0 -45
  27. data/lib/auth0/experimentation/feature_flags/types/update_feature_flag_request_content.rb +2 -0
  28. data/lib/auth0/experimentation/segments/types/update_segment_request_content.rb +2 -0
  29. data/lib/auth0/internal/types/model.rb +15 -6
  30. data/lib/auth0/roles/client.rb +2 -1
  31. data/lib/auth0/tenants/settings/types/update_tenant_settings_request_content.rb +4 -0
  32. data/lib/auth0/types/{update_feature_flag_status_response_content.rb → attack_protection_captcha_policy.rb} +5 -4
  33. data/lib/auth0/types/attack_protection_captcha_policy_action.rb +24 -0
  34. data/lib/auth0/types/attack_protection_captcha_policy_action_input.rb +24 -0
  35. data/lib/auth0/types/attack_protection_captcha_policy_match.rb +12 -0
  36. data/lib/auth0/types/brute_force_protection_form_submission_mode_enum.rb +12 -0
  37. data/lib/auth0/types/captcha_active_provider_enum.rb +17 -0
  38. data/lib/auth0/types/captcha_policy_action_arkose.rb +16 -0
  39. data/lib/auth0/types/captcha_policy_action_arkose_input.rb +18 -0
  40. data/lib/auth0/types/captcha_policy_action_auth_challenge.rb +10 -0
  41. data/lib/auth0/types/captcha_policy_action_friendly_captcha.rb +10 -0
  42. data/lib/auth0/types/captcha_policy_action_friendly_captcha_input.rb +12 -0
  43. data/lib/auth0/types/captcha_policy_action_hcaptcha.rb +10 -0
  44. data/lib/auth0/types/captcha_policy_action_hcaptcha_input.rb +12 -0
  45. data/lib/auth0/types/captcha_policy_action_recaptcha_enterprise.rb +12 -0
  46. data/lib/auth0/types/captcha_policy_action_recaptcha_enterprise_input.rb +14 -0
  47. data/lib/auth0/types/captcha_policy_action_recaptcha_v2.rb +10 -0
  48. data/lib/auth0/types/captcha_policy_action_recaptcha_v2input.rb +12 -0
  49. data/lib/auth0/types/captcha_policy_action_simple_captcha.rb +8 -0
  50. data/lib/auth0/types/cimd_external_metadata_created_by_enum.rb +12 -0
  51. data/lib/auth0/types/client.rb +4 -0
  52. data/lib/auth0/types/client_anonymous_session_transfer_network_binding_enum.rb +13 -0
  53. data/lib/auth0/types/client_external_metadata_status_enum.rb +12 -0
  54. data/lib/auth0/types/client_grant_sort_field_enum.rb +12 -0
  55. data/lib/auth0/types/client_oidc_support_patch.rb +14 -0
  56. data/lib/auth0/types/client_profile.rb +21 -0
  57. data/lib/auth0/types/client_profile_apply_policy.rb +12 -0
  58. data/lib/auth0/types/client_profile_apply_policy_external_metadata_created_by_enum.rb +11 -0
  59. data/lib/auth0/types/client_profile_apply_policy_external_metadata_type_enum.rb +11 -0
  60. data/lib/auth0/types/client_profile_client_configuration.rb +18 -0
  61. data/lib/auth0/types/client_profile_client_configuration_organization_discovery_method_enum.rb +12 -0
  62. data/lib/auth0/types/client_profile_client_configuration_organization_discovery_methods.rb +10 -0
  63. data/lib/auth0/types/client_profile_client_configuration_organization_require_behavior.rb +10 -0
  64. data/lib/auth0/types/client_profile_client_configuration_organization_require_behavior_enum.rb +13 -0
  65. data/lib/auth0/types/client_profile_client_configuration_organization_usage.rb +10 -0
  66. data/lib/auth0/types/client_profile_client_configuration_organization_usage_enum.rb +13 -0
  67. data/lib/auth0/types/client_profile_client_configuration_refresh_token.rb +14 -0
  68. data/lib/auth0/types/client_profile_client_configuration_require_proof_of_possession.rb +10 -0
  69. data/lib/auth0/types/client_profile_description.rb +23 -0
  70. data/lib/auth0/types/client_profile_id.rb +23 -0
  71. data/lib/auth0/types/client_profile_name.rb +23 -0
  72. data/lib/auth0/types/client_profile_refresh_token_idle_token_lifetime.rb +10 -0
  73. data/lib/auth0/types/client_profile_refresh_token_leeway.rb +10 -0
  74. data/lib/auth0/types/client_profile_refresh_token_token_lifetime.rb +10 -0
  75. data/lib/auth0/types/client_search_response.rb +139 -0
  76. data/lib/auth0/types/client_sort_field_enum.rb +12 -0
  77. data/lib/auth0/types/connection_profile_provisioning.rb +2 -0
  78. data/lib/auth0/types/connection_profile_provisioning_google_workspace.rb +10 -0
  79. data/lib/auth0/types/connection_profile_provisioning_google_workspace_sync_users.rb +23 -0
  80. data/lib/auth0/types/connection_profile_strategy_overrides_provisioning.rb +2 -0
  81. data/lib/auth0/types/connection_response_common.rb +6 -6
  82. data/lib/auth0/types/connection_response_content_ad.rb +2 -2
  83. data/lib/auth0/types/connection_response_content_adfs.rb +2 -2
  84. data/lib/auth0/types/connection_response_content_amazon.rb +2 -2
  85. data/lib/auth0/types/connection_response_content_apple.rb +2 -2
  86. data/lib/auth0/types/connection_response_content_auth0.rb +2 -2
  87. data/lib/auth0/types/connection_response_content_auth0oidc.rb +2 -2
  88. data/lib/auth0/types/connection_response_content_azure_ad.rb +2 -2
  89. data/lib/auth0/types/connection_response_content_baidu.rb +2 -2
  90. data/lib/auth0/types/connection_response_content_bitbucket.rb +2 -2
  91. data/lib/auth0/types/connection_response_content_bitly.rb +2 -2
  92. data/lib/auth0/types/connection_response_content_box.rb +2 -2
  93. data/lib/auth0/types/connection_response_content_custom.rb +2 -2
  94. data/lib/auth0/types/connection_response_content_daccount.rb +2 -2
  95. data/lib/auth0/types/connection_response_content_dropbox.rb +2 -2
  96. data/lib/auth0/types/connection_response_content_dwolla.rb +2 -2
  97. data/lib/auth0/types/connection_response_content_email.rb +2 -2
  98. data/lib/auth0/types/connection_response_content_evernote.rb +2 -2
  99. data/lib/auth0/types/connection_response_content_evernote_sandbox.rb +2 -2
  100. data/lib/auth0/types/connection_response_content_exact.rb +2 -2
  101. data/lib/auth0/types/connection_response_content_facebook.rb +2 -2
  102. data/lib/auth0/types/connection_response_content_fitbit.rb +2 -2
  103. data/lib/auth0/types/connection_response_content_git_hub.rb +2 -2
  104. data/lib/auth0/types/connection_response_content_google_apps.rb +2 -2
  105. data/lib/auth0/types/connection_response_content_google_o_auth2.rb +2 -2
  106. data/lib/auth0/types/connection_response_content_instagram.rb +2 -2
  107. data/lib/auth0/types/connection_response_content_ip.rb +2 -2
  108. data/lib/auth0/types/connection_response_content_line.rb +2 -2
  109. data/lib/auth0/types/connection_response_content_linkedin.rb +2 -2
  110. data/lib/auth0/types/connection_response_content_o_auth1.rb +2 -2
  111. data/lib/auth0/types/connection_response_content_o_auth2.rb +2 -2
  112. data/lib/auth0/types/connection_response_content_office365.rb +2 -2
  113. data/lib/auth0/types/connection_response_content_oidc.rb +2 -2
  114. data/lib/auth0/types/connection_response_content_okta.rb +2 -2
  115. data/lib/auth0/types/connection_response_content_paypal.rb +2 -2
  116. data/lib/auth0/types/connection_response_content_paypal_sandbox.rb +2 -2
  117. data/lib/auth0/types/connection_response_content_ping_federate.rb +2 -2
  118. data/lib/auth0/types/connection_response_content_planning_center.rb +2 -2
  119. data/lib/auth0/types/connection_response_content_salesforce.rb +2 -2
  120. data/lib/auth0/types/connection_response_content_salesforce_community.rb +2 -2
  121. data/lib/auth0/types/connection_response_content_salesforce_sandbox.rb +2 -2
  122. data/lib/auth0/types/connection_response_content_saml.rb +2 -2
  123. data/lib/auth0/types/connection_response_content_sharepoint.rb +2 -2
  124. data/lib/auth0/types/connection_response_content_shop.rb +2 -2
  125. data/lib/auth0/types/connection_response_content_shopify.rb +2 -2
  126. data/lib/auth0/types/connection_response_content_sms.rb +2 -2
  127. data/lib/auth0/types/connection_response_content_soundcloud.rb +2 -2
  128. data/lib/auth0/types/connection_response_content_thirty_seven_signals.rb +2 -2
  129. data/lib/auth0/types/connection_response_content_twitter.rb +2 -2
  130. data/lib/auth0/types/connection_response_content_untappd.rb +2 -2
  131. data/lib/auth0/types/connection_response_content_vkontakte.rb +2 -2
  132. data/lib/auth0/types/connection_response_content_weibo.rb +2 -2
  133. data/lib/auth0/types/connection_response_content_windows_live.rb +2 -2
  134. data/lib/auth0/types/connection_response_content_wordpress.rb +2 -2
  135. data/lib/auth0/types/connection_response_content_yahoo.rb +2 -2
  136. data/lib/auth0/types/connection_response_content_yandex.rb +2 -2
  137. data/lib/auth0/types/create_client_response_content.rb +4 -0
  138. data/lib/auth0/types/create_segment_response_content.rb +2 -0
  139. data/lib/auth0/types/enabled_features_enum.rb +1 -0
  140. data/lib/auth0/types/event_stream_cloud_event_connection_created_cloud_event.rb +1 -1
  141. data/lib/auth0/types/event_stream_cloud_event_connection_deleted_cloud_event.rb +1 -1
  142. data/lib/auth0/types/event_stream_cloud_event_connection_updated_cloud_event.rb +1 -1
  143. data/lib/auth0/types/event_stream_cloud_event_group_created_cloud_event.rb +1 -1
  144. data/lib/auth0/types/event_stream_cloud_event_group_deleted_cloud_event.rb +1 -1
  145. data/lib/auth0/types/event_stream_cloud_event_group_member_added_cloud_event.rb +1 -1
  146. data/lib/auth0/types/event_stream_cloud_event_group_member_deleted_cloud_event.rb +1 -1
  147. data/lib/auth0/types/event_stream_cloud_event_group_role_assigned_cloud_event.rb +1 -1
  148. data/lib/auth0/types/event_stream_cloud_event_group_role_deleted_cloud_event.rb +1 -1
  149. data/lib/auth0/types/event_stream_cloud_event_group_updated_cloud_event.rb +1 -1
  150. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_cloud_event.rb +1 -1
  151. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object.rb +2 -0
  152. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level.rb +18 -0
  153. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level0enum.rb +11 -0
  154. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level1enum.rb +11 -0
  155. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level2enum.rb +11 -0
  156. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_object_organization_member_access_level3enum.rb +11 -0
  157. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object.rb +2 -0
  158. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_1dbe67.rb +11 -0
  159. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_4de563.rb +11 -0
  160. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_7087fd.rb +11 -0
  161. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_l_a4ce06.rb +11 -0
  162. data/lib/auth0/types/event_stream_cloud_event_org_connection_added_previous_object_organization_member_access_level.rb +18 -0
  163. data/lib/auth0/types/event_stream_cloud_event_org_connection_removed_cloud_event.rb +1 -1
  164. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_cloud_event.rb +1 -1
  165. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object.rb +2 -0
  166. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level.rb +18 -0
  167. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level0enum.rb +11 -0
  168. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level1enum.rb +11 -0
  169. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level2enum.rb +11 -0
  170. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_object_organization_member_access_level3enum.rb +11 -0
  171. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object.rb +2 -0
  172. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_3669df.rb +11 -0
  173. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_55f897.rb +11 -0
  174. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_66926d.rb +11 -0
  175. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_88dadc.rb +11 -0
  176. data/lib/auth0/types/event_stream_cloud_event_org_connection_updated_previous_object_organization_member_access_level.rb +18 -0
  177. data/lib/auth0/types/event_stream_cloud_event_org_created_cloud_event.rb +1 -1
  178. data/lib/auth0/types/event_stream_cloud_event_org_deleted_cloud_event.rb +1 -1
  179. data/lib/auth0/types/event_stream_cloud_event_org_group_role_assigned_cloud_event.rb +1 -1
  180. data/lib/auth0/types/event_stream_cloud_event_org_group_role_deleted_cloud_event.rb +1 -1
  181. data/lib/auth0/types/event_stream_cloud_event_org_member_added_cloud_event.rb +1 -1
  182. data/lib/auth0/types/event_stream_cloud_event_org_member_deleted_cloud_event.rb +1 -1
  183. data/lib/auth0/types/event_stream_cloud_event_org_member_role_assigned_cloud_event.rb +1 -1
  184. data/lib/auth0/types/event_stream_cloud_event_org_member_role_deleted_cloud_event.rb +1 -1
  185. data/lib/auth0/types/event_stream_cloud_event_org_updated_cloud_event.rb +1 -1
  186. data/lib/auth0/types/event_stream_cloud_event_user_created_cloud_event.rb +1 -1
  187. data/lib/auth0/types/event_stream_cloud_event_user_deleted_cloud_event.rb +1 -1
  188. data/lib/auth0/types/event_stream_cloud_event_user_updated_cloud_event.rb +1 -1
  189. data/lib/auth0/types/get_brute_force_settings_response_content.rb +2 -0
  190. data/lib/auth0/types/get_client_response_content.rb +4 -0
  191. data/lib/auth0/types/get_segment_response_content.rb +2 -0
  192. data/lib/auth0/types/get_tenant_settings_response_content.rb +4 -0
  193. data/lib/auth0/types/list_attack_protection_captcha_policies_response_content.rb +23 -0
  194. data/lib/auth0/types/list_client_profiles_paginated_response_content.rb +12 -0
  195. data/lib/auth0/types/oauth_scope.rb +4 -0
  196. data/lib/auth0/types/preview_cimd_metadata_response_content.rb +2 -0
  197. data/lib/auth0/types/role_owner_id.rb +23 -0
  198. data/lib/auth0/types/role_owner_id_filter.rb +23 -0
  199. data/lib/auth0/types/rotate_client_secret_response_content.rb +4 -0
  200. data/lib/auth0/types/search_client_grants_response_content.rb +11 -0
  201. data/lib/auth0/types/search_clients_response_content.rb +11 -0
  202. data/lib/auth0/types/search_organization.rb +0 -2
  203. data/lib/auth0/types/segment.rb +2 -0
  204. data/lib/auth0/types/segment_status_enum.rb +12 -0
  205. data/lib/auth0/types/system_role_owner_id.rb +11 -0
  206. data/lib/auth0/types/update_brute_force_settings_response_content.rb +2 -0
  207. data/lib/auth0/types/update_client_response_content.rb +4 -0
  208. data/lib/auth0/types/update_segment_response_content.rb +2 -0
  209. data/lib/auth0/types/update_tenant_settings_response_content.rb +4 -0
  210. data/lib/auth0/version.rb +1 -1
  211. data/lib/auth0.rb +84 -5
  212. data/wiremock/wiremock-mappings.json +479 -91
  213. metadata +85 -6
  214. data/lib/auth0/experimentation/experiments/types/update_experiment_status_request_content.rb +0 -15
  215. data/lib/auth0/experimentation/feature_flags/types/update_feature_flag_status_request_content.rb +0 -15
  216. data/lib/auth0/types/update_experiment_status_response_content.rb +0 -45
@@ -0,0 +1,233 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module ClientProfiles
5
+ class Client
6
+ # @param client [Auth0::Internal::Http::RawClient]
7
+ #
8
+ # @return [void]
9
+ def initialize(client:)
10
+ @client = client
11
+ end
12
+
13
+ # Retrieve a paginated list of client profiles for the tenant. Uses checkpoint pagination: pass the
14
+ # <code>next</code> cursor from a previous response as the <code>from</code> query parameter to retrieve the
15
+ # following page.
16
+ #
17
+ # @param request_options [Hash]
18
+ # @param params [Hash]
19
+ # @option request_options [String] :base_url
20
+ # @option request_options [Hash{String => Object}] :additional_headers
21
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
22
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
23
+ # @option request_options [Integer] :timeout_in_seconds
24
+ # @option params [String, nil] :from
25
+ # @option params [Integer, nil] :take
26
+ #
27
+ # @example
28
+ # client.client_profiles.list(
29
+ # from: "from",
30
+ # take: 1
31
+ # )
32
+ #
33
+ # @return [Auth0::Types::ListClientProfilesPaginatedResponseContent]
34
+ def list(request_options: {}, **params)
35
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
36
+ query_params = {}
37
+ query_params["from"] = params[:from] if params.key?(:from)
38
+ query_params["take"] = params.fetch(:take, 50)
39
+
40
+ Auth0::Internal::CursorItemIterator.new(
41
+ cursor_field: :next_,
42
+ item_field: :client_profiles,
43
+ initial_cursor: query_params["from"]
44
+ ) do |next_cursor|
45
+ query_params["from"] = next_cursor
46
+ request = Auth0::Internal::JSON::Request.new(
47
+ base_url: request_options[:base_url],
48
+ method: "GET",
49
+ path: "client-profiles",
50
+ query: query_params,
51
+ request_options: request_options
52
+ )
53
+ begin
54
+ response = @client.send(request)
55
+ rescue Net::HTTPRequestTimeout
56
+ raise Auth0::Errors::TimeoutError
57
+ end
58
+ code = response.code.to_i
59
+ if code.between?(200, 299)
60
+ parsed_response = (response.body.to_s.empty? ? nil : Auth0::Types::ListClientProfilesPaginatedResponseContent.load(response.body))
61
+ [parsed_response, response]
62
+ else
63
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
64
+ raise error_class.new(response.body, code: code)
65
+ end
66
+ end
67
+ end
68
+
69
+ # Create a client profile. At most one profile is allowed per tenant in this release; attempting to create a
70
+ # second returns <code>409 Conflict</code>. The profile governs Dynamic CIMD clients matched by its
71
+ # <code>apply_policy</code> at runtime.
72
+ #
73
+ # @param request_options [Hash]
74
+ # @param params [Auth0::ClientProfiles::Types::CreateClientProfileRequestContent]
75
+ # @option request_options [String] :base_url
76
+ # @option request_options [Hash{String => Object}] :additional_headers
77
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
78
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
79
+ # @option request_options [Integer] :timeout_in_seconds
80
+ #
81
+ # @example
82
+ # client.client_profiles.create(
83
+ # name: "name",
84
+ # client_configuration: {},
85
+ # apply_policy: {
86
+ # external_metadata_type: "cimd",
87
+ # external_metadata_created_by: "client"
88
+ # }
89
+ # )
90
+ #
91
+ # @return [Auth0::Types::ClientProfile]
92
+ def create(request_options: {}, **params)
93
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
94
+ request = Auth0::Internal::JSON::Request.new(
95
+ base_url: request_options[:base_url],
96
+ method: "POST",
97
+ path: "client-profiles",
98
+ body: Auth0::ClientProfiles::Types::CreateClientProfileRequestContent.new(params).to_h,
99
+ request_options: request_options
100
+ )
101
+ begin
102
+ response = @client.send(request)
103
+ rescue Net::HTTPRequestTimeout
104
+ raise Auth0::Errors::TimeoutError
105
+ end
106
+ code = response.code.to_i
107
+ if code.between?(200, 299)
108
+ (response.body.to_s.empty? ? nil : Auth0::Types::ClientProfile.load(response.body))
109
+ else
110
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
111
+ raise error_class.new(response.body, code: code)
112
+ end
113
+ end
114
+
115
+ # Retrieve a single client profile by its identifier. Returns <code>404</code> if no profile with the given ID
116
+ # exists for the tenant.
117
+ #
118
+ # @param request_options [Hash]
119
+ # @param params [Hash]
120
+ # @option request_options [String] :base_url
121
+ # @option request_options [Hash{String => Object}] :additional_headers
122
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
123
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
124
+ # @option request_options [Integer] :timeout_in_seconds
125
+ # @option params [Auth0::Types::ClientProfileID] :id
126
+ #
127
+ # @example
128
+ # client.client_profiles.get(id: "id")
129
+ #
130
+ # @return [Auth0::Types::ClientProfile]
131
+ def get(request_options: {}, **params)
132
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
133
+ request = Auth0::Internal::JSON::Request.new(
134
+ base_url: request_options[:base_url],
135
+ method: "GET",
136
+ path: "client-profiles/#{URI.encode_uri_component(params[:id].to_s)}",
137
+ request_options: request_options
138
+ )
139
+ begin
140
+ response = @client.send(request)
141
+ rescue Net::HTTPRequestTimeout
142
+ raise Auth0::Errors::TimeoutError
143
+ end
144
+ code = response.code.to_i
145
+ if code.between?(200, 299)
146
+ (response.body.to_s.empty? ? nil : Auth0::Types::ClientProfile.load(response.body))
147
+ else
148
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
149
+ raise error_class.new(response.body, code: code)
150
+ end
151
+ end
152
+
153
+ # Delete a client profile. Idempotent: returns <code>204 No Content</code> whether or not a profile with the given
154
+ # ID existed. Deleting the profile removes fleet governance for matched clients immediately.
155
+ #
156
+ # @param request_options [Hash]
157
+ # @param params [Hash]
158
+ # @option request_options [String] :base_url
159
+ # @option request_options [Hash{String => Object}] :additional_headers
160
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
161
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
162
+ # @option request_options [Integer] :timeout_in_seconds
163
+ # @option params [Auth0::Types::ClientProfileID] :id
164
+ #
165
+ # @example
166
+ # client.client_profiles.delete(id: "id")
167
+ #
168
+ # @return [untyped]
169
+ def delete(request_options: {}, **params)
170
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
171
+ request = Auth0::Internal::JSON::Request.new(
172
+ base_url: request_options[:base_url],
173
+ method: "DELETE",
174
+ path: "client-profiles/#{URI.encode_uri_component(params[:id].to_s)}",
175
+ request_options: request_options
176
+ )
177
+ begin
178
+ response = @client.send(request)
179
+ rescue Net::HTTPRequestTimeout
180
+ raise Auth0::Errors::TimeoutError
181
+ end
182
+ code = response.code.to_i
183
+ return if code.between?(200, 299)
184
+
185
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
186
+ raise error_class.new(response.body, code: code)
187
+ end
188
+
189
+ # Update a client profile. Supports partial updates at the top level (JSON Merge Patch); omitted top-level fields
190
+ # remain unchanged. Nested objects such as <code>client_configuration</code> must be supplied in full.
191
+ #
192
+ # @param request_options [Hash]
193
+ # @param params [Auth0::ClientProfiles::Types::UpdateClientProfileRequestContent]
194
+ # @option request_options [String] :base_url
195
+ # @option request_options [Hash{String => Object}] :additional_headers
196
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
197
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
198
+ # @option request_options [Integer] :timeout_in_seconds
199
+ # @option params [Auth0::Types::ClientProfileID] :id
200
+ #
201
+ # @example
202
+ # client.client_profiles.update(id: "id")
203
+ #
204
+ # @return [Auth0::Types::ClientProfile]
205
+ def update(request_options: {}, **params)
206
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
207
+ request_data = Auth0::ClientProfiles::Types::UpdateClientProfileRequestContent.new(params).to_h
208
+ non_body_param_names = %w[id]
209
+ body = request_data.except(*non_body_param_names)
210
+
211
+ request = Auth0::Internal::JSON::Request.new(
212
+ base_url: request_options[:base_url],
213
+ method: "PATCH",
214
+ path: "client-profiles/#{URI.encode_uri_component(params[:id].to_s)}",
215
+ body: body,
216
+ request_options: request_options
217
+ )
218
+ begin
219
+ response = @client.send(request)
220
+ rescue Net::HTTPRequestTimeout
221
+ raise Auth0::Errors::TimeoutError
222
+ end
223
+ code = response.code.to_i
224
+ if code.between?(200, 299)
225
+ (response.body.to_s.empty? ? nil : Auth0::Types::ClientProfile.load(response.body))
226
+ else
227
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
228
+ raise error_class.new(response.body, code: code)
229
+ end
230
+ end
231
+ end
232
+ end
233
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module ClientProfiles
5
+ module Types
6
+ class CreateClientProfileRequestContent < Internal::Types::Model
7
+ field :name, -> { String }, optional: false, nullable: false
8
+
9
+ field :description, -> { String }, optional: true, nullable: false
10
+
11
+ field :client_configuration, -> { Auth0::Types::ClientProfileClientConfiguration }, optional: false, nullable: false
12
+
13
+ field :apply_policy, -> { Auth0::Types::ClientProfileApplyPolicy }, optional: false, nullable: false
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module ClientProfiles
5
+ module Types
6
+ class ListClientProfilesRequestParameters < Internal::Types::Model
7
+ field :from, -> { String }, optional: true, nullable: false
8
+
9
+ field :take, -> { Integer }, optional: true, nullable: false
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module ClientProfiles
5
+ module Types
6
+ class UpdateClientProfileRequestContent < Internal::Types::Model
7
+ field :id, -> { String }, optional: false, nullable: false
8
+
9
+ field :name, -> { String }, optional: true, nullable: false
10
+
11
+ field :description, -> { String }, optional: true, nullable: false
12
+
13
+ field :client_configuration, -> { Auth0::Types::ClientProfileClientConfiguration }, optional: true, nullable: false
14
+
15
+ field :apply_policy, -> { Auth0::Types::ClientProfileApplyPolicy }, optional: true, nullable: false
16
+ end
17
+ end
18
+ end
19
+ end
@@ -257,6 +257,87 @@ module Auth0
257
257
  end
258
258
  end
259
259
 
260
+ # Search clients using SCIM or Lucene filter syntax with low-latency, eventually consistent results.
261
+ # Use the parser parameter to specify "scim" or "lucene" syntax (default: "lucene").
262
+ # This endpoint provides an alternative to the standard GET /clients endpoint with better performance
263
+ # for complex queries. Results may not reflect recent updates immediately.
264
+ #
265
+ # - This endpoint only supports `read:clients` and `read:client_summary` scopes. The `read:client_keys` and
266
+ # `read:client_credentials` scopes are not supported.
267
+ # - The following fields are never returned by this endpoint:
268
+ # - `client_secret`
269
+ # - `encryption_key`
270
+ # - `signing_keys`
271
+ # - `owners`
272
+ # - `addons`
273
+ #
274
+ # @param request_options [Hash]
275
+ # @param params [Hash]
276
+ # @option request_options [String] :base_url
277
+ # @option request_options [Hash{String => Object}] :additional_headers
278
+ # @option request_options [Hash{String => Object}] :additional_query_parameters
279
+ # @option request_options [Hash{String => Object}] :additional_body_parameters
280
+ # @option request_options [Integer] :timeout_in_seconds
281
+ # @option params [String, nil] :q
282
+ # @option params [Auth0::Types::SearchParserEnum, nil] :parser
283
+ # @option params [String, nil] :fields
284
+ # @option params [Boolean, nil] :include_fields
285
+ # @option params [Integer, nil] :take
286
+ # @option params [String, nil] :from
287
+ # @option params [Auth0::Types::ClientSortFieldEnum, nil] :sort
288
+ #
289
+ # @example
290
+ # client.clients.search(
291
+ # q: "q",
292
+ # parser: "scim",
293
+ # fields: "fields",
294
+ # include_fields: true,
295
+ # take: 1,
296
+ # from: "from",
297
+ # sort: "name"
298
+ # )
299
+ #
300
+ # @return [Auth0::Types::SearchClientsResponseContent]
301
+ def search(request_options: {}, **params)
302
+ params = Auth0::Internal::Types::Utils.normalize_keys(params)
303
+ query_params = {}
304
+ query_params["q"] = params[:q] if params.key?(:q)
305
+ query_params["parser"] = params[:parser] if params.key?(:parser)
306
+ query_params["fields"] = params[:fields] if params.key?(:fields)
307
+ query_params["include_fields"] = params[:include_fields] if params.key?(:include_fields)
308
+ query_params["take"] = params.fetch(:take, 50)
309
+ query_params["from"] = params[:from] if params.key?(:from)
310
+ query_params["sort"] = params[:sort] if params.key?(:sort)
311
+
312
+ Auth0::Internal::CursorItemIterator.new(
313
+ cursor_field: :next_,
314
+ item_field: :clients,
315
+ initial_cursor: query_params["from"]
316
+ ) do |next_cursor|
317
+ query_params["from"] = next_cursor
318
+ request = Auth0::Internal::JSON::Request.new(
319
+ base_url: request_options[:base_url],
320
+ method: "GET",
321
+ path: "clients/search",
322
+ query: query_params,
323
+ request_options: request_options
324
+ )
325
+ begin
326
+ response = @client.send(request)
327
+ rescue Net::HTTPRequestTimeout
328
+ raise Auth0::Errors::TimeoutError
329
+ end
330
+ code = response.code.to_i
331
+ if code.between?(200, 299)
332
+ parsed_response = (response.body.to_s.empty? ? nil : Auth0::Types::SearchClientsResponseContent.load(response.body))
333
+ [parsed_response, response]
334
+ else
335
+ error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
336
+ raise error_class.new(response.body, code: code)
337
+ end
338
+ end
339
+ end
340
+
260
341
  # Retrieve client details by ID. Clients are SSO connections or Applications linked with your Auth0 tenant. A list
261
342
  # of fields to include or exclude may also be specified.
262
343
  # For more information, read [Applications in Auth0](https://www.auth0.com/docs/get-started/applications) and
@@ -108,6 +108,8 @@ module Auth0
108
108
 
109
109
  field :anonymous_sessions, -> { Auth0::Types::CreateAnonymousSessions }, optional: true, nullable: false
110
110
 
111
+ field :enforce_anon_session_transfer_network_binding, -> { Auth0::Types::ClientAnonymousSessionTransferNetworkBindingEnum }, optional: true, nullable: false
112
+
111
113
  field :third_party_security_mode, -> { Auth0::Types::ClientThirdPartySecurityModeEnum }, optional: true, nullable: false
112
114
 
113
115
  field :redirection_policy, -> { Auth0::Types::ClientRedirectionPolicyEnum }, optional: true, nullable: false
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Auth0
4
+ module Clients
5
+ module Types
6
+ class SearchClientsRequestParameters < Internal::Types::Model
7
+ field :q, -> { String }, optional: true, nullable: false
8
+
9
+ field :parser, -> { Auth0::Types::SearchParserEnum }, optional: true, nullable: false
10
+
11
+ field :fields, -> { String }, optional: true, nullable: false
12
+
13
+ field :include_fields, -> { Internal::Types::Boolean }, optional: true, nullable: false
14
+
15
+ field :take, -> { Integer }, optional: true, nullable: false
16
+
17
+ field :from, -> { String }, optional: true, nullable: false
18
+
19
+ field :sort, -> { Auth0::Types::ClientSortFieldEnum }, optional: true, nullable: false
20
+ end
21
+ end
22
+ end
23
+ end
@@ -68,6 +68,8 @@ module Auth0
68
68
 
69
69
  field :anonymous_sessions, -> { Auth0::Types::UpdateAnonymousSessions }, optional: true, nullable: false
70
70
 
71
+ field :enforce_anon_session_transfer_network_binding, -> { Auth0::Types::ClientAnonymousSessionTransferNetworkBindingEnum }, optional: true, nullable: false
72
+
71
73
  field :form_template, -> { String }, optional: true, nullable: false
72
74
 
73
75
  field :addons, -> { Auth0::Types::ClientAddons }, optional: true, nullable: false
@@ -121,6 +123,8 @@ module Auth0
121
123
  field :third_party_security_mode, -> { Auth0::Types::ClientThirdPartySecurityModeEnum }, optional: true, nullable: false
122
124
 
123
125
  field :redirection_policy, -> { Auth0::Types::ClientRedirectionPolicyEnum }, optional: true, nullable: false
126
+
127
+ field :oidc_support, -> { Auth0::Types::ClientOidcSupportPatch }, optional: true, nullable: false
124
128
  end
125
129
  end
126
130
  end
@@ -21,7 +21,14 @@ module Auth0
21
21
  # @option request_options [Integer] :timeout_in_seconds
22
22
  #
23
23
  # @example
24
- # client.email_templates.create(template: "verify_email")
24
+ # client.email_templates.create(
25
+ # template: "verify_email",
26
+ # body: nil,
27
+ # from: nil,
28
+ # subject: nil,
29
+ # syntax: nil,
30
+ # enabled: nil
31
+ # )
25
32
  #
26
33
  # @return [Auth0::Types::CreateEmailTemplateResponseContent]
27
34
  def create(request_options: {}, **params)
@@ -101,7 +108,12 @@ module Auth0
101
108
  # @example
102
109
  # client.email_templates.set(
103
110
  # template_name: "verify_email",
104
- # template: "verify_email"
111
+ # template: "verify_email",
112
+ # body: nil,
113
+ # from: nil,
114
+ # subject: nil,
115
+ # syntax: nil,
116
+ # enabled: nil
105
117
  # )
106
118
  #
107
119
  # @return [Auth0::Types::SetEmailTemplateResponseContent]
@@ -278,52 +278,6 @@ module Auth0
278
278
  end
279
279
  end
280
280
 
281
- # Transitions an experiment through its lifecycle: draft → active, active → paused, paused → active,
282
- # active/paused → completed. Activation runs full readiness validation.
283
- #
284
- # @param request_options [Hash]
285
- # @param params [Auth0::Experimentation::Experiments::Types::UpdateExperimentStatusRequestContent]
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.update_status(
295
- # id: "id",
296
- # status: "active"
297
- # )
298
- #
299
- # @return [Auth0::Types::UpdateExperimentStatusResponseContent]
300
- def update_status(request_options: {}, **params)
301
- params = Auth0::Internal::Types::Utils.normalize_keys(params)
302
- request_data = Auth0::Experimentation::Experiments::Types::UpdateExperimentStatusRequestContent.new(params).to_h
303
- non_body_param_names = %w[id]
304
- body = request_data.except(*non_body_param_names)
305
-
306
- request = Auth0::Internal::JSON::Request.new(
307
- base_url: request_options[:base_url],
308
- method: "POST",
309
- path: "experimentation/experiments/#{URI.encode_uri_component(params[:id].to_s)}/status",
310
- body: body,
311
- request_options: request_options
312
- )
313
- begin
314
- response = @client.send(request)
315
- rescue Net::HTTPRequestTimeout
316
- raise Auth0::Errors::TimeoutError
317
- end
318
- code = response.code.to_i
319
- if code.between?(200, 299)
320
- (response.body.to_s.empty? ? nil : Auth0::Types::UpdateExperimentStatusResponseContent.load(response.body))
321
- else
322
- error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
323
- raise error_class.new(response.body, code: code)
324
- end
325
- end
326
-
327
281
  # Checks whether an experiment is ready to be activated. Returns is_valid boolean and an errors array describing
328
282
  # any blockers. Read-only; no state is modified.
329
283
  #
@@ -18,6 +18,8 @@ module Auth0
18
18
  field :default_config, -> { Auth0::Types::DefaultConfigEnum }, optional: true, nullable: false
19
19
 
20
20
  field :levels, -> { Internal::Types::Array[Integer] }, optional: true, nullable: false
21
+
22
+ field :status, -> { Auth0::Types::ExperimentTransitionStatusEnum }, optional: true, nullable: false
21
23
  end
22
24
  end
23
25
  end
@@ -225,51 +225,6 @@ module Auth0
225
225
  end
226
226
  end
227
227
 
228
- # Transitions a feature flag through its lifecycle states: draft → active, draft → archived, active → archived.
229
- #
230
- # @param request_options [Hash]
231
- # @param params [Auth0::Experimentation::FeatureFlags::Types::UpdateFeatureFlagStatusRequestContent]
232
- # @option request_options [String] :base_url
233
- # @option request_options [Hash{String => Object}] :additional_headers
234
- # @option request_options [Hash{String => Object}] :additional_query_parameters
235
- # @option request_options [Hash{String => Object}] :additional_body_parameters
236
- # @option request_options [Integer] :timeout_in_seconds
237
- # @option params [String] :id
238
- #
239
- # @example
240
- # client.experimentation.feature_flags.update_status(
241
- # id: "id",
242
- # status: "draft"
243
- # )
244
- #
245
- # @return [Auth0::Types::UpdateFeatureFlagStatusResponseContent]
246
- def update_status(request_options: {}, **params)
247
- params = Auth0::Internal::Types::Utils.normalize_keys(params)
248
- request_data = Auth0::Experimentation::FeatureFlags::Types::UpdateFeatureFlagStatusRequestContent.new(params).to_h
249
- non_body_param_names = %w[id]
250
- body = request_data.except(*non_body_param_names)
251
-
252
- request = Auth0::Internal::JSON::Request.new(
253
- base_url: request_options[:base_url],
254
- method: "POST",
255
- path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}/status",
256
- body: body,
257
- request_options: request_options
258
- )
259
- begin
260
- response = @client.send(request)
261
- rescue Net::HTTPRequestTimeout
262
- raise Auth0::Errors::TimeoutError
263
- end
264
- code = response.code.to_i
265
- if code.between?(200, 299)
266
- (response.body.to_s.empty? ? nil : Auth0::Types::UpdateFeatureFlagStatusResponseContent.load(response.body))
267
- else
268
- error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
269
- raise error_class.new(response.body, code: code)
270
- end
271
- end
272
-
273
228
  # @return [Auth0::Variations::Client]
274
229
  def variations
275
230
  @variations ||= Auth0::Experimentation::FeatureFlags::Variations::Client.new(client: @client)
@@ -12,6 +12,8 @@ module Auth0
12
12
  field :description, -> { String }, optional: true, nullable: false
13
13
 
14
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
15
17
  end
16
18
  end
17
19
  end
@@ -12,6 +12,8 @@ module Auth0
12
12
  field :description, -> { String }, optional: true, nullable: false
13
13
 
14
14
  field :rules, -> { Internal::Types::Array[Auth0::Types::SegmentRule] }, optional: true, nullable: false
15
+
16
+ field :status, -> { Auth0::Types::SegmentStatusEnum }, optional: true, nullable: false
15
17
  end
16
18
  end
17
19
  end
@@ -141,13 +141,22 @@ module Auth0
141
141
  values = Utils.symbolize_keys(values.dup)
142
142
 
143
143
  self.class.fields.each do |field_name, field|
144
- value = values.delete(field.api_name.to_sym) || values.delete(field.api_name) || values.delete(field_name)
144
+ # key?/nil? checks keep an explicit `false`, and both keys are consumed so neither leaks into extra fields
145
+ value = nil
146
+ [field.api_name.to_sym, field_name].uniq.each do |key|
147
+ next unless values.key?(key)
145
148
 
146
- field_value = value || (if field.literal?
147
- field.value
148
- elsif field.default
149
- field.default
150
- end)
149
+ candidate = values.delete(key)
150
+ value = candidate if value.nil?
151
+ end
152
+
153
+ field_value = if !value.nil?
154
+ value
155
+ elsif field.literal?
156
+ field.value
157
+ elsif !field.default.nil?
158
+ field.default
159
+ end
151
160
 
152
161
  @data[field_name] = Utils.coerce(field.type, field_value)
153
162
  end
@@ -10,7 +10,8 @@ module Auth0
10
10
  @client = client
11
11
  end
12
12
 
13
- # Retrieve detailed list of user roles created in your tenant.
13
+ # Retrieve a list of roles. Includes roles created in your tenant and, when `owner_id=auth0` is supplied,
14
+ # Auth0-managed System Roles.
14
15
  #
15
16
  # **Note**: The returned list does not include standard roles available for tenant members, such as Admin or
16
17
  # Support Access.
@@ -77,12 +77,16 @@ module Auth0
77
77
 
78
78
  field :authorization_response_iss_parameter_supported, -> { Internal::Types::Boolean }, optional: true, nullable: false
79
79
 
80
+ field :dpop_strict_refresh_token_binding, -> { Internal::Types::Boolean }, optional: true, nullable: false
81
+
80
82
  field :skip_non_verifiable_callback_uri_confirmation_prompt, -> { Internal::Types::Boolean }, optional: true, nullable: false
81
83
 
82
84
  field :resource_parameter_profile, -> { Auth0::Types::TenantSettingsResourceParameterProfile }, optional: true, nullable: false
83
85
 
84
86
  field :client_id_metadata_document_supported, -> { Internal::Types::Boolean }, optional: true, nullable: false
85
87
 
88
+ field :client_id_metadata_document_dynamic_registration_supported, -> { Internal::Types::Boolean }, optional: true, nullable: false
89
+
86
90
  field :enable_ai_guide, -> { Internal::Types::Boolean }, optional: true, nullable: false
87
91
 
88
92
  field :phone_consolidated_experience, -> { Internal::Types::Boolean }, optional: true, nullable: false