auth0 6.3.0 → 6.4.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.
- checksums.yaml +4 -4
- data/.fern/metadata.json +5 -4
- data/.fern/replay.lock +7 -1
- data/.version +1 -1
- data/CHANGELOG.md +6 -0
- data/examples/ruby-api/Gemfile.lock +1 -1
- data/lib/auth0/clients/types/create_client_request_content.rb +2 -0
- data/lib/auth0/experimentation/client.rb +10 -0
- data/lib/auth0/experimentation/experiments/client.rb +304 -0
- data/lib/auth0/experimentation/experiments/types/create_experiment_request_content.rb +27 -0
- data/lib/auth0/experimentation/experiments/types/list_experiments_request_parameters.rb +21 -0
- data/lib/auth0/experimentation/experiments/types/update_experiment_request_parameters.rb +25 -0
- data/lib/auth0/experimentation/experiments/types/update_experiment_status_request_content.rb +15 -0
- data/lib/auth0/experimentation/feature_flags/client.rb +280 -0
- data/lib/auth0/experimentation/feature_flags/types/create_feature_flag_request_content.rb +17 -0
- data/lib/auth0/experimentation/feature_flags/types/list_feature_flags_request_parameters.rb +19 -0
- data/lib/auth0/experimentation/feature_flags/types/update_feature_flag_request_content.rb +19 -0
- data/lib/auth0/experimentation/feature_flags/types/update_feature_flag_status_request_content.rb +15 -0
- data/lib/auth0/experimentation/feature_flags/variations/client.rb +230 -0
- data/lib/auth0/experimentation/feature_flags/variations/types/create_variation_request_content.rb +21 -0
- data/lib/auth0/experimentation/feature_flags/variations/types/update_variation_request_content.rb +23 -0
- data/lib/auth0/experimentation/segments/client.rb +228 -0
- data/lib/auth0/experimentation/segments/types/create_segment_request_content.rb +17 -0
- data/lib/auth0/experimentation/segments/types/list_segments_request_parameters.rb +17 -0
- data/lib/auth0/experimentation/segments/types/update_segment_request_content.rb +19 -0
- data/lib/auth0/organizations/client.rb +0 -5
- data/lib/auth0/resource_servers/types/create_resource_server_request_content.rb +2 -0
- data/lib/auth0/resource_servers/types/update_resource_server_request_content.rb +2 -0
- data/lib/auth0/types/allocation_item.rb +27 -0
- data/lib/auth0/types/allocation_request_item.rb +19 -0
- data/lib/auth0/types/{connection_deletion_behavior_enum.rb → allocation_strategy_enum.rb} +3 -3
- data/lib/auth0/types/async_approval_notifications_channels_enum.rb +1 -0
- data/lib/auth0/types/authentication_flow_enum.rb +16 -0
- data/lib/auth0/types/client_oidc_backchannel_logout_initiators_enum.rb +1 -0
- data/lib/auth0/types/client_oidc_support_allowed_scopes_enum.rb +14 -0
- data/lib/auth0/types/client_oidc_support_post.rb +15 -0
- data/lib/auth0/types/create_experiment_response_content.rb +45 -0
- data/lib/auth0/types/create_feature_flag_parameters.rb +23 -0
- data/lib/auth0/types/create_feature_flag_response_content.rb +23 -0
- data/lib/auth0/types/create_resource_server_response_content.rb +2 -0
- data/lib/auth0/types/create_segment_response_content.rb +21 -0
- data/lib/auth0/types/create_variation_response_content.rb +21 -0
- data/lib/auth0/types/{organization_deletion_behavior_enum.rb → default_config_enum.rb} +3 -3
- data/lib/auth0/types/experiment_list_item.rb +45 -0
- data/lib/auth0/types/experiment_status_enum.rb +15 -0
- data/lib/auth0/types/experiment_transition_status_enum.rb +14 -0
- data/lib/auth0/types/experiment_validation_error.rb +11 -0
- data/lib/auth0/types/feature_flag.rb +23 -0
- data/lib/auth0/types/feature_flag_config_param.rb +13 -0
- data/lib/auth0/types/feature_flag_config_param_type_enum.rb +15 -0
- data/lib/auth0/types/feature_flag_config_params.rb +23 -0
- data/lib/auth0/types/feature_flag_status_enum.rb +13 -0
- data/lib/auth0/types/feature_flag_type_enum.rb +12 -0
- data/lib/auth0/types/get_experiment_response_content.rb +45 -0
- data/lib/auth0/types/get_feature_flag_response_content.rb +23 -0
- data/lib/auth0/types/get_resource_server_response_content.rb +2 -0
- data/lib/auth0/types/get_segment_response_content.rb +21 -0
- data/lib/auth0/types/get_variation_response_content.rb +21 -0
- data/lib/auth0/types/list_experiments_response_content.rb +11 -0
- data/lib/auth0/types/list_feature_flags_response_content.rb +11 -0
- data/lib/auth0/types/list_segments_response_content.rb +11 -0
- data/lib/auth0/types/list_variations_response_content.rb +9 -0
- data/lib/auth0/types/oauth_scope.rb +3 -1
- data/lib/auth0/types/resource_server.rb +2 -0
- data/lib/auth0/types/resource_server_search_response.rb +2 -0
- data/lib/auth0/types/segment.rb +21 -0
- data/lib/auth0/types/segment_contains_expression.rb +9 -0
- data/lib/auth0/types/segment_ends_with_expression.rb +9 -0
- data/lib/auth0/types/segment_exists_expression.rb +9 -0
- data/lib/auth0/types/segment_match_conditions.rb +30 -0
- data/lib/auth0/types/segment_match_expression.rb +19 -0
- data/lib/auth0/types/segment_not_match_conditions.rb +30 -0
- data/lib/auth0/types/segment_rule.rb +11 -0
- data/lib/auth0/types/segment_starts_with_expression.rb +9 -0
- data/lib/auth0/types/segment_type_enum.rb +12 -0
- data/lib/auth0/types/segment_type_filter_enum.rb +12 -0
- data/lib/auth0/types/update_experiment_response_content.rb +45 -0
- data/lib/auth0/types/update_experiment_status_response_content.rb +45 -0
- data/lib/auth0/types/update_feature_flag_parameters.rb +23 -0
- data/lib/auth0/types/update_feature_flag_response_content.rb +23 -0
- data/lib/auth0/types/update_feature_flag_status_response_content.rb +23 -0
- data/lib/auth0/types/update_resource_server_response_content.rb +2 -0
- data/lib/auth0/types/update_segment_response_content.rb +21 -0
- data/lib/auth0/types/update_variation_overrides_map.rb +23 -0
- data/lib/auth0/types/update_variation_response_content.rb +21 -0
- data/lib/auth0/types/validate_experiment_response_content.rb +11 -0
- data/lib/auth0/types/variation.rb +21 -0
- data/lib/auth0/types/variation_overrides_map.rb +23 -0
- data/lib/auth0/users/client.rb +24 -17
- data/lib/auth0/version.rb +1 -1
- data/lib/auth0.rb +68 -9
- data/wiremock/wiremock-mappings.json +861 -123
- metadata +70 -11
- data/lib/auth0/organizations/organization_template/client.rb +0 -132
- data/lib/auth0/types/organization_template.rb +0 -39
- data/lib/auth0/types/organization_template_allowed_strategy_enum.rb +0 -17
- data/lib/auth0/types/organization_template_role_visibility_enum.rb +0 -13
- data/lib/auth0/types/organization_template_role_visibility_override.rb +0 -12
- data/lib/auth0/types/organization_template_role_visibility_policy.rb +0 -12
- data/lib/auth0/types/organization_template_use_for_organization_discovery.rb +0 -12
|
@@ -0,0 +1,280 @@
|
|
|
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
|
+
# 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
|
+
# @return [Auth0::Variations::Client]
|
|
274
|
+
def variations
|
|
275
|
+
@variations ||= Auth0::Experimentation::FeatureFlags::Variations::Client.new(client: @client)
|
|
276
|
+
end
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
end
|
|
280
|
+
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,19 @@
|
|
|
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
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
data/lib/auth0/experimentation/feature_flags/types/update_feature_flag_status_request_content.rb
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Auth0
|
|
4
|
+
module Experimentation
|
|
5
|
+
module FeatureFlags
|
|
6
|
+
module Types
|
|
7
|
+
class UpdateFeatureFlagStatusRequestContent < Internal::Types::Model
|
|
8
|
+
field :id, -> { String }, optional: false, nullable: false
|
|
9
|
+
|
|
10
|
+
field :status, -> { Auth0::Types::FeatureFlagStatusEnum }, optional: false, nullable: false
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Auth0
|
|
4
|
+
module Experimentation
|
|
5
|
+
module FeatureFlags
|
|
6
|
+
module Variations
|
|
7
|
+
class Client
|
|
8
|
+
# @param client [Auth0::Internal::Http::RawClient]
|
|
9
|
+
#
|
|
10
|
+
# @return [void]
|
|
11
|
+
def initialize(client:)
|
|
12
|
+
@client = client
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Retrieve all variations defined for a specific feature flag.
|
|
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] :id
|
|
25
|
+
#
|
|
26
|
+
# @example
|
|
27
|
+
# client.experimentation.feature_flags.variations.list(id: "id")
|
|
28
|
+
#
|
|
29
|
+
# @return [Auth0::Types::ListVariationsResponseContent]
|
|
30
|
+
def list(request_options: {}, **params)
|
|
31
|
+
params = Auth0::Internal::Types::Utils.normalize_keys(params)
|
|
32
|
+
request = Auth0::Internal::JSON::Request.new(
|
|
33
|
+
base_url: request_options[:base_url],
|
|
34
|
+
method: "GET",
|
|
35
|
+
path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}/variations",
|
|
36
|
+
request_options: request_options
|
|
37
|
+
)
|
|
38
|
+
begin
|
|
39
|
+
response = @client.send(request)
|
|
40
|
+
rescue Net::HTTPRequestTimeout
|
|
41
|
+
raise Auth0::Errors::TimeoutError
|
|
42
|
+
end
|
|
43
|
+
code = response.code.to_i
|
|
44
|
+
if code.between?(200, 299)
|
|
45
|
+
(response.body.to_s.empty? ? nil : Auth0::Types::ListVariationsResponseContent.load(response.body))
|
|
46
|
+
else
|
|
47
|
+
error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
|
|
48
|
+
raise error_class.new(response.body, code: code)
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Create a new variation with parameter overrides for a specific feature flag.
|
|
53
|
+
#
|
|
54
|
+
# @param request_options [Hash]
|
|
55
|
+
# @param params [Auth0::Experimentation::FeatureFlags::Variations::Types::CreateVariationRequestContent]
|
|
56
|
+
# @option request_options [String] :base_url
|
|
57
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
58
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
59
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
60
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
61
|
+
# @option params [String] :id
|
|
62
|
+
#
|
|
63
|
+
# @example
|
|
64
|
+
# client.experimentation.feature_flags.variations.create(
|
|
65
|
+
# id: "id",
|
|
66
|
+
# name: "name",
|
|
67
|
+
# overrides: {
|
|
68
|
+
# key: "value"
|
|
69
|
+
# }
|
|
70
|
+
# )
|
|
71
|
+
#
|
|
72
|
+
# @return [Auth0::Types::CreateVariationResponseContent]
|
|
73
|
+
def create(request_options: {}, **params)
|
|
74
|
+
params = Auth0::Internal::Types::Utils.normalize_keys(params)
|
|
75
|
+
request_data = Auth0::Experimentation::FeatureFlags::Variations::Types::CreateVariationRequestContent.new(params).to_h
|
|
76
|
+
non_body_param_names = %w[id]
|
|
77
|
+
body = request_data.except(*non_body_param_names)
|
|
78
|
+
|
|
79
|
+
request = Auth0::Internal::JSON::Request.new(
|
|
80
|
+
base_url: request_options[:base_url],
|
|
81
|
+
method: "POST",
|
|
82
|
+
path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}/variations",
|
|
83
|
+
body: body,
|
|
84
|
+
request_options: request_options
|
|
85
|
+
)
|
|
86
|
+
begin
|
|
87
|
+
response = @client.send(request)
|
|
88
|
+
rescue Net::HTTPRequestTimeout
|
|
89
|
+
raise Auth0::Errors::TimeoutError
|
|
90
|
+
end
|
|
91
|
+
code = response.code.to_i
|
|
92
|
+
if code.between?(200, 299)
|
|
93
|
+
(response.body.to_s.empty? ? nil : Auth0::Types::CreateVariationResponseContent.load(response.body))
|
|
94
|
+
else
|
|
95
|
+
error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
|
|
96
|
+
raise error_class.new(response.body, code: code)
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Retrieve a single variation by its ID.
|
|
101
|
+
#
|
|
102
|
+
# @param request_options [Hash]
|
|
103
|
+
# @param params [Hash]
|
|
104
|
+
# @option request_options [String] :base_url
|
|
105
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
106
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
107
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
108
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
109
|
+
# @option params [String] :id
|
|
110
|
+
# @option params [String] :vid
|
|
111
|
+
#
|
|
112
|
+
# @example
|
|
113
|
+
# client.experimentation.feature_flags.variations.get(
|
|
114
|
+
# id: "id",
|
|
115
|
+
# vid: "vid"
|
|
116
|
+
# )
|
|
117
|
+
#
|
|
118
|
+
# @return [Auth0::Types::GetVariationResponseContent]
|
|
119
|
+
def get(request_options: {}, **params)
|
|
120
|
+
params = Auth0::Internal::Types::Utils.normalize_keys(params)
|
|
121
|
+
request = Auth0::Internal::JSON::Request.new(
|
|
122
|
+
base_url: request_options[:base_url],
|
|
123
|
+
method: "GET",
|
|
124
|
+
path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}/variations/#{URI.encode_uri_component(params[:vid].to_s)}",
|
|
125
|
+
request_options: request_options
|
|
126
|
+
)
|
|
127
|
+
begin
|
|
128
|
+
response = @client.send(request)
|
|
129
|
+
rescue Net::HTTPRequestTimeout
|
|
130
|
+
raise Auth0::Errors::TimeoutError
|
|
131
|
+
end
|
|
132
|
+
code = response.code.to_i
|
|
133
|
+
if code.between?(200, 299)
|
|
134
|
+
(response.body.to_s.empty? ? nil : Auth0::Types::GetVariationResponseContent.load(response.body))
|
|
135
|
+
else
|
|
136
|
+
error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
|
|
137
|
+
raise error_class.new(response.body, code: code)
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
# Delete a variation by ID. Returns 204 if the variation does not exist. Returns 404 if the parent feature
|
|
142
|
+
# flag does not exist.
|
|
143
|
+
#
|
|
144
|
+
# @param request_options [Hash]
|
|
145
|
+
# @param params [Hash]
|
|
146
|
+
# @option request_options [String] :base_url
|
|
147
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
148
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
149
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
150
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
151
|
+
# @option params [String] :id
|
|
152
|
+
# @option params [String] :vid
|
|
153
|
+
#
|
|
154
|
+
# @example
|
|
155
|
+
# client.experimentation.feature_flags.variations.delete(
|
|
156
|
+
# id: "id",
|
|
157
|
+
# vid: "vid"
|
|
158
|
+
# )
|
|
159
|
+
#
|
|
160
|
+
# @return [untyped]
|
|
161
|
+
def delete(request_options: {}, **params)
|
|
162
|
+
params = Auth0::Internal::Types::Utils.normalize_keys(params)
|
|
163
|
+
request = Auth0::Internal::JSON::Request.new(
|
|
164
|
+
base_url: request_options[:base_url],
|
|
165
|
+
method: "DELETE",
|
|
166
|
+
path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}/variations/#{URI.encode_uri_component(params[:vid].to_s)}",
|
|
167
|
+
request_options: request_options
|
|
168
|
+
)
|
|
169
|
+
begin
|
|
170
|
+
response = @client.send(request)
|
|
171
|
+
rescue Net::HTTPRequestTimeout
|
|
172
|
+
raise Auth0::Errors::TimeoutError
|
|
173
|
+
end
|
|
174
|
+
code = response.code.to_i
|
|
175
|
+
return if code.between?(200, 299)
|
|
176
|
+
|
|
177
|
+
error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
|
|
178
|
+
raise error_class.new(response.body, code: code)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
# Partially update a variation by ID. Only provided fields are updated.
|
|
182
|
+
#
|
|
183
|
+
# @param request_options [Hash]
|
|
184
|
+
# @param params [Auth0::Experimentation::FeatureFlags::Variations::Types::UpdateVariationRequestContent]
|
|
185
|
+
# @option request_options [String] :base_url
|
|
186
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
187
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
188
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
189
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
190
|
+
# @option params [String] :id
|
|
191
|
+
# @option params [String] :vid
|
|
192
|
+
#
|
|
193
|
+
# @example
|
|
194
|
+
# client.experimentation.feature_flags.variations.update(
|
|
195
|
+
# id: "id",
|
|
196
|
+
# vid: "vid"
|
|
197
|
+
# )
|
|
198
|
+
#
|
|
199
|
+
# @return [Auth0::Types::UpdateVariationResponseContent]
|
|
200
|
+
def update(request_options: {}, **params)
|
|
201
|
+
params = Auth0::Internal::Types::Utils.normalize_keys(params)
|
|
202
|
+
request_data = Auth0::Experimentation::FeatureFlags::Variations::Types::UpdateVariationRequestContent.new(params).to_h
|
|
203
|
+
non_body_param_names = %w[id vid]
|
|
204
|
+
body = request_data.except(*non_body_param_names)
|
|
205
|
+
|
|
206
|
+
request = Auth0::Internal::JSON::Request.new(
|
|
207
|
+
base_url: request_options[:base_url],
|
|
208
|
+
method: "PATCH",
|
|
209
|
+
path: "experimentation/feature-flags/#{URI.encode_uri_component(params[:id].to_s)}/variations/#{URI.encode_uri_component(params[:vid].to_s)}",
|
|
210
|
+
body: body,
|
|
211
|
+
request_options: request_options
|
|
212
|
+
)
|
|
213
|
+
begin
|
|
214
|
+
response = @client.send(request)
|
|
215
|
+
rescue Net::HTTPRequestTimeout
|
|
216
|
+
raise Auth0::Errors::TimeoutError
|
|
217
|
+
end
|
|
218
|
+
code = response.code.to_i
|
|
219
|
+
if code.between?(200, 299)
|
|
220
|
+
(response.body.to_s.empty? ? nil : Auth0::Types::UpdateVariationResponseContent.load(response.body))
|
|
221
|
+
else
|
|
222
|
+
error_class = Auth0::Errors::ResponseError.subclass_for_code(code)
|
|
223
|
+
raise error_class.new(response.body, code: code)
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
end
|
|
229
|
+
end
|
|
230
|
+
end
|
data/lib/auth0/experimentation/feature_flags/variations/types/create_variation_request_content.rb
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Auth0
|
|
4
|
+
module Experimentation
|
|
5
|
+
module FeatureFlags
|
|
6
|
+
module Variations
|
|
7
|
+
module Types
|
|
8
|
+
class CreateVariationRequestContent < Internal::Types::Model
|
|
9
|
+
field :id, -> { String }, optional: false, nullable: false
|
|
10
|
+
|
|
11
|
+
field :name, -> { String }, optional: false, nullable: false
|
|
12
|
+
|
|
13
|
+
field :description, -> { String }, optional: true, nullable: false
|
|
14
|
+
|
|
15
|
+
field :overrides, -> { Internal::Types::Hash[String, Object] }, optional: false, nullable: false
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
data/lib/auth0/experimentation/feature_flags/variations/types/update_variation_request_content.rb
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Auth0
|
|
4
|
+
module Experimentation
|
|
5
|
+
module FeatureFlags
|
|
6
|
+
module Variations
|
|
7
|
+
module Types
|
|
8
|
+
class UpdateVariationRequestContent < Internal::Types::Model
|
|
9
|
+
field :id, -> { String }, optional: false, nullable: false
|
|
10
|
+
|
|
11
|
+
field :vid, -> { String }, optional: false, nullable: false
|
|
12
|
+
|
|
13
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
14
|
+
|
|
15
|
+
field :description, -> { String }, optional: true, nullable: false
|
|
16
|
+
|
|
17
|
+
field :overrides, -> { Internal::Types::Hash[String, Object] }, optional: true, nullable: false
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|