launchdarkly_api 8.0.0 → 9.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (613) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +38 -8
  3. data/docs/ActionOutputRep.md +1 -1
  4. data/docs/ApprovalsApi.md +1 -1
  5. data/docs/Conflict.md +1 -1
  6. data/docs/CreateFlagConfigApprovalRequestRequest.md +1 -1
  7. data/docs/Decimal.md +20 -0
  8. data/docs/EvaluationReason.md +28 -0
  9. data/docs/ExperimentCollectionRep.md +22 -0
  10. data/docs/ExperimentPatchInput.md +20 -0
  11. data/docs/ExperimentPost.md +26 -0
  12. data/docs/{ExperimentResultsRep.md → ExperimentResults.md} +2 -2
  13. data/docs/ExperimentsBetaApi.md +473 -13
  14. data/docs/FeatureFlagScheduledChange.md +1 -1
  15. data/docs/FeatureFlagsApi.md +1 -1
  16. data/docs/FlagConfigApprovalRequestResponse.md +1 -1
  17. data/docs/FlagInput.md +20 -0
  18. data/docs/FlagRep.md +22 -0
  19. data/docs/FlagScheduledChangesInput.md +1 -1
  20. data/docs/FlagTriggerInput.md +1 -1
  21. data/docs/IterationExpandableProperties.md +20 -0
  22. data/docs/IterationInput.md +26 -0
  23. data/docs/IterationRep.md +38 -0
  24. data/docs/MetricInput.md +20 -0
  25. data/docs/MetricRep.md +3 -43
  26. data/docs/NullDecimal.md +20 -0
  27. data/docs/ParameterRep.md +20 -0
  28. data/docs/PostFlagScheduledChangesInput.md +1 -1
  29. data/docs/ScheduledChangesApi.md +2 -2
  30. data/docs/SegmentsBetaApi.md +11 -5
  31. data/docs/StageInputRep.md +2 -0
  32. data/docs/StatisticRep.md +2 -0
  33. data/docs/TeamPatchInput.md +1 -1
  34. data/docs/TreatmentInput.md +24 -0
  35. data/docs/TreatmentParameterInput.md +20 -0
  36. data/docs/TreatmentRep.md +26 -0
  37. data/docs/TriggerPost.md +1 -1
  38. data/docs/TriggerWorkflowRep.md +1 -1
  39. data/docs/UserFlagSetting.md +3 -1
  40. data/launchdarkly_api.gemspec +2 -2
  41. data/lib/launchdarkly_api/api/access_tokens_api.rb +1 -1
  42. data/lib/launchdarkly_api/api/account_members_api.rb +1 -1
  43. data/lib/launchdarkly_api/api/account_usage_beta_api.rb +1 -1
  44. data/lib/launchdarkly_api/api/approvals_api.rb +1 -1
  45. data/lib/launchdarkly_api/api/audit_log_api.rb +1 -1
  46. data/lib/launchdarkly_api/api/code_references_api.rb +1 -1
  47. data/lib/launchdarkly_api/api/custom_roles_api.rb +1 -1
  48. data/lib/launchdarkly_api/api/data_export_destinations_api.rb +1 -1
  49. data/lib/launchdarkly_api/api/environments_api.rb +1 -1
  50. data/lib/launchdarkly_api/api/experiments_beta_api.rb +494 -17
  51. data/lib/launchdarkly_api/api/feature_flags_api.rb +3 -3
  52. data/lib/launchdarkly_api/api/feature_flags_beta_api.rb +1 -1
  53. data/lib/launchdarkly_api/api/flag_links_beta_api.rb +1 -1
  54. data/lib/launchdarkly_api/api/flag_triggers_api.rb +1 -1
  55. data/lib/launchdarkly_api/api/integration_audit_log_subscriptions_api.rb +1 -1
  56. data/lib/launchdarkly_api/api/integration_delivery_configurations_beta_api.rb +1 -1
  57. data/lib/launchdarkly_api/api/metrics_api.rb +1 -1
  58. data/lib/launchdarkly_api/api/other_api.rb +1 -1
  59. data/lib/launchdarkly_api/api/projects_api.rb +1 -1
  60. data/lib/launchdarkly_api/api/relay_proxy_configurations_api.rb +1 -1
  61. data/lib/launchdarkly_api/api/scheduled_changes_api.rb +1 -1
  62. data/lib/launchdarkly_api/api/segments_api.rb +1 -1
  63. data/lib/launchdarkly_api/api/segments_beta_api.rb +12 -1
  64. data/lib/launchdarkly_api/api/tags_api.rb +1 -1
  65. data/lib/launchdarkly_api/api/teams_beta_api.rb +1 -1
  66. data/lib/launchdarkly_api/api/user_settings_api.rb +1 -1
  67. data/lib/launchdarkly_api/api/users_api.rb +1 -1
  68. data/lib/launchdarkly_api/api/users_beta_api.rb +1 -1
  69. data/lib/launchdarkly_api/api/webhooks_api.rb +1 -1
  70. data/lib/launchdarkly_api/api/workflows_beta_api.rb +1 -1
  71. data/lib/launchdarkly_api/api_client.rb +1 -1
  72. data/lib/launchdarkly_api/api_error.rb +1 -1
  73. data/lib/launchdarkly_api/configuration.rb +1 -1
  74. data/lib/launchdarkly_api/models/access.rb +1 -1
  75. data/lib/launchdarkly_api/models/access_allowed_reason.rb +1 -1
  76. data/lib/launchdarkly_api/models/access_allowed_rep.rb +1 -1
  77. data/lib/launchdarkly_api/models/access_denied.rb +1 -1
  78. data/lib/launchdarkly_api/models/access_denied_reason.rb +1 -1
  79. data/lib/launchdarkly_api/models/access_token_post.rb +1 -1
  80. data/lib/launchdarkly_api/models/action_input_rep.rb +1 -1
  81. data/lib/launchdarkly_api/models/action_output_rep.rb +2 -2
  82. data/lib/launchdarkly_api/models/approval_condition_input_rep.rb +1 -1
  83. data/lib/launchdarkly_api/models/approval_condition_output_rep.rb +1 -1
  84. data/lib/launchdarkly_api/models/approval_settings.rb +1 -1
  85. data/lib/launchdarkly_api/models/audit_log_entry_listing_rep.rb +1 -1
  86. data/lib/launchdarkly_api/models/audit_log_entry_listing_rep_collection.rb +1 -1
  87. data/lib/launchdarkly_api/models/audit_log_entry_rep.rb +1 -1
  88. data/lib/launchdarkly_api/models/authorized_app_data_rep.rb +1 -1
  89. data/lib/launchdarkly_api/models/big_segment_target.rb +1 -1
  90. data/lib/launchdarkly_api/models/branch_collection_rep.rb +1 -1
  91. data/lib/launchdarkly_api/models/branch_rep.rb +1 -1
  92. data/lib/launchdarkly_api/models/clause.rb +1 -1
  93. data/lib/launchdarkly_api/models/client_side_availability.rb +1 -1
  94. data/lib/launchdarkly_api/models/client_side_availability_post.rb +1 -1
  95. data/lib/launchdarkly_api/models/condition_base_output_rep.rb +1 -1
  96. data/lib/launchdarkly_api/models/condition_input_rep.rb +1 -1
  97. data/lib/launchdarkly_api/models/condition_output_rep.rb +1 -1
  98. data/lib/launchdarkly_api/models/confidence_interval_rep.rb +1 -1
  99. data/lib/launchdarkly_api/models/conflict.rb +4 -5
  100. data/lib/launchdarkly_api/models/conflict_output_rep.rb +1 -1
  101. data/lib/launchdarkly_api/models/copied_from_env.rb +1 -1
  102. data/lib/launchdarkly_api/models/create_copy_flag_config_approval_request_request.rb +1 -1
  103. data/lib/launchdarkly_api/models/create_flag_config_approval_request_request.rb +2 -2
  104. data/lib/launchdarkly_api/models/custom_property.rb +1 -1
  105. data/lib/launchdarkly_api/models/custom_role.rb +1 -1
  106. data/lib/launchdarkly_api/models/custom_role_post.rb +1 -1
  107. data/lib/launchdarkly_api/models/custom_role_post_data.rb +1 -1
  108. data/lib/launchdarkly_api/models/custom_roles.rb +1 -1
  109. data/lib/launchdarkly_api/models/custom_workflow_input_rep.rb +1 -1
  110. data/lib/launchdarkly_api/models/custom_workflow_meta.rb +1 -1
  111. data/lib/launchdarkly_api/models/custom_workflow_output_rep.rb +1 -1
  112. data/lib/launchdarkly_api/models/custom_workflow_stage_meta.rb +1 -1
  113. data/lib/launchdarkly_api/models/custom_workflows_listing_output_rep.rb +1 -1
  114. data/lib/launchdarkly_api/models/decimal.rb +228 -0
  115. data/lib/launchdarkly_api/models/default_client_side_availability_post.rb +1 -1
  116. data/lib/launchdarkly_api/models/defaults.rb +1 -1
  117. data/lib/launchdarkly_api/models/dependent_flag.rb +1 -1
  118. data/lib/launchdarkly_api/models/dependent_flag_environment.rb +1 -1
  119. data/lib/launchdarkly_api/models/dependent_flags_by_environment.rb +1 -1
  120. data/lib/launchdarkly_api/models/destination.rb +1 -1
  121. data/lib/launchdarkly_api/models/destination_post.rb +1 -1
  122. data/lib/launchdarkly_api/models/destinations.rb +1 -1
  123. data/lib/launchdarkly_api/models/environment.rb +1 -1
  124. data/lib/launchdarkly_api/models/environment_post.rb +1 -1
  125. data/lib/launchdarkly_api/models/evaluation_reason.rb +274 -0
  126. data/lib/launchdarkly_api/models/execution_output_rep.rb +1 -1
  127. data/lib/launchdarkly_api/models/experiment_allocation_rep.rb +1 -1
  128. data/lib/launchdarkly_api/models/experiment_collection_rep.rb +240 -0
  129. data/lib/launchdarkly_api/models/experiment_enabled_period_rep.rb +1 -1
  130. data/lib/launchdarkly_api/models/experiment_environment_setting_rep.rb +1 -1
  131. data/lib/launchdarkly_api/models/experiment_info_rep.rb +1 -1
  132. data/lib/launchdarkly_api/models/experiment_metadata_rep.rb +1 -1
  133. data/lib/launchdarkly_api/models/experiment_patch_input.rb +229 -0
  134. data/lib/launchdarkly_api/models/experiment_post.rb +279 -0
  135. data/lib/launchdarkly_api/models/experiment_rep.rb +1 -1
  136. data/lib/launchdarkly_api/models/experiment_results.rb +280 -0
  137. data/lib/launchdarkly_api/models/experiment_stats_rep.rb +1 -1
  138. data/lib/launchdarkly_api/models/experiment_time_series_slice.rb +1 -1
  139. data/lib/launchdarkly_api/models/experiment_time_series_variation_slice.rb +1 -1
  140. data/lib/launchdarkly_api/models/experiment_totals_rep.rb +1 -1
  141. data/lib/launchdarkly_api/models/expiring_user_target_error.rb +1 -1
  142. data/lib/launchdarkly_api/models/expiring_user_target_get_response.rb +1 -1
  143. data/lib/launchdarkly_api/models/expiring_user_target_item.rb +1 -1
  144. data/lib/launchdarkly_api/models/expiring_user_target_patch_response.rb +1 -1
  145. data/lib/launchdarkly_api/models/export.rb +1 -1
  146. data/lib/launchdarkly_api/models/extinction.rb +1 -1
  147. data/lib/launchdarkly_api/models/extinction_collection_rep.rb +1 -1
  148. data/lib/launchdarkly_api/models/feature_flag.rb +1 -1
  149. data/lib/launchdarkly_api/models/feature_flag_body.rb +1 -1
  150. data/lib/launchdarkly_api/models/feature_flag_config.rb +1 -1
  151. data/lib/launchdarkly_api/models/feature_flag_scheduled_change.rb +2 -2
  152. data/lib/launchdarkly_api/models/feature_flag_scheduled_changes.rb +1 -1
  153. data/lib/launchdarkly_api/models/feature_flag_status.rb +1 -1
  154. data/lib/launchdarkly_api/models/feature_flag_status_across_environments.rb +1 -1
  155. data/lib/launchdarkly_api/models/feature_flag_statuses.rb +1 -1
  156. data/lib/launchdarkly_api/models/feature_flags.rb +1 -1
  157. data/lib/launchdarkly_api/models/file_rep.rb +1 -1
  158. data/lib/launchdarkly_api/models/flag_config_approval_request_response.rb +2 -2
  159. data/lib/launchdarkly_api/models/flag_config_approval_requests_response.rb +1 -1
  160. data/lib/launchdarkly_api/models/flag_copy_config_environment.rb +1 -1
  161. data/lib/launchdarkly_api/models/flag_copy_config_post.rb +1 -1
  162. data/lib/launchdarkly_api/models/flag_global_attributes_rep.rb +1 -1
  163. data/lib/launchdarkly_api/models/flag_input.rb +237 -0
  164. data/lib/launchdarkly_api/models/flag_link_collection_rep.rb +1 -1
  165. data/lib/launchdarkly_api/models/flag_link_member.rb +1 -1
  166. data/lib/launchdarkly_api/models/flag_link_post.rb +1 -1
  167. data/lib/launchdarkly_api/models/flag_link_rep.rb +1 -1
  168. data/lib/launchdarkly_api/models/flag_listing_rep.rb +1 -1
  169. data/lib/launchdarkly_api/models/flag_rep.rb +243 -0
  170. data/lib/launchdarkly_api/models/flag_scheduled_changes_input.rb +2 -2
  171. data/lib/launchdarkly_api/models/flag_status_rep.rb +1 -1
  172. data/lib/launchdarkly_api/models/flag_summary.rb +1 -1
  173. data/lib/launchdarkly_api/models/flag_trigger_input.rb +2 -2
  174. data/lib/launchdarkly_api/models/forbidden_error_rep.rb +1 -1
  175. data/lib/launchdarkly_api/models/hunk_rep.rb +1 -1
  176. data/lib/launchdarkly_api/models/import.rb +1 -1
  177. data/lib/launchdarkly_api/models/initiator_rep.rb +1 -1
  178. data/lib/launchdarkly_api/models/integration.rb +1 -1
  179. data/lib/launchdarkly_api/models/integration_delivery_configuration.rb +1 -1
  180. data/lib/launchdarkly_api/models/integration_delivery_configuration_collection.rb +1 -1
  181. data/lib/launchdarkly_api/models/integration_delivery_configuration_collection_links.rb +1 -1
  182. data/lib/launchdarkly_api/models/integration_delivery_configuration_links.rb +1 -1
  183. data/lib/launchdarkly_api/models/integration_delivery_configuration_post.rb +1 -1
  184. data/lib/launchdarkly_api/models/integration_delivery_configuration_response.rb +1 -1
  185. data/lib/launchdarkly_api/models/integration_metadata.rb +1 -1
  186. data/lib/launchdarkly_api/models/integration_status.rb +1 -1
  187. data/lib/launchdarkly_api/models/integration_status_rep.rb +1 -1
  188. data/lib/launchdarkly_api/models/integration_subscription_status_rep.rb +1 -1
  189. data/lib/launchdarkly_api/models/integrations.rb +1 -1
  190. data/lib/launchdarkly_api/models/invalid_request_error_rep.rb +1 -1
  191. data/lib/launchdarkly_api/models/ip_list.rb +1 -1
  192. data/lib/launchdarkly_api/models/iteration_expandable_properties.rb +231 -0
  193. data/lib/launchdarkly_api/models/iteration_input.rb +280 -0
  194. data/lib/launchdarkly_api/models/iteration_rep.rb +324 -0
  195. data/lib/launchdarkly_api/models/last_seen_metadata.rb +1 -1
  196. data/lib/launchdarkly_api/models/link.rb +1 -1
  197. data/lib/launchdarkly_api/models/member.rb +1 -1
  198. data/lib/launchdarkly_api/models/member_data_rep.rb +1 -1
  199. data/lib/launchdarkly_api/models/member_import_item.rb +1 -1
  200. data/lib/launchdarkly_api/models/member_permission_grant_summary_rep.rb +1 -1
  201. data/lib/launchdarkly_api/models/member_summary.rb +1 -1
  202. data/lib/launchdarkly_api/models/member_team_summary_rep.rb +1 -1
  203. data/lib/launchdarkly_api/models/member_teams_post_input.rb +1 -1
  204. data/lib/launchdarkly_api/models/members.rb +1 -1
  205. data/lib/launchdarkly_api/models/method_not_allowed_error_rep.rb +1 -1
  206. data/lib/launchdarkly_api/models/metric_collection_rep.rb +1 -1
  207. data/lib/launchdarkly_api/models/metric_input.rb +237 -0
  208. data/lib/launchdarkly_api/models/metric_listing_rep.rb +1 -1
  209. data/lib/launchdarkly_api/models/metric_post.rb +1 -1
  210. data/lib/launchdarkly_api/models/metric_rep.rb +5 -257
  211. data/lib/launchdarkly_api/models/metric_seen.rb +1 -1
  212. data/lib/launchdarkly_api/models/modification.rb +1 -1
  213. data/lib/launchdarkly_api/models/multi_environment_dependent_flag.rb +1 -1
  214. data/lib/launchdarkly_api/models/multi_environment_dependent_flags.rb +1 -1
  215. data/lib/launchdarkly_api/models/new_member_form.rb +1 -1
  216. data/lib/launchdarkly_api/models/not_found_error_rep.rb +1 -1
  217. data/lib/launchdarkly_api/models/null_decimal.rb +227 -0
  218. data/lib/launchdarkly_api/models/parameter_rep.rb +227 -0
  219. data/lib/launchdarkly_api/models/parent_resource_rep.rb +1 -1
  220. data/lib/launchdarkly_api/models/patch_failed_error_rep.rb +1 -1
  221. data/lib/launchdarkly_api/models/patch_operation.rb +1 -1
  222. data/lib/launchdarkly_api/models/patch_segment_instruction.rb +1 -1
  223. data/lib/launchdarkly_api/models/patch_segment_request.rb +1 -1
  224. data/lib/launchdarkly_api/models/patch_with_comment.rb +1 -1
  225. data/lib/launchdarkly_api/models/permission_grant_input.rb +1 -1
  226. data/lib/launchdarkly_api/models/post_approval_request_apply_request.rb +1 -1
  227. data/lib/launchdarkly_api/models/post_approval_request_review_request.rb +1 -1
  228. data/lib/launchdarkly_api/models/post_flag_scheduled_changes_input.rb +2 -2
  229. data/lib/launchdarkly_api/models/prerequisite.rb +1 -1
  230. data/lib/launchdarkly_api/models/project.rb +1 -1
  231. data/lib/launchdarkly_api/models/project_listing_rep.rb +1 -1
  232. data/lib/launchdarkly_api/models/project_post.rb +1 -1
  233. data/lib/launchdarkly_api/models/project_summary.rb +1 -1
  234. data/lib/launchdarkly_api/models/projects.rb +1 -1
  235. data/lib/launchdarkly_api/models/pub_nub_detail_rep.rb +1 -1
  236. data/lib/launchdarkly_api/models/put_branch.rb +1 -1
  237. data/lib/launchdarkly_api/models/rate_limited_error_rep.rb +1 -1
  238. data/lib/launchdarkly_api/models/recent_trigger_body.rb +1 -1
  239. data/lib/launchdarkly_api/models/reference_rep.rb +1 -1
  240. data/lib/launchdarkly_api/models/relay_auto_config_collection_rep.rb +1 -1
  241. data/lib/launchdarkly_api/models/relay_auto_config_post.rb +1 -1
  242. data/lib/launchdarkly_api/models/relay_auto_config_rep.rb +1 -1
  243. data/lib/launchdarkly_api/models/repository_collection_rep.rb +1 -1
  244. data/lib/launchdarkly_api/models/repository_post.rb +1 -1
  245. data/lib/launchdarkly_api/models/repository_rep.rb +1 -1
  246. data/lib/launchdarkly_api/models/resolved_context.rb +1 -1
  247. data/lib/launchdarkly_api/models/resolved_image.rb +1 -1
  248. data/lib/launchdarkly_api/models/resolved_title.rb +1 -1
  249. data/lib/launchdarkly_api/models/resolved_ui_block_element.rb +1 -1
  250. data/lib/launchdarkly_api/models/resolved_ui_blocks.rb +1 -1
  251. data/lib/launchdarkly_api/models/resource_access.rb +1 -1
  252. data/lib/launchdarkly_api/models/resource_id_response.rb +1 -1
  253. data/lib/launchdarkly_api/models/review_output_rep.rb +1 -1
  254. data/lib/launchdarkly_api/models/review_response.rb +1 -1
  255. data/lib/launchdarkly_api/models/rollout.rb +1 -1
  256. data/lib/launchdarkly_api/models/rule.rb +1 -1
  257. data/lib/launchdarkly_api/models/schedule_condition_input_rep.rb +1 -1
  258. data/lib/launchdarkly_api/models/schedule_condition_output_rep.rb +1 -1
  259. data/lib/launchdarkly_api/models/sdk_list_rep.rb +1 -1
  260. data/lib/launchdarkly_api/models/sdk_version_list_rep.rb +1 -1
  261. data/lib/launchdarkly_api/models/sdk_version_rep.rb +1 -1
  262. data/lib/launchdarkly_api/models/segment_body.rb +1 -1
  263. data/lib/launchdarkly_api/models/segment_metadata.rb +1 -1
  264. data/lib/launchdarkly_api/models/segment_user_list.rb +1 -1
  265. data/lib/launchdarkly_api/models/segment_user_state.rb +1 -1
  266. data/lib/launchdarkly_api/models/series_list_rep.rb +1 -1
  267. data/lib/launchdarkly_api/models/source_env.rb +1 -1
  268. data/lib/launchdarkly_api/models/source_flag.rb +1 -1
  269. data/lib/launchdarkly_api/models/stage_input_rep.rb +11 -2
  270. data/lib/launchdarkly_api/models/stage_output_rep.rb +1 -1
  271. data/lib/launchdarkly_api/models/statement.rb +1 -1
  272. data/lib/launchdarkly_api/models/statement_post.rb +1 -1
  273. data/lib/launchdarkly_api/models/statement_post_data.rb +1 -1
  274. data/lib/launchdarkly_api/models/statement_rep.rb +1 -1
  275. data/lib/launchdarkly_api/models/statistic_collection_rep.rb +1 -1
  276. data/lib/launchdarkly_api/models/statistic_rep.rb +16 -2
  277. data/lib/launchdarkly_api/models/statistics_root.rb +1 -1
  278. data/lib/launchdarkly_api/models/status_conflict_error_rep.rb +1 -1
  279. data/lib/launchdarkly_api/models/subject_data_rep.rb +1 -1
  280. data/lib/launchdarkly_api/models/subscription_post.rb +1 -1
  281. data/lib/launchdarkly_api/models/tag_collection.rb +1 -1
  282. data/lib/launchdarkly_api/models/target.rb +1 -1
  283. data/lib/launchdarkly_api/models/target_resource_rep.rb +1 -1
  284. data/lib/launchdarkly_api/models/team.rb +1 -1
  285. data/lib/launchdarkly_api/models/team_custom_role.rb +1 -1
  286. data/lib/launchdarkly_api/models/team_custom_roles.rb +1 -1
  287. data/lib/launchdarkly_api/models/team_imports_rep.rb +1 -1
  288. data/lib/launchdarkly_api/models/team_maintainers.rb +1 -1
  289. data/lib/launchdarkly_api/models/team_patch_input.rb +2 -2
  290. data/lib/launchdarkly_api/models/team_post_input.rb +1 -1
  291. data/lib/launchdarkly_api/models/team_projects.rb +1 -1
  292. data/lib/launchdarkly_api/models/teams.rb +1 -1
  293. data/lib/launchdarkly_api/models/timestamp_rep.rb +1 -1
  294. data/lib/launchdarkly_api/models/title_rep.rb +1 -1
  295. data/lib/launchdarkly_api/models/token.rb +1 -1
  296. data/lib/launchdarkly_api/models/token_data_rep.rb +1 -1
  297. data/lib/launchdarkly_api/models/tokens.rb +1 -1
  298. data/lib/launchdarkly_api/models/treatment_input.rb +267 -0
  299. data/lib/launchdarkly_api/models/treatment_parameter_input.rb +237 -0
  300. data/lib/launchdarkly_api/models/treatment_rep.rb +266 -0
  301. data/lib/launchdarkly_api/models/trigger_post.rb +2 -2
  302. data/lib/launchdarkly_api/models/trigger_workflow_collection_rep.rb +1 -1
  303. data/lib/launchdarkly_api/models/trigger_workflow_rep.rb +2 -2
  304. data/lib/launchdarkly_api/models/unauthorized_error_rep.rb +1 -1
  305. data/lib/launchdarkly_api/models/url_post.rb +1 -1
  306. data/lib/launchdarkly_api/models/user.rb +1 -1
  307. data/lib/launchdarkly_api/models/user_attribute_names_rep.rb +1 -1
  308. data/lib/launchdarkly_api/models/user_flag_setting.rb +15 -6
  309. data/lib/launchdarkly_api/models/user_flag_settings.rb +1 -1
  310. data/lib/launchdarkly_api/models/user_record.rb +1 -1
  311. data/lib/launchdarkly_api/models/user_record_rep.rb +1 -1
  312. data/lib/launchdarkly_api/models/user_segment.rb +1 -1
  313. data/lib/launchdarkly_api/models/user_segment_rule.rb +1 -1
  314. data/lib/launchdarkly_api/models/user_segments.rb +1 -1
  315. data/lib/launchdarkly_api/models/users.rb +1 -1
  316. data/lib/launchdarkly_api/models/value_put.rb +1 -1
  317. data/lib/launchdarkly_api/models/variation.rb +1 -1
  318. data/lib/launchdarkly_api/models/variation_or_rollout_rep.rb +1 -1
  319. data/lib/launchdarkly_api/models/variation_summary.rb +1 -1
  320. data/lib/launchdarkly_api/models/versions_rep.rb +1 -1
  321. data/lib/launchdarkly_api/models/webhook.rb +1 -1
  322. data/lib/launchdarkly_api/models/webhook_post.rb +1 -1
  323. data/lib/launchdarkly_api/models/webhooks.rb +1 -1
  324. data/lib/launchdarkly_api/models/weighted_variation.rb +1 -1
  325. data/lib/launchdarkly_api/version.rb +2 -2
  326. data/lib/launchdarkly_api.rb +18 -2
  327. data/spec/api/access_tokens_api_spec.rb +1 -1
  328. data/spec/api/account_members_api_spec.rb +1 -1
  329. data/spec/api/account_usage_beta_api_spec.rb +1 -1
  330. data/spec/api/approvals_api_spec.rb +1 -1
  331. data/spec/api/audit_log_api_spec.rb +1 -1
  332. data/spec/api/code_references_api_spec.rb +1 -1
  333. data/spec/api/custom_roles_api_spec.rb +1 -1
  334. data/spec/api/data_export_destinations_api_spec.rb +1 -1
  335. data/spec/api/environments_api_spec.rb +1 -1
  336. data/spec/api/experiments_beta_api_spec.rb +90 -4
  337. data/spec/api/feature_flags_api_spec.rb +2 -2
  338. data/spec/api/feature_flags_beta_api_spec.rb +1 -1
  339. data/spec/api/flag_links_beta_api_spec.rb +1 -1
  340. data/spec/api/flag_triggers_api_spec.rb +1 -1
  341. data/spec/api/integration_audit_log_subscriptions_api_spec.rb +1 -1
  342. data/spec/api/integration_delivery_configurations_beta_api_spec.rb +1 -1
  343. data/spec/api/metrics_api_spec.rb +1 -1
  344. data/spec/api/other_api_spec.rb +1 -1
  345. data/spec/api/projects_api_spec.rb +1 -1
  346. data/spec/api/relay_proxy_configurations_api_spec.rb +1 -1
  347. data/spec/api/scheduled_changes_api_spec.rb +1 -1
  348. data/spec/api/segments_api_spec.rb +1 -1
  349. data/spec/api/segments_beta_api_spec.rb +3 -1
  350. data/spec/api/tags_api_spec.rb +1 -1
  351. data/spec/api/teams_beta_api_spec.rb +1 -1
  352. data/spec/api/user_settings_api_spec.rb +1 -1
  353. data/spec/api/users_api_spec.rb +1 -1
  354. data/spec/api/users_beta_api_spec.rb +1 -1
  355. data/spec/api/webhooks_api_spec.rb +1 -1
  356. data/spec/api/workflows_beta_api_spec.rb +1 -1
  357. data/spec/api_client_spec.rb +1 -1
  358. data/spec/configuration_spec.rb +1 -1
  359. data/spec/models/access_allowed_reason_spec.rb +1 -1
  360. data/spec/models/access_allowed_rep_spec.rb +1 -1
  361. data/spec/models/access_denied_reason_spec.rb +1 -1
  362. data/spec/models/access_denied_spec.rb +1 -1
  363. data/spec/models/access_spec.rb +1 -1
  364. data/spec/models/access_token_post_spec.rb +1 -1
  365. data/spec/models/action_input_rep_spec.rb +1 -1
  366. data/spec/models/action_output_rep_spec.rb +1 -1
  367. data/spec/models/approval_condition_input_rep_spec.rb +1 -1
  368. data/spec/models/approval_condition_output_rep_spec.rb +1 -1
  369. data/spec/models/approval_settings_spec.rb +1 -1
  370. data/spec/models/audit_log_entry_listing_rep_collection_spec.rb +1 -1
  371. data/spec/models/audit_log_entry_listing_rep_spec.rb +1 -1
  372. data/spec/models/audit_log_entry_rep_spec.rb +1 -1
  373. data/spec/models/authorized_app_data_rep_spec.rb +1 -1
  374. data/spec/models/big_segment_target_spec.rb +1 -1
  375. data/spec/models/branch_collection_rep_spec.rb +1 -1
  376. data/spec/models/branch_rep_spec.rb +1 -1
  377. data/spec/models/clause_spec.rb +1 -1
  378. data/spec/models/client_side_availability_post_spec.rb +1 -1
  379. data/spec/models/client_side_availability_spec.rb +1 -1
  380. data/spec/models/condition_base_output_rep_spec.rb +1 -1
  381. data/spec/models/condition_input_rep_spec.rb +1 -1
  382. data/spec/models/condition_output_rep_spec.rb +1 -1
  383. data/spec/models/confidence_interval_rep_spec.rb +1 -1
  384. data/spec/models/conflict_output_rep_spec.rb +1 -1
  385. data/spec/models/conflict_spec.rb +1 -1
  386. data/spec/models/copied_from_env_spec.rb +1 -1
  387. data/spec/models/create_copy_flag_config_approval_request_request_spec.rb +1 -1
  388. data/spec/models/create_flag_config_approval_request_request_spec.rb +1 -1
  389. data/spec/models/custom_property_spec.rb +1 -1
  390. data/spec/models/custom_role_post_data_spec.rb +1 -1
  391. data/spec/models/custom_role_post_spec.rb +1 -1
  392. data/spec/models/custom_role_spec.rb +1 -1
  393. data/spec/models/custom_roles_spec.rb +1 -1
  394. data/spec/models/custom_workflow_input_rep_spec.rb +1 -1
  395. data/spec/models/custom_workflow_meta_spec.rb +1 -1
  396. data/spec/models/custom_workflow_output_rep_spec.rb +1 -1
  397. data/spec/models/custom_workflow_stage_meta_spec.rb +1 -1
  398. data/spec/models/custom_workflows_listing_output_rep_spec.rb +1 -1
  399. data/spec/models/decimal_spec.rb +40 -0
  400. data/spec/models/default_client_side_availability_post_spec.rb +1 -1
  401. data/spec/models/defaults_spec.rb +1 -1
  402. data/spec/models/dependent_flag_environment_spec.rb +1 -1
  403. data/spec/models/dependent_flag_spec.rb +1 -1
  404. data/spec/models/dependent_flags_by_environment_spec.rb +1 -1
  405. data/spec/models/destination_post_spec.rb +1 -1
  406. data/spec/models/destination_spec.rb +1 -1
  407. data/spec/models/destinations_spec.rb +1 -1
  408. data/spec/models/environment_post_spec.rb +1 -1
  409. data/spec/models/environment_spec.rb +1 -1
  410. data/spec/models/evaluation_reason_spec.rb +64 -0
  411. data/spec/models/execution_output_rep_spec.rb +1 -1
  412. data/spec/models/experiment_allocation_rep_spec.rb +1 -1
  413. data/spec/models/experiment_collection_rep_spec.rb +46 -0
  414. data/spec/models/experiment_enabled_period_rep_spec.rb +1 -1
  415. data/spec/models/experiment_environment_setting_rep_spec.rb +1 -1
  416. data/spec/models/experiment_info_rep_spec.rb +1 -1
  417. data/spec/models/experiment_metadata_rep_spec.rb +1 -1
  418. data/spec/models/experiment_patch_input_spec.rb +40 -0
  419. data/spec/models/experiment_post_spec.rb +58 -0
  420. data/spec/models/experiment_rep_spec.rb +1 -1
  421. data/spec/models/experiment_results_spec.rb +70 -0
  422. data/spec/models/experiment_stats_rep_spec.rb +1 -1
  423. data/spec/models/experiment_time_series_slice_spec.rb +1 -1
  424. data/spec/models/experiment_time_series_variation_slice_spec.rb +1 -1
  425. data/spec/models/experiment_totals_rep_spec.rb +1 -1
  426. data/spec/models/expiring_user_target_error_spec.rb +1 -1
  427. data/spec/models/expiring_user_target_get_response_spec.rb +1 -1
  428. data/spec/models/expiring_user_target_item_spec.rb +1 -1
  429. data/spec/models/expiring_user_target_patch_response_spec.rb +1 -1
  430. data/spec/models/export_spec.rb +1 -1
  431. data/spec/models/extinction_collection_rep_spec.rb +1 -1
  432. data/spec/models/extinction_spec.rb +1 -1
  433. data/spec/models/feature_flag_body_spec.rb +1 -1
  434. data/spec/models/feature_flag_config_spec.rb +1 -1
  435. data/spec/models/feature_flag_scheduled_change_spec.rb +1 -1
  436. data/spec/models/feature_flag_scheduled_changes_spec.rb +1 -1
  437. data/spec/models/feature_flag_spec.rb +1 -1
  438. data/spec/models/feature_flag_status_across_environments_spec.rb +1 -1
  439. data/spec/models/feature_flag_status_spec.rb +1 -1
  440. data/spec/models/feature_flag_statuses_spec.rb +1 -1
  441. data/spec/models/feature_flags_spec.rb +1 -1
  442. data/spec/models/file_rep_spec.rb +1 -1
  443. data/spec/models/flag_config_approval_request_response_spec.rb +1 -1
  444. data/spec/models/flag_config_approval_requests_response_spec.rb +1 -1
  445. data/spec/models/flag_copy_config_environment_spec.rb +1 -1
  446. data/spec/models/flag_copy_config_post_spec.rb +1 -1
  447. data/spec/models/flag_global_attributes_rep_spec.rb +1 -1
  448. data/spec/models/flag_input_spec.rb +40 -0
  449. data/spec/models/flag_link_collection_rep_spec.rb +1 -1
  450. data/spec/models/flag_link_member_spec.rb +1 -1
  451. data/spec/models/flag_link_post_spec.rb +1 -1
  452. data/spec/models/flag_link_rep_spec.rb +1 -1
  453. data/spec/models/flag_listing_rep_spec.rb +1 -1
  454. data/spec/models/flag_rep_spec.rb +46 -0
  455. data/spec/models/flag_scheduled_changes_input_spec.rb +1 -1
  456. data/spec/models/flag_status_rep_spec.rb +1 -1
  457. data/spec/models/flag_summary_spec.rb +1 -1
  458. data/spec/models/flag_trigger_input_spec.rb +1 -1
  459. data/spec/models/forbidden_error_rep_spec.rb +1 -1
  460. data/spec/models/hunk_rep_spec.rb +1 -1
  461. data/spec/models/import_spec.rb +1 -1
  462. data/spec/models/initiator_rep_spec.rb +1 -1
  463. data/spec/models/integration_delivery_configuration_collection_links_spec.rb +1 -1
  464. data/spec/models/integration_delivery_configuration_collection_spec.rb +1 -1
  465. data/spec/models/integration_delivery_configuration_links_spec.rb +1 -1
  466. data/spec/models/integration_delivery_configuration_post_spec.rb +1 -1
  467. data/spec/models/integration_delivery_configuration_response_spec.rb +1 -1
  468. data/spec/models/integration_delivery_configuration_spec.rb +1 -1
  469. data/spec/models/integration_metadata_spec.rb +1 -1
  470. data/spec/models/integration_spec.rb +1 -1
  471. data/spec/models/integration_status_rep_spec.rb +1 -1
  472. data/spec/models/integration_status_spec.rb +1 -1
  473. data/spec/models/integration_subscription_status_rep_spec.rb +1 -1
  474. data/spec/models/integrations_spec.rb +1 -1
  475. data/spec/models/invalid_request_error_rep_spec.rb +1 -1
  476. data/spec/models/ip_list_spec.rb +1 -1
  477. data/spec/models/iteration_expandable_properties_spec.rb +40 -0
  478. data/spec/models/iteration_input_spec.rb +58 -0
  479. data/spec/models/iteration_rep_spec.rb +94 -0
  480. data/spec/models/last_seen_metadata_spec.rb +1 -1
  481. data/spec/models/link_spec.rb +1 -1
  482. data/spec/models/member_data_rep_spec.rb +1 -1
  483. data/spec/models/member_import_item_spec.rb +1 -1
  484. data/spec/models/member_permission_grant_summary_rep_spec.rb +1 -1
  485. data/spec/models/member_spec.rb +1 -1
  486. data/spec/models/member_summary_spec.rb +1 -1
  487. data/spec/models/member_team_summary_rep_spec.rb +1 -1
  488. data/spec/models/member_teams_post_input_spec.rb +1 -1
  489. data/spec/models/members_spec.rb +1 -1
  490. data/spec/models/method_not_allowed_error_rep_spec.rb +1 -1
  491. data/spec/models/metric_collection_rep_spec.rb +1 -1
  492. data/spec/models/metric_input_spec.rb +40 -0
  493. data/spec/models/metric_listing_rep_spec.rb +1 -1
  494. data/spec/models/metric_post_spec.rb +1 -1
  495. data/spec/models/metric_rep_spec.rb +1 -129
  496. data/spec/models/metric_seen_spec.rb +1 -1
  497. data/spec/models/modification_spec.rb +1 -1
  498. data/spec/models/multi_environment_dependent_flag_spec.rb +1 -1
  499. data/spec/models/multi_environment_dependent_flags_spec.rb +1 -1
  500. data/spec/models/new_member_form_spec.rb +1 -1
  501. data/spec/models/not_found_error_rep_spec.rb +1 -1
  502. data/spec/models/null_decimal_spec.rb +40 -0
  503. data/spec/models/parameter_rep_spec.rb +40 -0
  504. data/spec/models/parent_resource_rep_spec.rb +1 -1
  505. data/spec/models/patch_failed_error_rep_spec.rb +1 -1
  506. data/spec/models/patch_operation_spec.rb +1 -1
  507. data/spec/models/patch_segment_instruction_spec.rb +1 -1
  508. data/spec/models/patch_segment_request_spec.rb +1 -1
  509. data/spec/models/patch_with_comment_spec.rb +1 -1
  510. data/spec/models/permission_grant_input_spec.rb +1 -1
  511. data/spec/models/post_approval_request_apply_request_spec.rb +1 -1
  512. data/spec/models/post_approval_request_review_request_spec.rb +1 -1
  513. data/spec/models/post_flag_scheduled_changes_input_spec.rb +1 -1
  514. data/spec/models/prerequisite_spec.rb +1 -1
  515. data/spec/models/project_listing_rep_spec.rb +1 -1
  516. data/spec/models/project_post_spec.rb +1 -1
  517. data/spec/models/project_spec.rb +1 -1
  518. data/spec/models/project_summary_spec.rb +1 -1
  519. data/spec/models/projects_spec.rb +1 -1
  520. data/spec/models/pub_nub_detail_rep_spec.rb +1 -1
  521. data/spec/models/put_branch_spec.rb +1 -1
  522. data/spec/models/rate_limited_error_rep_spec.rb +1 -1
  523. data/spec/models/recent_trigger_body_spec.rb +1 -1
  524. data/spec/models/reference_rep_spec.rb +1 -1
  525. data/spec/models/relay_auto_config_collection_rep_spec.rb +1 -1
  526. data/spec/models/relay_auto_config_post_spec.rb +1 -1
  527. data/spec/models/relay_auto_config_rep_spec.rb +1 -1
  528. data/spec/models/repository_collection_rep_spec.rb +1 -1
  529. data/spec/models/repository_post_spec.rb +1 -1
  530. data/spec/models/repository_rep_spec.rb +1 -1
  531. data/spec/models/resolved_context_spec.rb +1 -1
  532. data/spec/models/resolved_image_spec.rb +1 -1
  533. data/spec/models/resolved_title_spec.rb +1 -1
  534. data/spec/models/resolved_ui_block_element_spec.rb +1 -1
  535. data/spec/models/resolved_ui_blocks_spec.rb +1 -1
  536. data/spec/models/resource_access_spec.rb +1 -1
  537. data/spec/models/resource_id_response_spec.rb +1 -1
  538. data/spec/models/review_output_rep_spec.rb +1 -1
  539. data/spec/models/review_response_spec.rb +1 -1
  540. data/spec/models/rollout_spec.rb +1 -1
  541. data/spec/models/rule_spec.rb +1 -1
  542. data/spec/models/schedule_condition_input_rep_spec.rb +1 -1
  543. data/spec/models/schedule_condition_output_rep_spec.rb +1 -1
  544. data/spec/models/sdk_list_rep_spec.rb +1 -1
  545. data/spec/models/sdk_version_list_rep_spec.rb +1 -1
  546. data/spec/models/sdk_version_rep_spec.rb +1 -1
  547. data/spec/models/segment_body_spec.rb +1 -1
  548. data/spec/models/segment_metadata_spec.rb +1 -1
  549. data/spec/models/segment_user_list_spec.rb +1 -1
  550. data/spec/models/segment_user_state_spec.rb +1 -1
  551. data/spec/models/series_list_rep_spec.rb +1 -1
  552. data/spec/models/source_env_spec.rb +1 -1
  553. data/spec/models/source_flag_spec.rb +1 -1
  554. data/spec/models/stage_input_rep_spec.rb +7 -1
  555. data/spec/models/stage_output_rep_spec.rb +1 -1
  556. data/spec/models/statement_post_data_spec.rb +1 -1
  557. data/spec/models/statement_post_spec.rb +1 -1
  558. data/spec/models/statement_rep_spec.rb +1 -1
  559. data/spec/models/statement_spec.rb +1 -1
  560. data/spec/models/statistic_collection_rep_spec.rb +1 -1
  561. data/spec/models/statistic_rep_spec.rb +7 -1
  562. data/spec/models/statistics_root_spec.rb +1 -1
  563. data/spec/models/status_conflict_error_rep_spec.rb +1 -1
  564. data/spec/models/subject_data_rep_spec.rb +1 -1
  565. data/spec/models/subscription_post_spec.rb +1 -1
  566. data/spec/models/tag_collection_spec.rb +1 -1
  567. data/spec/models/target_resource_rep_spec.rb +1 -1
  568. data/spec/models/target_spec.rb +1 -1
  569. data/spec/models/team_custom_role_spec.rb +1 -1
  570. data/spec/models/team_custom_roles_spec.rb +1 -1
  571. data/spec/models/team_imports_rep_spec.rb +1 -1
  572. data/spec/models/team_maintainers_spec.rb +1 -1
  573. data/spec/models/team_patch_input_spec.rb +1 -1
  574. data/spec/models/team_post_input_spec.rb +1 -1
  575. data/spec/models/team_projects_spec.rb +1 -1
  576. data/spec/models/team_spec.rb +1 -1
  577. data/spec/models/teams_spec.rb +1 -1
  578. data/spec/models/timestamp_rep_spec.rb +1 -1
  579. data/spec/models/title_rep_spec.rb +1 -1
  580. data/spec/models/token_data_rep_spec.rb +1 -1
  581. data/spec/models/token_spec.rb +1 -1
  582. data/spec/models/tokens_spec.rb +1 -1
  583. data/spec/models/treatment_input_spec.rb +52 -0
  584. data/spec/models/treatment_parameter_input_spec.rb +40 -0
  585. data/spec/models/treatment_rep_spec.rb +58 -0
  586. data/spec/models/trigger_post_spec.rb +1 -1
  587. data/spec/models/trigger_workflow_collection_rep_spec.rb +1 -1
  588. data/spec/models/trigger_workflow_rep_spec.rb +1 -1
  589. data/spec/models/unauthorized_error_rep_spec.rb +1 -1
  590. data/spec/models/url_post_spec.rb +1 -1
  591. data/spec/models/user_attribute_names_rep_spec.rb +1 -1
  592. data/spec/models/user_flag_setting_spec.rb +7 -1
  593. data/spec/models/user_flag_settings_spec.rb +1 -1
  594. data/spec/models/user_record_rep_spec.rb +1 -1
  595. data/spec/models/user_record_spec.rb +1 -1
  596. data/spec/models/user_segment_rule_spec.rb +1 -1
  597. data/spec/models/user_segment_spec.rb +1 -1
  598. data/spec/models/user_segments_spec.rb +1 -1
  599. data/spec/models/user_spec.rb +1 -1
  600. data/spec/models/users_spec.rb +1 -1
  601. data/spec/models/value_put_spec.rb +1 -1
  602. data/spec/models/variation_or_rollout_rep_spec.rb +1 -1
  603. data/spec/models/variation_spec.rb +1 -1
  604. data/spec/models/variation_summary_spec.rb +1 -1
  605. data/spec/models/versions_rep_spec.rb +1 -1
  606. data/spec/models/webhook_post_spec.rb +1 -1
  607. data/spec/models/webhook_spec.rb +1 -1
  608. data/spec/models/webhooks_spec.rb +1 -1
  609. data/spec/models/weighted_variation_spec.rb +1 -1
  610. data/spec/spec_helper.rb +1 -1
  611. metadata +93 -18
  612. data/lib/launchdarkly_api/models/experiment_results_rep.rb +0 -280
  613. data/spec/models/experiment_results_rep_spec.rb +0 -70
@@ -4,17 +4,400 @@ All URIs are relative to *https://app.launchdarkly.com*
4
4
 
5
5
  | Method | HTTP request | Description |
6
6
  | ------ | ------------ | ----------- |
7
- | [**get_experiment**](ExperimentsBetaApi.md#get_experiment) | **GET** /api/v2/flags/{projectKey}/{featureFlagKey}/experiments/{environmentKey}/{metricKey} | Get experiment results |
7
+ | [**create_experiment**](ExperimentsBetaApi.md#create_experiment) | **POST** /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments | Create experiment |
8
+ | [**create_iteration**](ExperimentsBetaApi.md#create_iteration) | **POST** /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments/{experimentKey}/iterations | Create iteration |
9
+ | [**get_experiment**](ExperimentsBetaApi.md#get_experiment) | **GET** /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments/{experimentKey} | Get experiment |
10
+ | [**get_experiment_results**](ExperimentsBetaApi.md#get_experiment_results) | **GET** /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments/{experimentKey}/metrics/{metricKey}/results | Get experiment results |
11
+ | [**get_experiments**](ExperimentsBetaApi.md#get_experiments) | **GET** /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments | Get experiments |
12
+ | [**get_legacy_experiment_results**](ExperimentsBetaApi.md#get_legacy_experiment_results) | **GET** /api/v2/flags/{projectKey}/{featureFlagKey}/experiments/{environmentKey}/{metricKey} | Get legacy experiment results (deprecated) |
13
+ | [**patch_experiment**](ExperimentsBetaApi.md#patch_experiment) | **PATCH** /api/v2/projects/{projectKey}/environments/{environmentKey}/experiments/{experimentKey} | Patch experiment |
8
14
  | [**reset_experiment**](ExperimentsBetaApi.md#reset_experiment) | **DELETE** /api/v2/flags/{projectKey}/{featureFlagKey}/experiments/{environmentKey}/{metricKey}/results | Reset experiment results |
9
15
 
10
16
 
17
+ ## create_experiment
18
+
19
+ > <ExperimentRep> create_experiment(project_key, environment_key, experiment_post)
20
+
21
+ Create experiment
22
+
23
+ Create an experiment
24
+
25
+ ### Examples
26
+
27
+ ```ruby
28
+ require 'time'
29
+ require 'launchdarkly_api'
30
+ # setup authorization
31
+ LaunchDarklyApi.configure do |config|
32
+ # Configure API key authorization: ApiKey
33
+ config.api_key['ApiKey'] = 'YOUR API KEY'
34
+ # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
35
+ # config.api_key_prefix['ApiKey'] = 'Bearer'
36
+ end
37
+
38
+ api_instance = LaunchDarklyApi::ExperimentsBetaApi.new
39
+ project_key = 'project_key_example' # String | The project key
40
+ environment_key = 'environment_key_example' # String | The environment key
41
+ experiment_post = LaunchDarklyApi::ExperimentPost.new({name: 'name_example', description: 'description_example', maintainer_id: 'maintainer_id_example', key: 'key_example', iteration: LaunchDarklyApi::IterationInput.new({hypothesis: 'hypothesis_example', metrics: [LaunchDarklyApi::MetricInput.new({key: 'key_example', primary: false})], treatments: [LaunchDarklyApi::TreatmentInput.new({name: 'name_example', baseline: false, allocation_percent: 'allocation_percent_example', parameters: [LaunchDarklyApi::TreatmentParameterInput.new({flag_key: 'flag_key_example', variation_id: 'variation_id_example'})]})], flags: { key: LaunchDarklyApi::FlagInput.new({rule_id: 'rule_id_example', flag_config_version: 37})}})}) # ExperimentPost |
42
+
43
+ begin
44
+ # Create experiment
45
+ result = api_instance.create_experiment(project_key, environment_key, experiment_post)
46
+ p result
47
+ rescue LaunchDarklyApi::ApiError => e
48
+ puts "Error when calling ExperimentsBetaApi->create_experiment: #{e}"
49
+ end
50
+ ```
51
+
52
+ #### Using the create_experiment_with_http_info variant
53
+
54
+ This returns an Array which contains the response data, status code and headers.
55
+
56
+ > <Array(<ExperimentRep>, Integer, Hash)> create_experiment_with_http_info(project_key, environment_key, experiment_post)
57
+
58
+ ```ruby
59
+ begin
60
+ # Create experiment
61
+ data, status_code, headers = api_instance.create_experiment_with_http_info(project_key, environment_key, experiment_post)
62
+ p status_code # => 2xx
63
+ p headers # => { ... }
64
+ p data # => <ExperimentRep>
65
+ rescue LaunchDarklyApi::ApiError => e
66
+ puts "Error when calling ExperimentsBetaApi->create_experiment_with_http_info: #{e}"
67
+ end
68
+ ```
69
+
70
+ ### Parameters
71
+
72
+ | Name | Type | Description | Notes |
73
+ | ---- | ---- | ----------- | ----- |
74
+ | **project_key** | **String** | The project key | |
75
+ | **environment_key** | **String** | The environment key | |
76
+ | **experiment_post** | [**ExperimentPost**](ExperimentPost.md) | | |
77
+
78
+ ### Return type
79
+
80
+ [**ExperimentRep**](ExperimentRep.md)
81
+
82
+ ### Authorization
83
+
84
+ [ApiKey](../README.md#ApiKey)
85
+
86
+ ### HTTP request headers
87
+
88
+ - **Content-Type**: application/json
89
+ - **Accept**: application/json
90
+
91
+
92
+ ## create_iteration
93
+
94
+ > <IterationRep> create_iteration(project_key, environment_key, experiment_key, iteration_input)
95
+
96
+ Create iteration
97
+
98
+ Create an experiment iteration
99
+
100
+ ### Examples
101
+
102
+ ```ruby
103
+ require 'time'
104
+ require 'launchdarkly_api'
105
+ # setup authorization
106
+ LaunchDarklyApi.configure do |config|
107
+ # Configure API key authorization: ApiKey
108
+ config.api_key['ApiKey'] = 'YOUR API KEY'
109
+ # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
110
+ # config.api_key_prefix['ApiKey'] = 'Bearer'
111
+ end
112
+
113
+ api_instance = LaunchDarklyApi::ExperimentsBetaApi.new
114
+ project_key = 'project_key_example' # String | The project key
115
+ environment_key = 'environment_key_example' # String | The environment key
116
+ experiment_key = 'experiment_key_example' # String | The experiment key
117
+ iteration_input = LaunchDarklyApi::IterationInput.new({hypothesis: 'hypothesis_example', metrics: [LaunchDarklyApi::MetricInput.new({key: 'key_example', primary: false})], treatments: [LaunchDarklyApi::TreatmentInput.new({name: 'name_example', baseline: false, allocation_percent: 'allocation_percent_example', parameters: [LaunchDarklyApi::TreatmentParameterInput.new({flag_key: 'flag_key_example', variation_id: 'variation_id_example'})]})], flags: { key: LaunchDarklyApi::FlagInput.new({rule_id: 'rule_id_example', flag_config_version: 37})}}) # IterationInput |
118
+
119
+ begin
120
+ # Create iteration
121
+ result = api_instance.create_iteration(project_key, environment_key, experiment_key, iteration_input)
122
+ p result
123
+ rescue LaunchDarklyApi::ApiError => e
124
+ puts "Error when calling ExperimentsBetaApi->create_iteration: #{e}"
125
+ end
126
+ ```
127
+
128
+ #### Using the create_iteration_with_http_info variant
129
+
130
+ This returns an Array which contains the response data, status code and headers.
131
+
132
+ > <Array(<IterationRep>, Integer, Hash)> create_iteration_with_http_info(project_key, environment_key, experiment_key, iteration_input)
133
+
134
+ ```ruby
135
+ begin
136
+ # Create iteration
137
+ data, status_code, headers = api_instance.create_iteration_with_http_info(project_key, environment_key, experiment_key, iteration_input)
138
+ p status_code # => 2xx
139
+ p headers # => { ... }
140
+ p data # => <IterationRep>
141
+ rescue LaunchDarklyApi::ApiError => e
142
+ puts "Error when calling ExperimentsBetaApi->create_iteration_with_http_info: #{e}"
143
+ end
144
+ ```
145
+
146
+ ### Parameters
147
+
148
+ | Name | Type | Description | Notes |
149
+ | ---- | ---- | ----------- | ----- |
150
+ | **project_key** | **String** | The project key | |
151
+ | **environment_key** | **String** | The environment key | |
152
+ | **experiment_key** | **String** | The experiment key | |
153
+ | **iteration_input** | [**IterationInput**](IterationInput.md) | | |
154
+
155
+ ### Return type
156
+
157
+ [**IterationRep**](IterationRep.md)
158
+
159
+ ### Authorization
160
+
161
+ [ApiKey](../README.md#ApiKey)
162
+
163
+ ### HTTP request headers
164
+
165
+ - **Content-Type**: application/json
166
+ - **Accept**: application/json
167
+
168
+
11
169
  ## get_experiment
12
170
 
13
- > <ExperimentResultsRep> get_experiment(project_key, feature_flag_key, environment_key, metric_key, opts)
171
+ > <ExperimentRep> get_experiment(project_key, environment_key, experiment_key)
172
+
173
+ Get experiment
174
+
175
+ Get details about an experiment
176
+
177
+ ### Examples
178
+
179
+ ```ruby
180
+ require 'time'
181
+ require 'launchdarkly_api'
182
+ # setup authorization
183
+ LaunchDarklyApi.configure do |config|
184
+ # Configure API key authorization: ApiKey
185
+ config.api_key['ApiKey'] = 'YOUR API KEY'
186
+ # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
187
+ # config.api_key_prefix['ApiKey'] = 'Bearer'
188
+ end
189
+
190
+ api_instance = LaunchDarklyApi::ExperimentsBetaApi.new
191
+ project_key = 'project_key_example' # String | The project key
192
+ environment_key = 'environment_key_example' # String | The environment key
193
+ experiment_key = 'experiment_key_example' # String | The experiment key
194
+
195
+ begin
196
+ # Get experiment
197
+ result = api_instance.get_experiment(project_key, environment_key, experiment_key)
198
+ p result
199
+ rescue LaunchDarklyApi::ApiError => e
200
+ puts "Error when calling ExperimentsBetaApi->get_experiment: #{e}"
201
+ end
202
+ ```
203
+
204
+ #### Using the get_experiment_with_http_info variant
205
+
206
+ This returns an Array which contains the response data, status code and headers.
207
+
208
+ > <Array(<ExperimentRep>, Integer, Hash)> get_experiment_with_http_info(project_key, environment_key, experiment_key)
209
+
210
+ ```ruby
211
+ begin
212
+ # Get experiment
213
+ data, status_code, headers = api_instance.get_experiment_with_http_info(project_key, environment_key, experiment_key)
214
+ p status_code # => 2xx
215
+ p headers # => { ... }
216
+ p data # => <ExperimentRep>
217
+ rescue LaunchDarklyApi::ApiError => e
218
+ puts "Error when calling ExperimentsBetaApi->get_experiment_with_http_info: #{e}"
219
+ end
220
+ ```
221
+
222
+ ### Parameters
223
+
224
+ | Name | Type | Description | Notes |
225
+ | ---- | ---- | ----------- | ----- |
226
+ | **project_key** | **String** | The project key | |
227
+ | **environment_key** | **String** | The environment key | |
228
+ | **experiment_key** | **String** | The experiment key | |
229
+
230
+ ### Return type
231
+
232
+ [**ExperimentRep**](ExperimentRep.md)
233
+
234
+ ### Authorization
235
+
236
+ [ApiKey](../README.md#ApiKey)
237
+
238
+ ### HTTP request headers
239
+
240
+ - **Content-Type**: Not defined
241
+ - **Accept**: application/json
242
+
243
+
244
+ ## get_experiment_results
245
+
246
+ > <ExperimentResults> get_experiment_results(project_key, environment_key, experiment_key, metric_key)
14
247
 
15
248
  Get experiment results
16
249
 
17
- Get detailed experiment result data
250
+ Get results from an experiment for a particular metric
251
+
252
+ ### Examples
253
+
254
+ ```ruby
255
+ require 'time'
256
+ require 'launchdarkly_api'
257
+ # setup authorization
258
+ LaunchDarklyApi.configure do |config|
259
+ # Configure API key authorization: ApiKey
260
+ config.api_key['ApiKey'] = 'YOUR API KEY'
261
+ # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
262
+ # config.api_key_prefix['ApiKey'] = 'Bearer'
263
+ end
264
+
265
+ api_instance = LaunchDarklyApi::ExperimentsBetaApi.new
266
+ project_key = 'project_key_example' # String | The project key
267
+ environment_key = 'environment_key_example' # String | The environment key
268
+ experiment_key = 'experiment_key_example' # String | The experiment key
269
+ metric_key = 'metric_key_example' # String | The metric key
270
+
271
+ begin
272
+ # Get experiment results
273
+ result = api_instance.get_experiment_results(project_key, environment_key, experiment_key, metric_key)
274
+ p result
275
+ rescue LaunchDarklyApi::ApiError => e
276
+ puts "Error when calling ExperimentsBetaApi->get_experiment_results: #{e}"
277
+ end
278
+ ```
279
+
280
+ #### Using the get_experiment_results_with_http_info variant
281
+
282
+ This returns an Array which contains the response data, status code and headers.
283
+
284
+ > <Array(<ExperimentResults>, Integer, Hash)> get_experiment_results_with_http_info(project_key, environment_key, experiment_key, metric_key)
285
+
286
+ ```ruby
287
+ begin
288
+ # Get experiment results
289
+ data, status_code, headers = api_instance.get_experiment_results_with_http_info(project_key, environment_key, experiment_key, metric_key)
290
+ p status_code # => 2xx
291
+ p headers # => { ... }
292
+ p data # => <ExperimentResults>
293
+ rescue LaunchDarklyApi::ApiError => e
294
+ puts "Error when calling ExperimentsBetaApi->get_experiment_results_with_http_info: #{e}"
295
+ end
296
+ ```
297
+
298
+ ### Parameters
299
+
300
+ | Name | Type | Description | Notes |
301
+ | ---- | ---- | ----------- | ----- |
302
+ | **project_key** | **String** | The project key | |
303
+ | **environment_key** | **String** | The environment key | |
304
+ | **experiment_key** | **String** | The experiment key | |
305
+ | **metric_key** | **String** | The metric key | |
306
+
307
+ ### Return type
308
+
309
+ [**ExperimentResults**](ExperimentResults.md)
310
+
311
+ ### Authorization
312
+
313
+ [ApiKey](../README.md#ApiKey)
314
+
315
+ ### HTTP request headers
316
+
317
+ - **Content-Type**: Not defined
318
+ - **Accept**: application/json
319
+
320
+
321
+ ## get_experiments
322
+
323
+ > <ExperimentCollectionRep> get_experiments(project_key, environment_key)
324
+
325
+ Get experiments
326
+
327
+ Get details about all experiments in an environment
328
+
329
+ ### Examples
330
+
331
+ ```ruby
332
+ require 'time'
333
+ require 'launchdarkly_api'
334
+ # setup authorization
335
+ LaunchDarklyApi.configure do |config|
336
+ # Configure API key authorization: ApiKey
337
+ config.api_key['ApiKey'] = 'YOUR API KEY'
338
+ # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
339
+ # config.api_key_prefix['ApiKey'] = 'Bearer'
340
+ end
341
+
342
+ api_instance = LaunchDarklyApi::ExperimentsBetaApi.new
343
+ project_key = 'project_key_example' # String | The project key
344
+ environment_key = 'environment_key_example' # String | The environment key
345
+
346
+ begin
347
+ # Get experiments
348
+ result = api_instance.get_experiments(project_key, environment_key)
349
+ p result
350
+ rescue LaunchDarklyApi::ApiError => e
351
+ puts "Error when calling ExperimentsBetaApi->get_experiments: #{e}"
352
+ end
353
+ ```
354
+
355
+ #### Using the get_experiments_with_http_info variant
356
+
357
+ This returns an Array which contains the response data, status code and headers.
358
+
359
+ > <Array(<ExperimentCollectionRep>, Integer, Hash)> get_experiments_with_http_info(project_key, environment_key)
360
+
361
+ ```ruby
362
+ begin
363
+ # Get experiments
364
+ data, status_code, headers = api_instance.get_experiments_with_http_info(project_key, environment_key)
365
+ p status_code # => 2xx
366
+ p headers # => { ... }
367
+ p data # => <ExperimentCollectionRep>
368
+ rescue LaunchDarklyApi::ApiError => e
369
+ puts "Error when calling ExperimentsBetaApi->get_experiments_with_http_info: #{e}"
370
+ end
371
+ ```
372
+
373
+ ### Parameters
374
+
375
+ | Name | Type | Description | Notes |
376
+ | ---- | ---- | ----------- | ----- |
377
+ | **project_key** | **String** | The project key | |
378
+ | **environment_key** | **String** | The environment key | |
379
+
380
+ ### Return type
381
+
382
+ [**ExperimentCollectionRep**](ExperimentCollectionRep.md)
383
+
384
+ ### Authorization
385
+
386
+ [ApiKey](../README.md#ApiKey)
387
+
388
+ ### HTTP request headers
389
+
390
+ - **Content-Type**: Not defined
391
+ - **Accept**: application/json
392
+
393
+
394
+ ## get_legacy_experiment_results
395
+
396
+ > <ExperimentResults> get_legacy_experiment_results(project_key, feature_flag_key, environment_key, metric_key, opts)
397
+
398
+ Get legacy experiment results (deprecated)
399
+
400
+ Get detailed experiment result data for legacy experiments
18
401
 
19
402
  ### Examples
20
403
 
@@ -40,29 +423,29 @@ opts = {
40
423
  }
41
424
 
42
425
  begin
43
- # Get experiment results
44
- result = api_instance.get_experiment(project_key, feature_flag_key, environment_key, metric_key, opts)
426
+ # Get legacy experiment results (deprecated)
427
+ result = api_instance.get_legacy_experiment_results(project_key, feature_flag_key, environment_key, metric_key, opts)
45
428
  p result
46
429
  rescue LaunchDarklyApi::ApiError => e
47
- puts "Error when calling ExperimentsBetaApi->get_experiment: #{e}"
430
+ puts "Error when calling ExperimentsBetaApi->get_legacy_experiment_results: #{e}"
48
431
  end
49
432
  ```
50
433
 
51
- #### Using the get_experiment_with_http_info variant
434
+ #### Using the get_legacy_experiment_results_with_http_info variant
52
435
 
53
436
  This returns an Array which contains the response data, status code and headers.
54
437
 
55
- > <Array(<ExperimentResultsRep>, Integer, Hash)> get_experiment_with_http_info(project_key, feature_flag_key, environment_key, metric_key, opts)
438
+ > <Array(<ExperimentResults>, Integer, Hash)> get_legacy_experiment_results_with_http_info(project_key, feature_flag_key, environment_key, metric_key, opts)
56
439
 
57
440
  ```ruby
58
441
  begin
59
- # Get experiment results
60
- data, status_code, headers = api_instance.get_experiment_with_http_info(project_key, feature_flag_key, environment_key, metric_key, opts)
442
+ # Get legacy experiment results (deprecated)
443
+ data, status_code, headers = api_instance.get_legacy_experiment_results_with_http_info(project_key, feature_flag_key, environment_key, metric_key, opts)
61
444
  p status_code # => 2xx
62
445
  p headers # => { ... }
63
- p data # => <ExperimentResultsRep>
446
+ p data # => <ExperimentResults>
64
447
  rescue LaunchDarklyApi::ApiError => e
65
- puts "Error when calling ExperimentsBetaApi->get_experiment_with_http_info: #{e}"
448
+ puts "Error when calling ExperimentsBetaApi->get_legacy_experiment_results_with_http_info: #{e}"
66
449
  end
67
450
  ```
68
451
 
@@ -79,7 +462,7 @@ end
79
462
 
80
463
  ### Return type
81
464
 
82
- [**ExperimentResultsRep**](ExperimentResultsRep.md)
465
+ [**ExperimentResults**](ExperimentResults.md)
83
466
 
84
467
  ### Authorization
85
468
 
@@ -91,6 +474,83 @@ end
91
474
  - **Accept**: application/json
92
475
 
93
476
 
477
+ ## patch_experiment
478
+
479
+ > <ExperimentRep> patch_experiment(project_key, environment_key, experiment_key, experiment_patch_input)
480
+
481
+ Patch experiment
482
+
483
+ Patch an Experiment
484
+
485
+ ### Examples
486
+
487
+ ```ruby
488
+ require 'time'
489
+ require 'launchdarkly_api'
490
+ # setup authorization
491
+ LaunchDarklyApi.configure do |config|
492
+ # Configure API key authorization: ApiKey
493
+ config.api_key['ApiKey'] = 'YOUR API KEY'
494
+ # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
495
+ # config.api_key_prefix['ApiKey'] = 'Bearer'
496
+ end
497
+
498
+ api_instance = LaunchDarklyApi::ExperimentsBetaApi.new
499
+ project_key = 'project_key_example' # String | The project key
500
+ environment_key = 'environment_key_example' # String | The environment key
501
+ experiment_key = 'experiment_key_example' # String | The experiment key
502
+ experiment_patch_input = LaunchDarklyApi::ExperimentPatchInput.new # ExperimentPatchInput |
503
+
504
+ begin
505
+ # Patch experiment
506
+ result = api_instance.patch_experiment(project_key, environment_key, experiment_key, experiment_patch_input)
507
+ p result
508
+ rescue LaunchDarklyApi::ApiError => e
509
+ puts "Error when calling ExperimentsBetaApi->patch_experiment: #{e}"
510
+ end
511
+ ```
512
+
513
+ #### Using the patch_experiment_with_http_info variant
514
+
515
+ This returns an Array which contains the response data, status code and headers.
516
+
517
+ > <Array(<ExperimentRep>, Integer, Hash)> patch_experiment_with_http_info(project_key, environment_key, experiment_key, experiment_patch_input)
518
+
519
+ ```ruby
520
+ begin
521
+ # Patch experiment
522
+ data, status_code, headers = api_instance.patch_experiment_with_http_info(project_key, environment_key, experiment_key, experiment_patch_input)
523
+ p status_code # => 2xx
524
+ p headers # => { ... }
525
+ p data # => <ExperimentRep>
526
+ rescue LaunchDarklyApi::ApiError => e
527
+ puts "Error when calling ExperimentsBetaApi->patch_experiment_with_http_info: #{e}"
528
+ end
529
+ ```
530
+
531
+ ### Parameters
532
+
533
+ | Name | Type | Description | Notes |
534
+ | ---- | ---- | ----------- | ----- |
535
+ | **project_key** | **String** | The project key | |
536
+ | **environment_key** | **String** | The environment key | |
537
+ | **experiment_key** | **String** | The experiment key | |
538
+ | **experiment_patch_input** | [**ExperimentPatchInput**](ExperimentPatchInput.md) | | |
539
+
540
+ ### Return type
541
+
542
+ [**ExperimentRep**](ExperimentRep.md)
543
+
544
+ ### Authorization
545
+
546
+ [ApiKey](../README.md#ApiKey)
547
+
548
+ ### HTTP request headers
549
+
550
+ - **Content-Type**: application/json
551
+ - **Accept**: application/json
552
+
553
+
94
554
  ## reset_experiment
95
555
 
96
556
  > reset_experiment(project_key, feature_flag_key, environment_key, metric_key)
@@ -9,7 +9,7 @@
9
9
  | **_maintainer_id** | **String** | | |
10
10
  | **_version** | **Integer** | | |
11
11
  | **execution_date** | **Integer** | | |
12
- | **instructions** | **Array&lt;Hash&gt;** | | |
12
+ | **instructions** | **Array&lt;Object&gt;** | | |
13
13
  | **conflicts** | **Object** | | [optional] |
14
14
  | **_links** | [**Hash&lt;String, Link&gt;**](Link.md) | | [optional] |
15
15
 
@@ -715,7 +715,7 @@ end
715
715
 
716
716
  Update feature flag
717
717
 
718
- Perform a partial update to a feature flag. ## Using JSON Patches on a feature flag When using the update feature flag endpoint to add individual users to a specific variation, there are two different patch documents, depending on whether users are already being individually targeted for the variation. If a flag variation already has users individually targeted, the path for the JSON Patch operation is: ```json { \"op\": \"add\", \"path\": \"/environments/devint/targets/0/values/-\", \"value\": \"TestClient10\" } ``` If a flag variation does not already have users individually targeted, the path for the JSON Patch operation is: ```json [ { \"op\": \"add\", \"path\": \"/environments/devint/targets/-\", \"value\": { \"variation\": 0, \"values\": [\"TestClient10\"] } } ] ``` ## Using semantic patches on a feature flag To use a [semantic patch](/reference#updates-via-semantic-patches) on a feature flag resource, you must include a header in the request. If you call a semantic patch resource without this header, you will receive a `400` response because your semantic patch will be interpreted as a JSON patch. Use this header: ``` Content-Type: application/json; domain-model=launchdarkly.semanticpatch ``` The body of a semantic patch request takes the following three properties: 1. `comment` (string): (Optional) A description of the update. 1. `environmentKey` (string): (Required) The key of the LaunchDarkly environment. 1. `instructions` (array): (Required) The list of actions to be performed by the update. Each action in the list must be an object/hash table with a `kind` property that indicates the instruction. Depending on the `kind`, the API may require other parameters. When this is the case, add the parameters as additional fields to the instruction object. Read below for more information on the specific supported semantic patch instructions. If any instruction in the patch encounters an error, the error will be returned and the flag will not be changed. In general, instructions will silently do nothing if the flag is already in the state requested by the patch instruction. For example, `removeUserTargets` does nothing when the targets have already been removed. They will generally error if a parameter refers to something that does not exist, like a variation ID that doesn't correspond to a variation on the flag or a rule ID that doesn't belong to a rule on the flag. Other specific error conditions are noted in the instruction descriptions. ### Instructions #### `turnFlagOn` Sets the flag's targeting state to on. For example, to flip a flag on, use this request body: ```json { \"environmentKey\": \"example-environment-key\", \"instructions\": [ { \"kind\": \"turnFlagOn\" } ] } ``` #### `turnFlagOff` Sets the flag's targeting state to off. For example, to flip a flag off, use this request body: ```json { \"environmentKey\": \"example-environment-key\", \"instructions\": [ { \"kind\": \"turnFlagOff\" } ] } ``` #### `addUserTargets` Adds the user keys in `values` to the individual user targets for the variation specified by `variationId`. Returns an error if this causes the same user key to be targeted in multiple variations. ##### Parameters - `values`: list of user keys - `variationId`: ID of a variation on the flag #### `removeUserTargets` Removes the user keys in `values` to the individual user targets for the variation specified by `variationId`. Does nothing if the user keys are not targeted. ##### Parameters - `values`: list of user keys - `variationId`: ID of a variation on the flag #### `replaceUserTargets` Completely replaces the existing set of user targeting. All variations must be provided. Example: ```json { \"kind\": \"replaceUserTargets\", \"targets\": [ { \"variationId\": \"variation-1\", \"values\": [\"blah\", \"foo\", \"bar\"] }, { \"variationId\": \"variation-2\", \"values\": [\"abc\", \"def\"] } ] } ``` ##### Parameters - `targets`: a list of user targeting #### `clearUserTargets` Removes all individual user targets from the variation specified by `variationId` ##### Parameters - `variationId`: ID of a variation on the flag #### `addPrerequisite` Adds the flag indicated by `key` with variation `variationId` as a prerequisite to the flag. ##### Parameters - `key`: flag key of another flag - `variationId`: ID of a variation of the flag with key `key` #### `removePrerequisite` Removes the prerequisite indicated by `key`. Does nothing if this prerequisite does not exist. ##### Parameters - `key`: flag key of an existing prerequisite #### `updatePrerequisite` Changes the prerequisite with flag key `key` to the variation indicated by `variationId`. Returns an error if this prerequisite does not exist. ##### Parameters - `key`: flag key of an existing prerequisite - `variationId`: ID of a variation of the flag with key `key` #### `replacePrerequisites` Completely replaces the existing set of prerequisites for a given flag. Example: ```json { \"kind\": \"replacePrerequisites\", \"prerequisites\": [ { \"key\": \"flag-key\", \"variationId\": \"variation-1\" }, { \"key\": \"another-flag\", \"variationId\": \"variation-2\" } ] } ``` ##### Parameters - `prerequisites`: a list of prerequisites #### `addRule` Adds a new rule to the flag with the given `clauses` which serves the variation indicated by `variationId` or the percent rollout indicated by `rolloutWeights` and `rolloutBucketBy`. If `beforeRuleId` is set, the rule will be added in the list of rules before the indicated rule. Otherwise, the rule will be added to the end of the list. ##### Parameters - `clauses`: Array of clauses (see `addClauses`) - `beforeRuleId`: Optional ID of a rule in the flag - `variationId`: ID of a variation of the flag - `rolloutWeights`: Map of variationId to weight in thousandths of a percent (0-100000) - `rolloutBucketBy`: Optional user attribute #### `removeRule` Removes the targeting rule specified by `ruleId`. Does nothing if the rule does not exist. ##### Parameters - `ruleId`: ID of a rule in the flag #### `replaceRules` Completely replaces the existing rules for a given flag. Example: ```json { \"kind\": \"replaceRules\", \"rules\": [ { \"variationId\": \"variation-1\", \"description\": \"myRule\", \"clauses\": [ { \"attribute\": \"segmentMatch\", \"op\": \"segmentMatch\", \"values\": [\"test\"] } ], \"trackEvents\": true } ] } ``` ##### Parameters - `rules`: a list of rules #### `addClauses` Adds the given clauses to the rule indicated by `ruleId`. ##### Parameters - `ruleId`: ID of a rule in the flag - `clauses`: Array of clause objects, with `attribute` (string), `op` (string), and `values` (array of strings, numbers, or dates) properties. #### `removeClauses` Removes the clauses specified by `clauseIds` from the rule indicated by `ruleId`. #### Parameters - `ruleId`: ID of a rule in the flag - `clauseIds`: Array of IDs of clauses in the rule #### `updateClause` Replaces the clause indicated by `ruleId` and `clauseId` with `clause`. ##### Parameters - `ruleId`: ID of a rule in the flag - `clauseId`: ID of a clause in that rule - `clause`: Clause object #### `addValuesToClause` Adds `values` to the values of the clause indicated by `ruleId` and `clauseId`. ##### Parameters - `ruleId`: ID of a rule in the flag - `clauseId`: ID of a clause in that rule - `values`: Array of strings #### `removeValuesFromClause` Removes `values` from the values of the clause indicated by `ruleId` and `clauseId`. ##### Parameters `ruleId`: ID of a rule in the flag `clauseId`: ID of a clause in that rule `values`: Array of strings #### `reorderRules` Rearranges the rules to match the order given in `ruleIds`. Will return an error if `ruleIds` does not match the current set of rules on the flag. ##### Parameters - `ruleIds`: Array of IDs of all rules in the flag #### `updateRuleVariationOrRollout` Updates what the rule indicated by `ruleId` serves if its clauses evaluate to true. Can either be a fixed variation indicated by `variationId` or a percent rollout indicated by `rolloutWeights` and `rolloutBucketBy`. ##### Parameters - `ruleId`: ID of a rule in the flag - `variationId`: ID of a variation of the flag or - `rolloutWeights`: Map of variationId to weight in thousandths of a percent (0-100000) - `rolloutBucketBy`: Optional user attribute #### `updateFallthroughVariationOrRollout` Updates the flag's fallthrough, which is served if none of the targeting rules match. Can either be a fixed variation indicated by `variationId` or a percent rollout indicated by `rolloutWeights` and `rolloutBucketBy`. ##### Parameters `variationId`: ID of a variation of the flag or `rolloutWeights`: Map of variationId to weight in thousandths of a percent (0-100000) `rolloutBucketBy`: Optional user attribute #### `updateOffVariation` Updates the variation served when the flag's targeting is off to the variation indicated by `variationId`. ##### Parameters `variationId`: ID of a variation of the flag ### Example ```json { \"environmentKey\": \"production\", \"instructions\": [ { \"kind\": \"turnFlagOn\" }, { \"kind\": \"turnFlagOff\" }, { \"kind\": \"addUserTargets\", \"variationId\": \"8bfb304e-d516-47e5-8727-e7f798e8992d\", \"values\": [\"userId\", \"userId2\"] }, { \"kind\": \"removeUserTargets\", \"variationId\": \"8bfb304e-d516-47e5-8727-e7f798e8992d\", \"values\": [\"userId3\", \"userId4\"] }, { \"kind\": \"updateFallthroughVariationOrRollout\", \"rolloutWeights\": { \"variationId\": 50000, \"variationId2\": 50000 }, \"rolloutBucketBy\": null }, { \"kind\": \"addRule\", \"clauses\": [ { \"attribute\": \"segmentMatch\", \"negate\": false, \"values\": [\"test-segment\"] } ], \"variationId\": null, \"rolloutWeights\": { \"variationId\": 50000, \"variationId2\": 50000 }, \"rolloutBucketBy\": \"key\" }, { \"kind\": \"removeRule\", \"ruleId\": \"99f12464-a429-40fc-86cc-b27612188955\" }, { \"kind\": \"reorderRules\", \"ruleIds\": [\"2f72974e-de68-4243-8dd3-739582147a1f\", \"8bfb304e-d516-47e5-8727-e7f798e8992d\"] }, { \"kind\": \"addClauses\", \"ruleId\": \"1134\", \"clauses\": [ { \"attribute\": \"email\", \"op\": \"in\", \"negate\": false, \"values\": [\"test@test.com\"] } ] }, { \"kind\": \"removeClauses\", \"ruleId\": \"1242529\", \"clauseIds\": [\"8bfb304e-d516-47e5-8727-e7f798e8992d\"] }, { \"kind\": \"updateClause\", \"ruleId\": \"2f72974e-de68-4243-8dd3-739582147a1f\", \"clauseId\": \"309845\", \"clause\": { \"attribute\": \"segmentMatch\", \"negate\": false, \"values\": [\"test-segment\"] } }, { \"kind\": \"updateRuleVariationOrRollout\", \"ruleId\": \"2342\", \"rolloutWeights\": null, \"rolloutBucketBy\": null }, { \"kind\": \"updateOffVariation\", \"variationId\": \"3242453\" }, { \"kind\": \"addPrerequisite\", \"variationId\": \"234235\", \"key\": \"flagKey2\" }, { \"kind\": \"updatePrerequisite\", \"variationId\": \"234235\", \"key\": \"flagKey2\" }, { \"kind\": \"removePrerequisite\", \"key\": \"flagKey\" } ] } ``` ## Using JSON patches on a feature flag If you do not include the header described above, you can use [JSON patch](/reference#updates-via-json-patch).
718
+ Perform a partial update to a feature flag. ## Using semantic patches on a feature flag To use a [semantic patch](/reference#updates-via-semantic-patches) on a feature flag resource, you must include a header in the request. If you call a semantic patch resource without this header, you will receive a `400` response because your semantic patch will be interpreted as a JSON patch. Use this header: ``` Content-Type: application/json; domain-model=launchdarkly.semanticpatch ``` The body of a semantic patch request takes the following three properties: 1. `comment` (string): (Optional) A description of the update. 1. `environmentKey` (string): (Required) The key of the LaunchDarkly environment. 1. `instructions` (array): (Required) The list of actions to be performed by the update. Each action in the list must be an object/hash table with a `kind` property that indicates the instruction. Depending on the `kind`, the API may require other parameters. When this is the case, add the parameters as additional fields to the instruction object. Read below for more information on the specific supported semantic patch instructions. If any instruction in the patch encounters an error, the error will be returned and the flag will not be changed. In general, instructions will silently do nothing if the flag is already in the state requested by the patch instruction. For example, `removeUserTargets` does nothing when the targets have already been removed. They will generally error if a parameter refers to something that does not exist, like a variation ID that doesn't correspond to a variation on the flag or a rule ID that doesn't belong to a rule on the flag. Other specific error conditions are noted in the instruction descriptions. ### Instructions #### `turnFlagOn` Sets the flag's targeting state to on. For example, to flip a flag on, use this request body: ```json { \"environmentKey\": \"example-environment-key\", \"instructions\": [ { \"kind\": \"turnFlagOn\" } ] } ``` #### `turnFlagOff` Sets the flag's targeting state to off. For example, to flip a flag off, use this request body: ```json { \"environmentKey\": \"example-environment-key\", \"instructions\": [ { \"kind\": \"turnFlagOff\" } ] } ``` #### `addUserTargets` Adds the user keys in `values` to the individual user targets for the variation specified by `variationId`. Returns an error if this causes the same user key to be targeted in multiple variations. ##### Parameters - `values`: list of user keys - `variationId`: ID of a variation on the flag #### `removeUserTargets` Removes the user keys in `values` to the individual user targets for the variation specified by `variationId`. Does nothing if the user keys are not targeted. ##### Parameters - `values`: list of user keys - `variationId`: ID of a variation on the flag #### `replaceUserTargets` Completely replaces the existing set of user targeting. All variations must be provided. Example: ```json { \"kind\": \"replaceUserTargets\", \"targets\": [ { \"variationId\": \"variation-1\", \"values\": [\"blah\", \"foo\", \"bar\"] }, { \"variationId\": \"variation-2\", \"values\": [\"abc\", \"def\"] } ] } ``` ##### Parameters - `targets`: a list of user targeting #### `clearUserTargets` Removes all individual user targets from the variation specified by `variationId` ##### Parameters - `variationId`: ID of a variation on the flag #### `addPrerequisite` Adds the flag indicated by `key` with variation `variationId` as a prerequisite to the flag. ##### Parameters - `key`: flag key of another flag - `variationId`: ID of a variation of the flag with key `key` #### `removePrerequisite` Removes the prerequisite indicated by `key`. Does nothing if this prerequisite does not exist. ##### Parameters - `key`: flag key of an existing prerequisite #### `updatePrerequisite` Changes the prerequisite with flag key `key` to the variation indicated by `variationId`. Returns an error if this prerequisite does not exist. ##### Parameters - `key`: flag key of an existing prerequisite - `variationId`: ID of a variation of the flag with key `key` #### `replacePrerequisites` Completely replaces the existing set of prerequisites for a given flag. Example: ```json { \"kind\": \"replacePrerequisites\", \"prerequisites\": [ { \"key\": \"flag-key\", \"variationId\": \"variation-1\" }, { \"key\": \"another-flag\", \"variationId\": \"variation-2\" } ] } ``` ##### Parameters - `prerequisites`: a list of prerequisites #### `addRule` Adds a new rule to the flag with the given `clauses` which serves the variation indicated by `variationId` or the percent rollout indicated by `rolloutWeights` and `rolloutBucketBy`. If `beforeRuleId` is set, the rule will be added in the list of rules before the indicated rule. Otherwise, the rule will be added to the end of the list. ##### Parameters - `clauses`: Array of clauses (see `addClauses`) - `beforeRuleId`: Optional ID of a rule in the flag - `variationId`: ID of a variation of the flag - `rolloutWeights`: Map of variationId to weight in thousandths of a percent (0-100000) - `rolloutBucketBy`: Optional user attribute #### `removeRule` Removes the targeting rule specified by `ruleId`. Does nothing if the rule does not exist. ##### Parameters - `ruleId`: ID of a rule in the flag #### `replaceRules` Completely replaces the existing rules for a given flag. Example: ```json { \"kind\": \"replaceRules\", \"rules\": [ { \"variationId\": \"variation-1\", \"description\": \"myRule\", \"clauses\": [ { \"attribute\": \"segmentMatch\", \"op\": \"segmentMatch\", \"values\": [\"test\"] } ], \"trackEvents\": true } ] } ``` ##### Parameters - `rules`: a list of rules #### `addClauses` Adds the given clauses to the rule indicated by `ruleId`. ##### Parameters - `ruleId`: ID of a rule in the flag - `clauses`: Array of clause objects, with `attribute` (string), `op` (string), and `values` (array of strings, numbers, or dates) properties. #### `removeClauses` Removes the clauses specified by `clauseIds` from the rule indicated by `ruleId`. #### Parameters - `ruleId`: ID of a rule in the flag - `clauseIds`: Array of IDs of clauses in the rule #### `updateClause` Replaces the clause indicated by `ruleId` and `clauseId` with `clause`. ##### Parameters - `ruleId`: ID of a rule in the flag - `clauseId`: ID of a clause in that rule - `clause`: Clause object #### `addValuesToClause` Adds `values` to the values of the clause indicated by `ruleId` and `clauseId`. ##### Parameters - `ruleId`: ID of a rule in the flag - `clauseId`: ID of a clause in that rule - `values`: Array of strings #### `removeValuesFromClause` Removes `values` from the values of the clause indicated by `ruleId` and `clauseId`. ##### Parameters `ruleId`: ID of a rule in the flag `clauseId`: ID of a clause in that rule `values`: Array of strings #### `reorderRules` Rearranges the rules to match the order given in `ruleIds`. Will return an error if `ruleIds` does not match the current set of rules on the flag. ##### Parameters - `ruleIds`: Array of IDs of all rules in the flag #### `updateRuleVariationOrRollout` Updates what the rule indicated by `ruleId` serves if its clauses evaluate to true. Can either be a fixed variation indicated by `variationId` or a percent rollout indicated by `rolloutWeights` and `rolloutBucketBy`. ##### Parameters - `ruleId`: ID of a rule in the flag - `variationId`: ID of a variation of the flag or - `rolloutWeights`: Map of variationId to weight in thousandths of a percent (0-100000) - `rolloutBucketBy`: Optional user attribute #### `updateFallthroughVariationOrRollout` Updates the flag's fallthrough, which is served if none of the targeting rules match. Can either be a fixed variation indicated by `variationId` or a percent rollout indicated by `rolloutWeights` and `rolloutBucketBy`. ##### Parameters `variationId`: ID of a variation of the flag or `rolloutWeights`: Map of variationId to weight in thousandths of a percent (0-100000) `rolloutBucketBy`: Optional user attribute #### `updateOffVariation` Updates the variation served when the flag's targeting is off to the variation indicated by `variationId`. ##### Parameters `variationId`: ID of a variation of the flag ### Example ```json { \"environmentKey\": \"production\", \"instructions\": [ { \"kind\": \"turnFlagOn\" }, { \"kind\": \"turnFlagOff\" }, { \"kind\": \"addUserTargets\", \"variationId\": \"8bfb304e-d516-47e5-8727-e7f798e8992d\", \"values\": [\"userId\", \"userId2\"] }, { \"kind\": \"removeUserTargets\", \"variationId\": \"8bfb304e-d516-47e5-8727-e7f798e8992d\", \"values\": [\"userId3\", \"userId4\"] }, { \"kind\": \"updateFallthroughVariationOrRollout\", \"rolloutWeights\": { \"variationId\": 50000, \"variationId2\": 50000 }, \"rolloutBucketBy\": null }, { \"kind\": \"addRule\", \"clauses\": [ { \"attribute\": \"segmentMatch\", \"negate\": false, \"values\": [\"test-segment\"] } ], \"variationId\": null, \"rolloutWeights\": { \"variationId\": 50000, \"variationId2\": 50000 }, \"rolloutBucketBy\": \"key\" }, { \"kind\": \"removeRule\", \"ruleId\": \"99f12464-a429-40fc-86cc-b27612188955\" }, { \"kind\": \"reorderRules\", \"ruleIds\": [\"2f72974e-de68-4243-8dd3-739582147a1f\", \"8bfb304e-d516-47e5-8727-e7f798e8992d\"] }, { \"kind\": \"addClauses\", \"ruleId\": \"1134\", \"clauses\": [ { \"attribute\": \"email\", \"op\": \"in\", \"negate\": false, \"values\": [\"test@test.com\"] } ] }, { \"kind\": \"removeClauses\", \"ruleId\": \"1242529\", \"clauseIds\": [\"8bfb304e-d516-47e5-8727-e7f798e8992d\"] }, { \"kind\": \"updateClause\", \"ruleId\": \"2f72974e-de68-4243-8dd3-739582147a1f\", \"clauseId\": \"309845\", \"clause\": { \"attribute\": \"segmentMatch\", \"negate\": false, \"values\": [\"test-segment\"] } }, { \"kind\": \"updateRuleVariationOrRollout\", \"ruleId\": \"2342\", \"rolloutWeights\": null, \"rolloutBucketBy\": null }, { \"kind\": \"updateOffVariation\", \"variationId\": \"3242453\" }, { \"kind\": \"addPrerequisite\", \"variationId\": \"234235\", \"key\": \"flagKey2\" }, { \"kind\": \"updatePrerequisite\", \"variationId\": \"234235\", \"key\": \"flagKey2\" }, { \"kind\": \"removePrerequisite\", \"key\": \"flagKey\" } ] } ``` ## Using JSON Patches on a feature flag If you do not include the header described above, you can use [JSON patch](/reference#updates-via-json-patch). When using the update feature flag endpoint to add individual users to a specific variation, there are two different patch documents, depending on whether users are already being individually targeted for the variation. If a flag variation already has users individually targeted, the path for the JSON Patch operation is: ```json { \"op\": \"add\", \"path\": \"/environments/devint/targets/0/values/-\", \"value\": \"TestClient10\" } ``` If a flag variation does not already have users individually targeted, the path for the JSON Patch operation is: ```json [ { \"op\": \"add\", \"path\": \"/environments/devint/targets/-\", \"value\": { \"variation\": 0, \"values\": [\"TestClient10\"] } } ] ``` ## Required approvals If a request attempts to alter a flag configuration in an environment where approvals are required for the flag, the request will fail with a 405. Changes to the flag configuration in that environment will required creating an [approval request](/tag/Approvals) or a [workflow](/tag/Workflows-(beta)). This behavior can be bypassed by users and access tokens that have a [custom role](https://docs.launchdarkly.com/home/members/custom-roles) with permission to perform the `bypassRequiredApproval` action on the flag. ## Conflicts If a flag configuration change made through this endpoint would cause a pending scheduled change or approval request to fail, this endpoint will return a 400. You can ignore this check by adding an `ignoreConflicts` query parameter set to `true`.
719
719
 
720
720
  ### Examples
721
721
 
@@ -16,7 +16,7 @@
16
16
  | **applied_date** | **Integer** | | [optional] |
17
17
  | **applied_by_member_id** | **String** | | [optional] |
18
18
  | **status** | **String** | | |
19
- | **instructions** | **Array&lt;Hash&gt;** | | |
19
+ | **instructions** | **Array&lt;Object&gt;** | | |
20
20
  | **conflicts** | [**Array&lt;Conflict&gt;**](Conflict.md) | | |
21
21
  | **_links** | [**Hash&lt;String, Link&gt;**](Link.md) | | |
22
22
  | **execution_date** | **Integer** | | [optional] |
data/docs/FlagInput.md ADDED
@@ -0,0 +1,20 @@
1
+ # LaunchDarklyApi::FlagInput
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **rule_id** | **String** | | |
8
+ | **flag_config_version** | **Integer** | | |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'launchdarkly_api'
14
+
15
+ instance = LaunchDarklyApi::FlagInput.new(
16
+ rule_id: null,
17
+ flag_config_version: null
18
+ )
19
+ ```
20
+
data/docs/FlagRep.md ADDED
@@ -0,0 +1,22 @@
1
+ # LaunchDarklyApi::FlagRep
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **targeting_rule** | **String** | | [optional] |
8
+ | **flag_config_version** | **Integer** | | [optional] |
9
+ | **_links** | [**Hash&lt;String, Link&gt;**](Link.md) | | |
10
+
11
+ ## Example
12
+
13
+ ```ruby
14
+ require 'launchdarkly_api'
15
+
16
+ instance = LaunchDarklyApi::FlagRep.new(
17
+ targeting_rule: null,
18
+ flag_config_version: null,
19
+ _links: {&quot;self&quot;:{&quot;href&quot;:&quot;/api/v2/flags/my-project/my-flag&quot;,&quot;type&quot;:&quot;application/json&quot;}}
20
+ )
21
+ ```
22
+
@@ -5,7 +5,7 @@
5
5
  | Name | Type | Description | Notes |
6
6
  | ---- | ---- | ----------- | ----- |
7
7
  | **comment** | **String** | | [optional] |
8
- | **instructions** | **Array&lt;Hash&gt;** | | |
8
+ | **instructions** | **Array&lt;Object&gt;** | | |
9
9
 
10
10
  ## Example
11
11