launchdarkly_api 21.0.0 → 22.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -6
  3. data/docs/AIConfig.md +3 -1
  4. data/docs/AIConfigDependency.md +20 -0
  5. data/docs/AIConfigPatch.md +2 -2
  6. data/docs/AIConfigPost.md +2 -2
  7. data/docs/AITool.md +3 -1
  8. data/docs/AIToolPatch.md +6 -4
  9. data/docs/AIToolPost.md +6 -4
  10. data/docs/AccountUsageBetaApi.md +164 -0
  11. data/docs/AgentGraph.md +4 -0
  12. data/docs/AgentGraphMaintainer.md +49 -0
  13. data/docs/AgentGraphPatch.md +4 -0
  14. data/docs/AgentGraphPost.md +4 -0
  15. data/docs/AiConfigsMetricListingRep.md +4 -0
  16. data/docs/AuditLogApi.md +80 -0
  17. data/docs/CallerIdentityRep.md +3 -1
  18. data/docs/CountBucket.md +20 -0
  19. data/docs/CountBucketsResult.md +22 -0
  20. data/docs/EventFilter.md +1 -1
  21. data/docs/ExpandedFlag.md +4 -2
  22. data/docs/ExpandedFlagMaintainer.md +24 -0
  23. data/docs/ExpandedLinkedResourcesItems.md +1 -5
  24. data/docs/ExperimentsApi.md +1 -1
  25. data/docs/MetricListingRep.md +2 -0
  26. data/docs/MetricRep.md +2 -0
  27. data/docs/ResourceSummary.md +0 -4
  28. data/docs/VariationTool.md +3 -1
  29. data/docs/ViewLinkRequest.md +3 -1
  30. data/docs/ViewLinkRequestFilter.md +22 -0
  31. data/docs/ViewLinkRequestKeys.md +4 -2
  32. data/docs/ViewLinkRequestSegmentIdentifiers.md +4 -0
  33. data/docs/ViewLinkedResource.md +1 -1
  34. data/docs/ViewsBetaApi.md +17 -11
  35. data/docs/ViewsMemberSummary.md +28 -0
  36. data/docs/ViewsMemberTeamSummaryRep.md +24 -0
  37. data/lib/launchdarkly_api/api/account_usage_beta_api.rb +144 -0
  38. data/lib/launchdarkly_api/api/audit_log_api.rb +81 -0
  39. data/lib/launchdarkly_api/api/experiments_api.rb +2 -2
  40. data/lib/launchdarkly_api/api/views_beta_api.rb +31 -18
  41. data/lib/launchdarkly_api/models/agent_graph.rb +19 -1
  42. data/lib/launchdarkly_api/models/agent_graph_maintainer.rb +104 -0
  43. data/lib/launchdarkly_api/models/agent_graph_patch.rb +21 -1
  44. data/lib/launchdarkly_api/models/agent_graph_post.rb +21 -1
  45. data/lib/launchdarkly_api/models/ai_config.rb +16 -4
  46. data/lib/launchdarkly_api/models/ai_config_dependency.rb +217 -0
  47. data/lib/launchdarkly_api/models/ai_configs_metric_listing_rep.rb +20 -1
  48. data/lib/launchdarkly_api/models/ai_tool.rb +12 -1
  49. data/lib/launchdarkly_api/models/ai_tool_patch.rb +15 -4
  50. data/lib/launchdarkly_api/models/ai_tool_post.rb +15 -4
  51. data/lib/launchdarkly_api/models/caller_identity_rep.rb +15 -4
  52. data/lib/launchdarkly_api/models/{expanded_linked_resources_metrics.rb → count_bucket.rb} +34 -36
  53. data/lib/launchdarkly_api/models/{expanded_linked_resources_ai_configs.rb → count_buckets_result.rb} +49 -23
  54. data/lib/launchdarkly_api/models/event_filter.rb +1 -1
  55. data/lib/launchdarkly_api/models/expanded_flag.rb +16 -7
  56. data/lib/launchdarkly_api/models/expanded_flag_maintainer.rb +234 -0
  57. data/lib/launchdarkly_api/models/expanded_linked_resources_items.rb +4 -22
  58. data/lib/launchdarkly_api/models/failed_resource_link.rb +2 -2
  59. data/lib/launchdarkly_api/models/metric_group_post.rb +2 -2
  60. data/lib/launchdarkly_api/models/metric_listing_rep.rb +10 -1
  61. data/lib/launchdarkly_api/models/metric_rep.rb +10 -1
  62. data/lib/launchdarkly_api/models/resource_summary.rb +1 -19
  63. data/lib/launchdarkly_api/models/variation_tool.rb +16 -4
  64. data/lib/launchdarkly_api/models/view_link_request.rb +1 -0
  65. data/lib/launchdarkly_api/models/view_link_request_filter.rb +187 -0
  66. data/lib/launchdarkly_api/models/view_link_request_keys.rb +12 -2
  67. data/lib/launchdarkly_api/models/view_link_request_segment_identifiers.rb +21 -1
  68. data/lib/launchdarkly_api/models/view_linked_resource.rb +3 -3
  69. data/lib/launchdarkly_api/models/views_member_summary.rb +268 -0
  70. data/lib/launchdarkly_api/models/views_member_team_summary_rep.rb +232 -0
  71. data/lib/launchdarkly_api/version.rb +1 -1
  72. data/lib/launchdarkly_api.rb +8 -2
  73. data/spec/api/account_usage_beta_api_spec.rb +32 -0
  74. data/spec/api/audit_log_api_spec.rb +15 -0
  75. data/spec/api/experiments_api_spec.rb +1 -1
  76. data/spec/api/views_beta_api_spec.rb +9 -6
  77. data/spec/models/agent_graph_maintainer_spec.rb +32 -0
  78. data/spec/models/agent_graph_patch_spec.rb +12 -0
  79. data/spec/models/agent_graph_post_spec.rb +12 -0
  80. data/spec/models/agent_graph_spec.rb +12 -0
  81. data/spec/models/ai_config_dependency_spec.rb +46 -0
  82. data/spec/models/ai_config_spec.rb +6 -0
  83. data/spec/models/ai_configs_metric_listing_rep_spec.rb +12 -0
  84. data/spec/models/ai_tool_patch_spec.rb +6 -0
  85. data/spec/models/ai_tool_post_spec.rb +6 -0
  86. data/spec/models/ai_tool_spec.rb +6 -0
  87. data/spec/models/caller_identity_rep_spec.rb +6 -0
  88. data/spec/models/{expanded_linked_resources_metrics_spec.rb → count_bucket_spec.rb} +8 -8
  89. data/spec/models/{expanded_linked_resources_ai_configs_spec.rb → count_buckets_result_spec.rb} +13 -7
  90. data/spec/models/expanded_flag_maintainer_spec.rb +58 -0
  91. data/spec/models/expanded_flag_spec.rb +7 -1
  92. data/spec/models/expanded_linked_resources_items_spec.rb +0 -12
  93. data/spec/models/failed_resource_link_spec.rb +1 -1
  94. data/spec/models/metric_group_post_spec.rb +1 -1
  95. data/spec/models/metric_listing_rep_spec.rb +6 -0
  96. data/spec/models/metric_rep_spec.rb +6 -0
  97. data/spec/models/resource_summary_spec.rb +0 -12
  98. data/spec/models/variation_tool_spec.rb +6 -0
  99. data/spec/models/view_link_request_filter_spec.rb +48 -0
  100. data/spec/models/view_link_request_keys_spec.rb +6 -0
  101. data/spec/models/view_link_request_segment_identifiers_spec.rb +12 -0
  102. data/spec/models/view_linked_resource_spec.rb +1 -1
  103. data/spec/models/views_member_summary_spec.rb +66 -0
  104. data/spec/models/views_member_team_summary_rep_spec.rb +54 -0
  105. metadata +626 -602
  106. data/docs/ExpandedLinkedResourcesAIConfigs.md +0 -20
  107. data/docs/ExpandedLinkedResourcesMetrics.md +0 -20
@@ -1213,6 +1213,78 @@ module LaunchDarklyApi
1213
1213
  return data, status_code, headers
1214
1214
  end
1215
1215
 
1216
+ # Get observability metrics usage
1217
+ # Get time-series arrays of the number of observability metrics. Supports `daily` and `monthly` granularity.
1218
+ # @param [Hash] opts the optional parameters
1219
+ # @option opts [String] :from The series of data returned starts from this timestamp (Unix seconds). Defaults to the beginning of the current month.
1220
+ # @option opts [String] :to The series of data returned ends at this timestamp (Unix seconds). Defaults to the current time.
1221
+ # @option opts [String] :project_key A project key to filter results by. Can be specified multiple times, one query parameter per project key.
1222
+ # @option opts [String] :granularity Specifies the data granularity. Defaults to `daily`. Valid values depend on `aggregationType`: **month_to_date** supports `daily` and `monthly`; **incremental** and **rolling_30d** support `daily` only.
1223
+ # @option opts [String] :aggregation_type Specifies the aggregation method. Defaults to `month_to_date`.<br/>Valid values: `month_to_date`, `incremental`, `rolling_30d`.
1224
+ # @return [SeriesListRep]
1225
+ def get_observability_metrics_usage(opts = {})
1226
+ data, _status_code, _headers = get_observability_metrics_usage_with_http_info(opts)
1227
+ data
1228
+ end
1229
+
1230
+ # Get observability metrics usage
1231
+ # Get time-series arrays of the number of observability metrics. Supports `daily` and `monthly` granularity.
1232
+ # @param [Hash] opts the optional parameters
1233
+ # @option opts [String] :from The series of data returned starts from this timestamp (Unix seconds). Defaults to the beginning of the current month.
1234
+ # @option opts [String] :to The series of data returned ends at this timestamp (Unix seconds). Defaults to the current time.
1235
+ # @option opts [String] :project_key A project key to filter results by. Can be specified multiple times, one query parameter per project key.
1236
+ # @option opts [String] :granularity Specifies the data granularity. Defaults to `daily`. Valid values depend on `aggregationType`: **month_to_date** supports `daily` and `monthly`; **incremental** and **rolling_30d** support `daily` only.
1237
+ # @option opts [String] :aggregation_type Specifies the aggregation method. Defaults to `month_to_date`.<br/>Valid values: `month_to_date`, `incremental`, `rolling_30d`.
1238
+ # @return [Array<(SeriesListRep, Integer, Hash)>] SeriesListRep data, response status code and response headers
1239
+ def get_observability_metrics_usage_with_http_info(opts = {})
1240
+ if @api_client.config.debugging
1241
+ @api_client.config.logger.debug 'Calling API: AccountUsageBetaApi.get_observability_metrics_usage ...'
1242
+ end
1243
+ # resource path
1244
+ local_var_path = '/api/v2/usage/observability/metrics'
1245
+
1246
+ # query parameters
1247
+ query_params = opts[:query_params] || {}
1248
+ query_params[:'from'] = opts[:'from'] if !opts[:'from'].nil?
1249
+ query_params[:'to'] = opts[:'to'] if !opts[:'to'].nil?
1250
+ query_params[:'projectKey'] = opts[:'project_key'] if !opts[:'project_key'].nil?
1251
+ query_params[:'granularity'] = opts[:'granularity'] if !opts[:'granularity'].nil?
1252
+ query_params[:'aggregationType'] = opts[:'aggregation_type'] if !opts[:'aggregation_type'].nil?
1253
+
1254
+ # header parameters
1255
+ header_params = opts[:header_params] || {}
1256
+ # HTTP header 'Accept' (if needed)
1257
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1258
+
1259
+ # form parameters
1260
+ form_params = opts[:form_params] || {}
1261
+
1262
+ # http body (model)
1263
+ post_body = opts[:debug_body]
1264
+
1265
+ # return_type
1266
+ return_type = opts[:debug_return_type] || 'SeriesListRep'
1267
+
1268
+ # auth_names
1269
+ auth_names = opts[:debug_auth_names] || ['ApiKey']
1270
+
1271
+ new_options = opts.merge(
1272
+ :operation => :"AccountUsageBetaApi.get_observability_metrics_usage",
1273
+ :header_params => header_params,
1274
+ :query_params => query_params,
1275
+ :form_params => form_params,
1276
+ :body => post_body,
1277
+ :auth_names => auth_names,
1278
+ :return_type => return_type
1279
+ )
1280
+
1281
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1282
+ if @api_client.config.debugging
1283
+ @api_client.config.logger.debug "API called: AccountUsageBetaApi#get_observability_metrics_usage\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1284
+ end
1285
+ return data, status_code, headers
1286
+ end
1287
+
1216
1288
  # Get observability sessions usage
1217
1289
  # Get time-series arrays of the number of observability sessions. Supports `daily` and `monthly` granularity.
1218
1290
  # @param [Hash] opts the optional parameters
@@ -1662,5 +1734,77 @@ module LaunchDarklyApi
1662
1734
  end
1663
1735
  return data, status_code, headers
1664
1736
  end
1737
+
1738
+ # Get Vega AI usage
1739
+ # Get time-series arrays of the number of Vega AI usage. Supports `daily` and `monthly` granularity.
1740
+ # @param [Hash] opts the optional parameters
1741
+ # @option opts [String] :from The series of data returned starts from this timestamp (Unix seconds). Defaults to the beginning of the current month.
1742
+ # @option opts [String] :to The series of data returned ends at this timestamp (Unix seconds). Defaults to the current time.
1743
+ # @option opts [String] :project_key A project key to filter results by. Can be specified multiple times, one query parameter per project key.
1744
+ # @option opts [String] :granularity Specifies the data granularity. Defaults to &#x60;daily&#x60;. Valid values depend on &#x60;aggregationType&#x60;: **month_to_date** supports &#x60;daily&#x60; and &#x60;monthly&#x60;; **incremental** and **rolling_30d** support &#x60;daily&#x60; only.
1745
+ # @option opts [String] :aggregation_type Specifies the aggregation method. Defaults to &#x60;month_to_date&#x60;.&lt;br/&gt;Valid values: &#x60;month_to_date&#x60;, &#x60;incremental&#x60;, &#x60;rolling_30d&#x60;.
1746
+ # @return [SeriesListRep]
1747
+ def get_vega_ai_usage(opts = {})
1748
+ data, _status_code, _headers = get_vega_ai_usage_with_http_info(opts)
1749
+ data
1750
+ end
1751
+
1752
+ # Get Vega AI usage
1753
+ # Get time-series arrays of the number of Vega AI usage. Supports &#x60;daily&#x60; and &#x60;monthly&#x60; granularity.
1754
+ # @param [Hash] opts the optional parameters
1755
+ # @option opts [String] :from The series of data returned starts from this timestamp (Unix seconds). Defaults to the beginning of the current month.
1756
+ # @option opts [String] :to The series of data returned ends at this timestamp (Unix seconds). Defaults to the current time.
1757
+ # @option opts [String] :project_key A project key to filter results by. Can be specified multiple times, one query parameter per project key.
1758
+ # @option opts [String] :granularity Specifies the data granularity. Defaults to &#x60;daily&#x60;. Valid values depend on &#x60;aggregationType&#x60;: **month_to_date** supports &#x60;daily&#x60; and &#x60;monthly&#x60;; **incremental** and **rolling_30d** support &#x60;daily&#x60; only.
1759
+ # @option opts [String] :aggregation_type Specifies the aggregation method. Defaults to &#x60;month_to_date&#x60;.&lt;br/&gt;Valid values: &#x60;month_to_date&#x60;, &#x60;incremental&#x60;, &#x60;rolling_30d&#x60;.
1760
+ # @return [Array<(SeriesListRep, Integer, Hash)>] SeriesListRep data, response status code and response headers
1761
+ def get_vega_ai_usage_with_http_info(opts = {})
1762
+ if @api_client.config.debugging
1763
+ @api_client.config.logger.debug 'Calling API: AccountUsageBetaApi.get_vega_ai_usage ...'
1764
+ end
1765
+ # resource path
1766
+ local_var_path = '/api/v2/usage/vega-ai'
1767
+
1768
+ # query parameters
1769
+ query_params = opts[:query_params] || {}
1770
+ query_params[:'from'] = opts[:'from'] if !opts[:'from'].nil?
1771
+ query_params[:'to'] = opts[:'to'] if !opts[:'to'].nil?
1772
+ query_params[:'projectKey'] = opts[:'project_key'] if !opts[:'project_key'].nil?
1773
+ query_params[:'granularity'] = opts[:'granularity'] if !opts[:'granularity'].nil?
1774
+ query_params[:'aggregationType'] = opts[:'aggregation_type'] if !opts[:'aggregation_type'].nil?
1775
+
1776
+ # header parameters
1777
+ header_params = opts[:header_params] || {}
1778
+ # HTTP header 'Accept' (if needed)
1779
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1780
+
1781
+ # form parameters
1782
+ form_params = opts[:form_params] || {}
1783
+
1784
+ # http body (model)
1785
+ post_body = opts[:debug_body]
1786
+
1787
+ # return_type
1788
+ return_type = opts[:debug_return_type] || 'SeriesListRep'
1789
+
1790
+ # auth_names
1791
+ auth_names = opts[:debug_auth_names] || ['ApiKey']
1792
+
1793
+ new_options = opts.merge(
1794
+ :operation => :"AccountUsageBetaApi.get_vega_ai_usage",
1795
+ :header_params => header_params,
1796
+ :query_params => query_params,
1797
+ :form_params => form_params,
1798
+ :body => post_body,
1799
+ :auth_names => auth_names,
1800
+ :return_type => return_type
1801
+ )
1802
+
1803
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1804
+ if @api_client.config.debugging
1805
+ @api_client.config.logger.debug "API called: AccountUsageBetaApi#get_vega_ai_usage\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1806
+ end
1807
+ return data, status_code, headers
1808
+ end
1665
1809
  end
1666
1810
  end
@@ -229,5 +229,86 @@ module LaunchDarklyApi
229
229
  end
230
230
  return data, status_code, headers
231
231
  end
232
+
233
+ # Get audit log entry counts
234
+ # Returns aggregate counts of audit log entries per time bucket. Used for dashboard overlays that show flag targeting changes.
235
+ # @param after [Integer] A timestamp filter, expressed as a Unix epoch time in milliseconds. Required.
236
+ # @param statement_post [Array<StatementPost>]
237
+ # @param [Hash] opts the optional parameters
238
+ # @option opts [Integer] :before A timestamp filter, expressed as a Unix epoch time in milliseconds. Defaults to now.
239
+ # @option opts [Integer] :buckets Number of time buckets to divide the range into. Default 50, max 500.
240
+ # @return [CountBucketsResult]
241
+ def post_audit_log_entry_counts(after, statement_post, opts = {})
242
+ data, _status_code, _headers = post_audit_log_entry_counts_with_http_info(after, statement_post, opts)
243
+ data
244
+ end
245
+
246
+ # Get audit log entry counts
247
+ # Returns aggregate counts of audit log entries per time bucket. Used for dashboard overlays that show flag targeting changes.
248
+ # @param after [Integer] A timestamp filter, expressed as a Unix epoch time in milliseconds. Required.
249
+ # @param statement_post [Array<StatementPost>]
250
+ # @param [Hash] opts the optional parameters
251
+ # @option opts [Integer] :before A timestamp filter, expressed as a Unix epoch time in milliseconds. Defaults to now.
252
+ # @option opts [Integer] :buckets Number of time buckets to divide the range into. Default 50, max 500.
253
+ # @return [Array<(CountBucketsResult, Integer, Hash)>] CountBucketsResult data, response status code and response headers
254
+ def post_audit_log_entry_counts_with_http_info(after, statement_post, opts = {})
255
+ if @api_client.config.debugging
256
+ @api_client.config.logger.debug 'Calling API: AuditLogApi.post_audit_log_entry_counts ...'
257
+ end
258
+ # verify the required parameter 'after' is set
259
+ if @api_client.config.client_side_validation && after.nil?
260
+ fail ArgumentError, "Missing the required parameter 'after' when calling AuditLogApi.post_audit_log_entry_counts"
261
+ end
262
+ # verify the required parameter 'statement_post' is set
263
+ if @api_client.config.client_side_validation && statement_post.nil?
264
+ fail ArgumentError, "Missing the required parameter 'statement_post' when calling AuditLogApi.post_audit_log_entry_counts"
265
+ end
266
+ # resource path
267
+ local_var_path = '/api/v2/auditlog/counts'
268
+
269
+ # query parameters
270
+ query_params = opts[:query_params] || {}
271
+ query_params[:'after'] = after
272
+ query_params[:'before'] = opts[:'before'] if !opts[:'before'].nil?
273
+ query_params[:'buckets'] = opts[:'buckets'] if !opts[:'buckets'].nil?
274
+
275
+ # header parameters
276
+ header_params = opts[:header_params] || {}
277
+ # HTTP header 'Accept' (if needed)
278
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
279
+ # HTTP header 'Content-Type'
280
+ content_type = @api_client.select_header_content_type(['application/json'])
281
+ if !content_type.nil?
282
+ header_params['Content-Type'] = content_type
283
+ end
284
+
285
+ # form parameters
286
+ form_params = opts[:form_params] || {}
287
+
288
+ # http body (model)
289
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(statement_post)
290
+
291
+ # return_type
292
+ return_type = opts[:debug_return_type] || 'CountBucketsResult'
293
+
294
+ # auth_names
295
+ auth_names = opts[:debug_auth_names] || ['ApiKey']
296
+
297
+ new_options = opts.merge(
298
+ :operation => :"AuditLogApi.post_audit_log_entry_counts",
299
+ :header_params => header_params,
300
+ :query_params => query_params,
301
+ :form_params => form_params,
302
+ :body => post_body,
303
+ :auth_names => auth_names,
304
+ :return_type => return_type
305
+ )
306
+
307
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
308
+ if @api_client.config.debugging
309
+ @api_client.config.logger.debug "API called: AuditLogApi#post_audit_log_entry_counts\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
310
+ end
311
+ return data, status_code, headers
312
+ end
232
313
  end
233
314
  end
@@ -100,7 +100,7 @@ module LaunchDarklyApi
100
100
  end
101
101
 
102
102
  # Create iteration
103
- # Create an experiment iteration. Experiment iterations let you record experiments in individual blocks of time. Initially, iterations are created with a status of `not_started` and appear in the `draftIteration` field of an experiment. To start or stop an iteration, [update the experiment](https://launchdarkly.com/docs/api/experiments/patch-experiment) with the `startIteration` or `stopIteration` instruction. To learn more, read [Start experiment iterations](https://launchdarkly.com/docs/home/experimentation/feature#start-experiment-iterations).
103
+ # Create an experiment iteration. Experiment iterations let you record experiments in individual blocks of time. Initially, iterations are created with a status of `not_started` and appear in the `draftIteration` field of an experiment. To start or stop an iteration, [update the experiment](https://launchdarkly.com/docs/api/experiments/patch-experiment) with the `startIteration` or `stopIteration` instruction. To learn more, read [Start experiment iterations](https://launchdarkly.com/docs/home/experimentation/create#start-an-experiment-iteration).
104
104
  # @param project_key [String] The project key
105
105
  # @param environment_key [String] The environment key
106
106
  # @param experiment_key [String] The experiment key
@@ -113,7 +113,7 @@ module LaunchDarklyApi
113
113
  end
114
114
 
115
115
  # Create iteration
116
- # Create an experiment iteration. Experiment iterations let you record experiments in individual blocks of time. Initially, iterations are created with a status of &#x60;not_started&#x60; and appear in the &#x60;draftIteration&#x60; field of an experiment. To start or stop an iteration, [update the experiment](https://launchdarkly.com/docs/api/experiments/patch-experiment) with the &#x60;startIteration&#x60; or &#x60;stopIteration&#x60; instruction. To learn more, read [Start experiment iterations](https://launchdarkly.com/docs/home/experimentation/feature#start-experiment-iterations).
116
+ # Create an experiment iteration. Experiment iterations let you record experiments in individual blocks of time. Initially, iterations are created with a status of &#x60;not_started&#x60; and appear in the &#x60;draftIteration&#x60; field of an experiment. To start or stop an iteration, [update the experiment](https://launchdarkly.com/docs/api/experiments/patch-experiment) with the &#x60;startIteration&#x60; or &#x60;stopIteration&#x60; instruction. To learn more, read [Start experiment iterations](https://launchdarkly.com/docs/home/experimentation/create#start-an-experiment-iteration).
117
117
  # @param project_key [String] The project key
118
118
  # @param environment_key [String] The environment key
119
119
  # @param experiment_key [String] The experiment key
@@ -196,6 +196,9 @@ module LaunchDarklyApi
196
196
  # @option opts [Integer] :limit The number of views to return.
197
197
  # @option opts [Integer] :offset Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query &#x60;limit&#x60;.
198
198
  # @option opts [String] :sort Field to sort by. Default field is &#x60;linkedAt&#x60;, default order is ascending. (default to 'linkedAt')
199
+ # @option opts [String] :query Case-insensitive search query for linked resources. Matches resource key and, when expanded, resource name.
200
+ # @option opts [String] :filter Optional resource filter expression for linked resources. - Supported for &#x60;flags&#x60; and &#x60;segments&#x60; resource types. - Uses the same syntax as link/unlink and list endpoints. - For &#x60;segments&#x60;, &#x60;environmentId&#x60; is required when &#x60;filter&#x60; is provided.
201
+ # @option opts [Array<String>] :expand A comma-separated list of fields to expand.
199
202
  # @return [ViewLinkedResources]
200
203
  def get_linked_resources(ld_api_version, project_key, view_key, resource_type, opts = {})
201
204
  data, _status_code, _headers = get_linked_resources_with_http_info(ld_api_version, project_key, view_key, resource_type, opts)
@@ -212,6 +215,9 @@ module LaunchDarklyApi
212
215
  # @option opts [Integer] :limit The number of views to return.
213
216
  # @option opts [Integer] :offset Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query &#x60;limit&#x60;.
214
217
  # @option opts [String] :sort Field to sort by. Default field is &#x60;linkedAt&#x60;, default order is ascending. (default to 'linkedAt')
218
+ # @option opts [String] :query Case-insensitive search query for linked resources. Matches resource key and, when expanded, resource name.
219
+ # @option opts [String] :filter Optional resource filter expression for linked resources. - Supported for &#x60;flags&#x60; and &#x60;segments&#x60; resource types. - Uses the same syntax as link/unlink and list endpoints. - For &#x60;segments&#x60;, &#x60;environmentId&#x60; is required when &#x60;filter&#x60; is provided.
220
+ # @option opts [Array<String>] :expand A comma-separated list of fields to expand.
215
221
  # @return [Array<(ViewLinkedResources, Integer, Hash)>] ViewLinkedResources data, response status code and response headers
216
222
  def get_linked_resources_with_http_info(ld_api_version, project_key, view_key, resource_type, opts = {})
217
223
  if @api_client.config.debugging
@@ -239,7 +245,7 @@ module LaunchDarklyApi
239
245
  fail ArgumentError, "Missing the required parameter 'resource_type' when calling ViewsBetaApi.get_linked_resources"
240
246
  end
241
247
  # verify enum value
242
- allowable_values = ["flags", "segments", "aiConfigs", "metrics"]
248
+ allowable_values = ["flags", "segments"]
243
249
  if @api_client.config.client_side_validation && !allowable_values.include?(resource_type)
244
250
  fail ArgumentError, "invalid value for \"resource_type\", must be one of #{allowable_values}"
245
251
  end
@@ -247,6 +253,10 @@ module LaunchDarklyApi
247
253
  if @api_client.config.client_side_validation && opts[:'sort'] && !allowable_values.include?(opts[:'sort'])
248
254
  fail ArgumentError, "invalid value for \"sort\", must be one of #{allowable_values}"
249
255
  end
256
+ allowable_values = ["maintainer", "resourceDetails"]
257
+ if @api_client.config.client_side_validation && opts[:'expand'] && !opts[:'expand'].all? { |item| allowable_values.include?(item) }
258
+ fail ArgumentError, "invalid value for \"expand\", must include one of #{allowable_values}"
259
+ end
250
260
  # resource path
251
261
  local_var_path = '/api/v2/projects/{projectKey}/views/{viewKey}/linked/{resourceType}'.sub('{' + 'projectKey' + '}', CGI.escape(project_key.to_s)).sub('{' + 'viewKey' + '}', CGI.escape(view_key.to_s)).sub('{' + 'resourceType' + '}', CGI.escape(resource_type.to_s))
252
262
 
@@ -255,6 +265,9 @@ module LaunchDarklyApi
255
265
  query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
256
266
  query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
257
267
  query_params[:'sort'] = opts[:'sort'] if !opts[:'sort'].nil?
268
+ query_params[:'query'] = opts[:'query'] if !opts[:'query'].nil?
269
+ query_params[:'filter'] = opts[:'filter'] if !opts[:'filter'].nil?
270
+ query_params[:'expand'] = @api_client.build_collection_param(opts[:'expand'], :csv) if !opts[:'expand'].nil?
258
271
 
259
272
  # header parameters
260
273
  header_params = opts[:header_params] || {}
@@ -292,7 +305,7 @@ module LaunchDarklyApi
292
305
  end
293
306
 
294
307
  # Get linked views for a given resource
295
- # Get a list of all linked views for a resource. Flags, AI configs and metrics are identified by key. Segments are identified by segment ID.
308
+ # Get a list of all linked views for a resource. Flags are identified by key. Segments are identified by segment ID.
296
309
  # @param ld_api_version [String] Version of the endpoint.
297
310
  # @param project_key [String]
298
311
  # @param resource_type [String]
@@ -308,7 +321,7 @@ module LaunchDarklyApi
308
321
  end
309
322
 
310
323
  # Get linked views for a given resource
311
- # Get a list of all linked views for a resource. Flags, AI configs and metrics are identified by key. Segments are identified by segment ID.
324
+ # Get a list of all linked views for a resource. Flags are identified by key. Segments are identified by segment ID.
312
325
  # @param ld_api_version [String] Version of the endpoint.
313
326
  # @param project_key [String]
314
327
  # @param resource_type [String]
@@ -340,7 +353,7 @@ module LaunchDarklyApi
340
353
  fail ArgumentError, "Missing the required parameter 'resource_type' when calling ViewsBetaApi.get_linked_views"
341
354
  end
342
355
  # verify enum value
343
- allowable_values = ["flags", "segments", "aiConfigs", "metrics"]
356
+ allowable_values = ["flags", "segments"]
344
357
  if @api_client.config.client_side_validation && !allowable_values.include?(resource_type)
345
358
  fail ArgumentError, "invalid value for \"resource_type\", must be one of #{allowable_values}"
346
359
  end
@@ -401,7 +414,7 @@ module LaunchDarklyApi
401
414
  # @option opts [String] :sort A sort to apply to the list of views.
402
415
  # @option opts [Integer] :limit The number of views to return.
403
416
  # @option opts [Integer] :offset Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query &#x60;limit&#x60;.
404
- # @option opts [String] :filter A filter to apply to the list of views.
417
+ # @option opts [String] :filter A filter to apply to the list of views. Supports the following fields and operators: &#x60;name&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;key&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;tag&#x60; (equals, anyOf), &#x60;maintainerId&#x60; (equals, anyOf), &#x60;isPayloadView&#x60; (equals).
405
418
  # @option opts [Array<String>] :expand A comma-separated list of fields to expand.
406
419
  # @return [View]
407
420
  def get_view(ld_api_version, project_key, view_key, opts = {})
@@ -418,7 +431,7 @@ module LaunchDarklyApi
418
431
  # @option opts [String] :sort A sort to apply to the list of views.
419
432
  # @option opts [Integer] :limit The number of views to return.
420
433
  # @option opts [Integer] :offset Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query &#x60;limit&#x60;.
421
- # @option opts [String] :filter A filter to apply to the list of views.
434
+ # @option opts [String] :filter A filter to apply to the list of views. Supports the following fields and operators: &#x60;name&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;key&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;tag&#x60; (equals, anyOf), &#x60;maintainerId&#x60; (equals, anyOf), &#x60;isPayloadView&#x60; (equals).
422
435
  # @option opts [Array<String>] :expand A comma-separated list of fields to expand.
423
436
  # @return [Array<(View, Integer, Hash)>] View data, response status code and response headers
424
437
  def get_view_with_http_info(ld_api_version, project_key, view_key, opts = {})
@@ -446,7 +459,7 @@ module LaunchDarklyApi
446
459
  if @api_client.config.client_side_validation && opts[:'sort'] && !allowable_values.include?(opts[:'sort'])
447
460
  fail ArgumentError, "invalid value for \"sort\", must be one of #{allowable_values}"
448
461
  end
449
- allowable_values = ["allFlags", "allSegments", "allMetrics", "allAIConfigs", "allResources", "flagsSummary", "segmentsSummary", "metricsSummary", "aiConfigsSummary", "resourceSummary"]
462
+ allowable_values = ["allFlags", "allSegments", "allResources", "maintainer", "flagsSummary", "segmentsSummary", "resourceSummary"]
450
463
  if @api_client.config.client_side_validation && opts[:'expand'] && !opts[:'expand'].all? { |item| allowable_values.include?(item) }
451
464
  fail ArgumentError, "invalid value for \"expand\", must include one of #{allowable_values}"
452
465
  end
@@ -504,7 +517,7 @@ module LaunchDarklyApi
504
517
  # @option opts [String] :sort A sort to apply to the list of views.
505
518
  # @option opts [Integer] :limit The number of views to return.
506
519
  # @option opts [Integer] :offset Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query &#x60;limit&#x60;.
507
- # @option opts [String] :filter A filter to apply to the list of views.
520
+ # @option opts [String] :filter A filter to apply to the list of views. Supports the following fields and operators: &#x60;name&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;key&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;tag&#x60; (equals, anyOf), &#x60;maintainerId&#x60; (equals, anyOf), &#x60;isPayloadView&#x60; (equals).
508
521
  # @option opts [Array<String>] :expand A comma-separated list of fields to expand.
509
522
  # @return [Views]
510
523
  def get_views(ld_api_version, project_key, opts = {})
@@ -520,7 +533,7 @@ module LaunchDarklyApi
520
533
  # @option opts [String] :sort A sort to apply to the list of views.
521
534
  # @option opts [Integer] :limit The number of views to return.
522
535
  # @option opts [Integer] :offset Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query &#x60;limit&#x60;.
523
- # @option opts [String] :filter A filter to apply to the list of views.
536
+ # @option opts [String] :filter A filter to apply to the list of views. Supports the following fields and operators: &#x60;name&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;key&#x60; (equals, notEquals, startsWith, contains, anyOf), &#x60;tag&#x60; (equals, anyOf), &#x60;maintainerId&#x60; (equals, anyOf), &#x60;isPayloadView&#x60; (equals).
524
537
  # @option opts [Array<String>] :expand A comma-separated list of fields to expand.
525
538
  # @return [Array<(Views, Integer, Hash)>] Views data, response status code and response headers
526
539
  def get_views_with_http_info(ld_api_version, project_key, opts = {})
@@ -544,7 +557,7 @@ module LaunchDarklyApi
544
557
  if @api_client.config.client_side_validation && opts[:'sort'] && !allowable_values.include?(opts[:'sort'])
545
558
  fail ArgumentError, "invalid value for \"sort\", must be one of #{allowable_values}"
546
559
  end
547
- allowable_values = ["flagsSummary", "segmentsSummary", "metricsSummary", "aiConfigsSummary", "resourceSummary"]
560
+ allowable_values = ["flagsSummary", "segmentsSummary", "resourceSummary"]
548
561
  if @api_client.config.client_side_validation && opts[:'expand'] && !opts[:'expand'].all? { |item| allowable_values.include?(item) }
549
562
  fail ArgumentError, "invalid value for \"expand\", must include one of #{allowable_values}"
550
563
  end
@@ -595,12 +608,12 @@ module LaunchDarklyApi
595
608
  end
596
609
 
597
610
  # Link resource
598
- # Link one or multiple resources to a view: - Link flags using flag keys - Link AI configs using AI config keys - Link metrics using metric keys - Link segments using segment IDs
611
+ # Link one or multiple resources to a view by keys, filters, or both: - Link flags using flag keys or filters (maintainerId, maintainerTeamKey, tags, state, query) - Link segments using segment IDs or filters (tags, query, unbounded) When both keys and filters are provided, resources matching either condition are linked (union).
599
612
  # @param ld_api_version [String] Version of the endpoint.
600
613
  # @param project_key [String]
601
614
  # @param view_key [String]
602
615
  # @param resource_type [String]
603
- # @param view_link_request [ViewLinkRequest] The resource to link to the view. Flags are identified by key. Segments are identified by segment ID.
616
+ # @param view_link_request [ViewLinkRequest] Resources to link to the view. You can provide explicit keys/IDs, filters, or both. - Flags: identified by key or filtered by maintainerId, maintainerTeamKey, tags, state, query - Segments: identified by segment ID or filtered by tags, query, unbounded
604
617
  # @param [Hash] opts the optional parameters
605
618
  # @return [LinkResourceSuccessResponse]
606
619
  def link_resource(ld_api_version, project_key, view_key, resource_type, view_link_request, opts = {})
@@ -609,12 +622,12 @@ module LaunchDarklyApi
609
622
  end
610
623
 
611
624
  # Link resource
612
- # Link one or multiple resources to a view: - Link flags using flag keys - Link AI configs using AI config keys - Link metrics using metric keys - Link segments using segment IDs
625
+ # Link one or multiple resources to a view by keys, filters, or both: - Link flags using flag keys or filters (maintainerId, maintainerTeamKey, tags, state, query) - Link segments using segment IDs or filters (tags, query, unbounded) When both keys and filters are provided, resources matching either condition are linked (union).
613
626
  # @param ld_api_version [String] Version of the endpoint.
614
627
  # @param project_key [String]
615
628
  # @param view_key [String]
616
629
  # @param resource_type [String]
617
- # @param view_link_request [ViewLinkRequest] The resource to link to the view. Flags are identified by key. Segments are identified by segment ID.
630
+ # @param view_link_request [ViewLinkRequest] Resources to link to the view. You can provide explicit keys/IDs, filters, or both. - Flags: identified by key or filtered by maintainerId, maintainerTeamKey, tags, state, query - Segments: identified by segment ID or filtered by tags, query, unbounded
618
631
  # @param [Hash] opts the optional parameters
619
632
  # @return [Array<(LinkResourceSuccessResponse, Integer, Hash)>] LinkResourceSuccessResponse data, response status code and response headers
620
633
  def link_resource_with_http_info(ld_api_version, project_key, view_key, resource_type, view_link_request, opts = {})
@@ -643,7 +656,7 @@ module LaunchDarklyApi
643
656
  fail ArgumentError, "Missing the required parameter 'resource_type' when calling ViewsBetaApi.link_resource"
644
657
  end
645
658
  # verify enum value
646
- allowable_values = ["flags", "segments", "aiConfigs", "metrics"]
659
+ allowable_values = ["flags", "segments"]
647
660
  if @api_client.config.client_side_validation && !allowable_values.include?(resource_type)
648
661
  fail ArgumentError, "invalid value for \"resource_type\", must be one of #{allowable_values}"
649
662
  end
@@ -698,7 +711,7 @@ module LaunchDarklyApi
698
711
  end
699
712
 
700
713
  # Unlink resource
701
- # Unlink one or multiple resources from a view: - Unlink flags using flag keys - Unlink segments using segment IDs - Unlink AI configs using AI config keys - Unlink metrics using metric keys
714
+ # Unlink one or multiple resources from a view: - Unlink flags using flag keys - Unlink segments using segment IDs
702
715
  # @param ld_api_version [String] Version of the endpoint.
703
716
  # @param project_key [String]
704
717
  # @param view_key [String]
@@ -712,7 +725,7 @@ module LaunchDarklyApi
712
725
  end
713
726
 
714
727
  # Unlink resource
715
- # Unlink one or multiple resources from a view: - Unlink flags using flag keys - Unlink segments using segment IDs - Unlink AI configs using AI config keys - Unlink metrics using metric keys
728
+ # Unlink one or multiple resources from a view: - Unlink flags using flag keys - Unlink segments using segment IDs
716
729
  # @param ld_api_version [String] Version of the endpoint.
717
730
  # @param project_key [String]
718
731
  # @param view_key [String]
@@ -746,7 +759,7 @@ module LaunchDarklyApi
746
759
  fail ArgumentError, "Missing the required parameter 'resource_type' when calling ViewsBetaApi.unlink_resource"
747
760
  end
748
761
  # verify enum value
749
- allowable_values = ["flags", "segments", "aiConfigs", "metrics"]
762
+ allowable_values = ["flags", "segments"]
750
763
  if @api_client.config.client_side_validation && !allowable_values.include?(resource_type)
751
764
  fail ArgumentError, "invalid value for \"resource_type\", must be one of #{allowable_values}"
752
765
  end
@@ -16,6 +16,8 @@ require 'time'
16
16
  module LaunchDarklyApi
17
17
  # An agent graph representing a directed graph of AI Configs
18
18
  class AgentGraph < ApiModelBase
19
+ attr_accessor :_access
20
+
19
21
  # A unique key for the agent graph
20
22
  attr_accessor :key
21
23
 
@@ -25,6 +27,8 @@ module LaunchDarklyApi
25
27
  # A description of the agent graph
26
28
  attr_accessor :description
27
29
 
30
+ attr_accessor :_maintainer
31
+
28
32
  # The AI Config key of the root node
29
33
  attr_accessor :root_config_key
30
34
 
@@ -38,9 +42,11 @@ module LaunchDarklyApi
38
42
  # Attribute mapping from ruby-style variable name to JSON key.
39
43
  def self.attribute_map
40
44
  {
45
+ :'_access' => :'_access',
41
46
  :'key' => :'key',
42
47
  :'name' => :'name',
43
48
  :'description' => :'description',
49
+ :'_maintainer' => :'_maintainer',
44
50
  :'root_config_key' => :'rootConfigKey',
45
51
  :'edges' => :'edges',
46
52
  :'created_at' => :'createdAt',
@@ -61,9 +67,11 @@ module LaunchDarklyApi
61
67
  # Attribute type mapping.
62
68
  def self.openapi_types
63
69
  {
70
+ :'_access' => :'AiConfigsAccess',
64
71
  :'key' => :'String',
65
72
  :'name' => :'String',
66
73
  :'description' => :'String',
74
+ :'_maintainer' => :'AgentGraphMaintainer',
67
75
  :'root_config_key' => :'String',
68
76
  :'edges' => :'Array<AgentGraphEdge>',
69
77
  :'created_at' => :'Integer',
@@ -93,6 +101,10 @@ module LaunchDarklyApi
93
101
  h[k.to_sym] = v
94
102
  }
95
103
 
104
+ if attributes.key?(:'_access')
105
+ self._access = attributes[:'_access']
106
+ end
107
+
96
108
  if attributes.key?(:'key')
97
109
  self.key = attributes[:'key']
98
110
  else
@@ -109,6 +121,10 @@ module LaunchDarklyApi
109
121
  self.description = attributes[:'description']
110
122
  end
111
123
 
124
+ if attributes.key?(:'_maintainer')
125
+ self._maintainer = attributes[:'_maintainer']
126
+ end
127
+
112
128
  if attributes.key?(:'root_config_key')
113
129
  self.root_config_key = attributes[:'root_config_key']
114
130
  end
@@ -212,9 +228,11 @@ module LaunchDarklyApi
212
228
  def ==(o)
213
229
  return true if self.equal?(o)
214
230
  self.class == o.class &&
231
+ _access == o._access &&
215
232
  key == o.key &&
216
233
  name == o.name &&
217
234
  description == o.description &&
235
+ _maintainer == o._maintainer &&
218
236
  root_config_key == o.root_config_key &&
219
237
  edges == o.edges &&
220
238
  created_at == o.created_at &&
@@ -230,7 +248,7 @@ module LaunchDarklyApi
230
248
  # Calculates hash code according to all attributes.
231
249
  # @return [Integer] Hash code
232
250
  def hash
233
- [key, name, description, root_config_key, edges, created_at, updated_at].hash
251
+ [_access, key, name, description, _maintainer, root_config_key, edges, created_at, updated_at].hash
234
252
  end
235
253
 
236
254
  # Builds the object from hash