launchdarkly_api 2.0.3

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 (219) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +69 -0
  4. data/LICENSE.txt +13 -0
  5. data/README.md +264 -0
  6. data/Rakefile +8 -0
  7. data/docs/Action.md +7 -0
  8. data/docs/Actions.md +7 -0
  9. data/docs/AuditLogApi.md +123 -0
  10. data/docs/AuditLogEntries.md +9 -0
  11. data/docs/AuditLogEntry.md +19 -0
  12. data/docs/AuditLogEntryTarget.md +10 -0
  13. data/docs/Clause.md +11 -0
  14. data/docs/CustomRole.md +13 -0
  15. data/docs/CustomRoleBody.md +11 -0
  16. data/docs/CustomRoleKeyOrId.md +7 -0
  17. data/docs/CustomRoles.md +9 -0
  18. data/docs/CustomRolesApi.md +268 -0
  19. data/docs/Environment.md +17 -0
  20. data/docs/EnvironmentBody.md +11 -0
  21. data/docs/EnvironmentsApi.md +233 -0
  22. data/docs/Fallthrough.md +9 -0
  23. data/docs/FeatureFlag.md +20 -0
  24. data/docs/FeatureFlagBody.md +13 -0
  25. data/docs/FeatureFlagConfig.md +19 -0
  26. data/docs/FeatureFlagStatus.md +11 -0
  27. data/docs/FeatureFlagStatuses.md +9 -0
  28. data/docs/FeatureFlags.md +9 -0
  29. data/docs/FeatureFlagsApi.md +411 -0
  30. data/docs/Id.md +7 -0
  31. data/docs/Link.md +9 -0
  32. data/docs/Links.md +9 -0
  33. data/docs/Member.md +14 -0
  34. data/docs/Members.md +9 -0
  35. data/docs/MembersBody.md +13 -0
  36. data/docs/PatchComment.md +9 -0
  37. data/docs/PatchOperation.md +10 -0
  38. data/docs/Policy.md +10 -0
  39. data/docs/Prerequisite.md +9 -0
  40. data/docs/Project.md +12 -0
  41. data/docs/ProjectBody.md +9 -0
  42. data/docs/Projects.md +9 -0
  43. data/docs/ProjectsApi.md +268 -0
  44. data/docs/Resource.md +7 -0
  45. data/docs/Resources.md +7 -0
  46. data/docs/Role.md +7 -0
  47. data/docs/Rollout.md +8 -0
  48. data/docs/RootApi.md +56 -0
  49. data/docs/Rule.md +10 -0
  50. data/docs/Statement.md +12 -0
  51. data/docs/Statements.md +7 -0
  52. data/docs/Target.md +9 -0
  53. data/docs/TeamMembersApi.md +268 -0
  54. data/docs/User.md +18 -0
  55. data/docs/UserFlagSetting.md +10 -0
  56. data/docs/UserFlagSettings.md +9 -0
  57. data/docs/UserRecord.md +12 -0
  58. data/docs/UserSegment.md +17 -0
  59. data/docs/UserSegmentBody.md +11 -0
  60. data/docs/UserSegmentRule.md +10 -0
  61. data/docs/UserSegments.md +9 -0
  62. data/docs/UserSegmentsApi.md +305 -0
  63. data/docs/UserSettingsApi.md +193 -0
  64. data/docs/UserSettingsBody.md +8 -0
  65. data/docs/Users.md +10 -0
  66. data/docs/UsersApi.md +255 -0
  67. data/docs/Variation.md +10 -0
  68. data/docs/Webhook.md +14 -0
  69. data/docs/WebhookBody.md +12 -0
  70. data/docs/Webhooks.md +9 -0
  71. data/docs/WebhooksApi.md +268 -0
  72. data/docs/WeightedVariation.md +9 -0
  73. data/git_push.sh +55 -0
  74. data/launchdarkly_api-2.0.2.gem +0 -0
  75. data/launchdarkly_api.gemspec +46 -0
  76. data/lib/.DS_Store +0 -0
  77. data/lib/launchdarkly_api/api/audit_log_api.rb +142 -0
  78. data/lib/launchdarkly_api/api/custom_roles_api.rb +296 -0
  79. data/lib/launchdarkly_api/api/environments_api.rb +271 -0
  80. data/lib/launchdarkly_api/api/feature_flags_api.rb +463 -0
  81. data/lib/launchdarkly_api/api/projects_api.rb +296 -0
  82. data/lib/launchdarkly_api/api/root_api.rb +72 -0
  83. data/lib/launchdarkly_api/api/team_members_api.rb +296 -0
  84. data/lib/launchdarkly_api/api/user_segments_api.rb +359 -0
  85. data/lib/launchdarkly_api/api/user_settings_api.rb +241 -0
  86. data/lib/launchdarkly_api/api/users_api.rb +299 -0
  87. data/lib/launchdarkly_api/api/webhooks_api.rb +296 -0
  88. data/lib/launchdarkly_api/api_client.rb +389 -0
  89. data/lib/launchdarkly_api/api_error.rb +38 -0
  90. data/lib/launchdarkly_api/configuration.rb +209 -0
  91. data/lib/launchdarkly_api/models/action.rb +179 -0
  92. data/lib/launchdarkly_api/models/actions.rb +179 -0
  93. data/lib/launchdarkly_api/models/audit_log_entries.rb +199 -0
  94. data/lib/launchdarkly_api/models/audit_log_entry.rb +287 -0
  95. data/lib/launchdarkly_api/models/audit_log_entry_target.rb +208 -0
  96. data/lib/launchdarkly_api/models/clause.rb +217 -0
  97. data/lib/launchdarkly_api/models/custom_role.rb +237 -0
  98. data/lib/launchdarkly_api/models/custom_role_body.rb +234 -0
  99. data/lib/launchdarkly_api/models/custom_role_key_or_id.rb +179 -0
  100. data/lib/launchdarkly_api/models/custom_roles.rb +197 -0
  101. data/lib/launchdarkly_api/models/environment.rb +277 -0
  102. data/lib/launchdarkly_api/models/environment_body.rb +234 -0
  103. data/lib/launchdarkly_api/models/fallthrough.rb +197 -0
  104. data/lib/launchdarkly_api/models/feature_flag.rb +310 -0
  105. data/lib/launchdarkly_api/models/feature_flag_body.rb +258 -0
  106. data/lib/launchdarkly_api/models/feature_flag_config.rb +294 -0
  107. data/lib/launchdarkly_api/models/feature_flag_status.rb +249 -0
  108. data/lib/launchdarkly_api/models/feature_flag_statuses.rb +199 -0
  109. data/lib/launchdarkly_api/models/feature_flags.rb +199 -0
  110. data/lib/launchdarkly_api/models/id.rb +179 -0
  111. data/lib/launchdarkly_api/models/link.rb +197 -0
  112. data/lib/launchdarkly_api/models/links.rb +197 -0
  113. data/lib/launchdarkly_api/models/member.rb +244 -0
  114. data/lib/launchdarkly_api/models/members.rb +197 -0
  115. data/lib/launchdarkly_api/models/members_body.rb +240 -0
  116. data/lib/launchdarkly_api/models/patch_comment.rb +199 -0
  117. data/lib/launchdarkly_api/models/patch_operation.rb +221 -0
  118. data/lib/launchdarkly_api/models/policy.rb +207 -0
  119. data/lib/launchdarkly_api/models/prerequisite.rb +197 -0
  120. data/lib/launchdarkly_api/models/project.rb +226 -0
  121. data/lib/launchdarkly_api/models/project_body.rb +207 -0
  122. data/lib/launchdarkly_api/models/projects.rb +199 -0
  123. data/lib/launchdarkly_api/models/resource.rb +179 -0
  124. data/lib/launchdarkly_api/models/resources.rb +179 -0
  125. data/lib/launchdarkly_api/models/role.rb +33 -0
  126. data/lib/launchdarkly_api/models/rollout.rb +190 -0
  127. data/lib/launchdarkly_api/models/rule.rb +208 -0
  128. data/lib/launchdarkly_api/models/statement.rb +259 -0
  129. data/lib/launchdarkly_api/models/statements.rb +179 -0
  130. data/lib/launchdarkly_api/models/target.rb +199 -0
  131. data/lib/launchdarkly_api/models/user.rb +278 -0
  132. data/lib/launchdarkly_api/models/user_flag_setting.rb +208 -0
  133. data/lib/launchdarkly_api/models/user_flag_settings.rb +197 -0
  134. data/lib/launchdarkly_api/models/user_record.rb +224 -0
  135. data/lib/launchdarkly_api/models/user_segment.rb +300 -0
  136. data/lib/launchdarkly_api/models/user_segment_body.rb +231 -0
  137. data/lib/launchdarkly_api/models/user_segment_rule.rb +208 -0
  138. data/lib/launchdarkly_api/models/user_segments.rb +199 -0
  139. data/lib/launchdarkly_api/models/user_settings_body.rb +189 -0
  140. data/lib/launchdarkly_api/models/users.rb +208 -0
  141. data/lib/launchdarkly_api/models/variation.rb +211 -0
  142. data/lib/launchdarkly_api/models/webhook.rb +249 -0
  143. data/lib/launchdarkly_api/models/webhook_body.rb +244 -0
  144. data/lib/launchdarkly_api/models/webhooks.rb +199 -0
  145. data/lib/launchdarkly_api/models/weighted_variation.rb +197 -0
  146. data/lib/launchdarkly_api/version.rb +15 -0
  147. data/lib/launchdarkly_api.rb +105 -0
  148. data/lib/swagger_client/.DS_Store +0 -0
  149. data/spec/api/audit_log_api_spec.rb +63 -0
  150. data/spec/api/custom_roles_api_spec.rb +95 -0
  151. data/spec/api/environments_api_spec.rb +88 -0
  152. data/spec/api/feature_flags_api_spec.rb +130 -0
  153. data/spec/api/projects_api_spec.rb +95 -0
  154. data/spec/api/root_api_spec.rb +46 -0
  155. data/spec/api/team_members_api_spec.rb +95 -0
  156. data/spec/api/user_segments_api_spec.rb +106 -0
  157. data/spec/api/user_settings_api_spec.rb +80 -0
  158. data/spec/api/users_api_spec.rb +96 -0
  159. data/spec/api/webhooks_api_spec.rb +95 -0
  160. data/spec/api_client_spec.rb +226 -0
  161. data/spec/configuration_spec.rb +42 -0
  162. data/spec/models/action_spec.rb +36 -0
  163. data/spec/models/actions_spec.rb +36 -0
  164. data/spec/models/audit_log_entries_spec.rb +48 -0
  165. data/spec/models/audit_log_entry_spec.rb +108 -0
  166. data/spec/models/audit_log_entry_target_spec.rb +54 -0
  167. data/spec/models/clause_spec.rb +60 -0
  168. data/spec/models/custom_role_body_spec.rb +60 -0
  169. data/spec/models/custom_role_key_or_id_spec.rb +36 -0
  170. data/spec/models/custom_role_spec.rb +72 -0
  171. data/spec/models/custom_roles_spec.rb +48 -0
  172. data/spec/models/environment_body_spec.rb +60 -0
  173. data/spec/models/environment_spec.rb +96 -0
  174. data/spec/models/fallthrough_spec.rb +48 -0
  175. data/spec/models/feature_flag_body_spec.rb +72 -0
  176. data/spec/models/feature_flag_config_spec.rb +108 -0
  177. data/spec/models/feature_flag_spec.rb +114 -0
  178. data/spec/models/feature_flag_status_spec.rb +64 -0
  179. data/spec/models/feature_flag_statuses_spec.rb +48 -0
  180. data/spec/models/feature_flags_spec.rb +48 -0
  181. data/spec/models/id_spec.rb +36 -0
  182. data/spec/models/link_spec.rb +48 -0
  183. data/spec/models/links_spec.rb +48 -0
  184. data/spec/models/member_spec.rb +78 -0
  185. data/spec/models/members_body_spec.rb +72 -0
  186. data/spec/models/members_spec.rb +48 -0
  187. data/spec/models/patch_comment_spec.rb +48 -0
  188. data/spec/models/patch_operation_spec.rb +54 -0
  189. data/spec/models/policy_spec.rb +54 -0
  190. data/spec/models/prerequisite_spec.rb +48 -0
  191. data/spec/models/project_body_spec.rb +48 -0
  192. data/spec/models/project_spec.rb +66 -0
  193. data/spec/models/projects_spec.rb +48 -0
  194. data/spec/models/resource_spec.rb +36 -0
  195. data/spec/models/resources_spec.rb +36 -0
  196. data/spec/models/role_spec.rb +36 -0
  197. data/spec/models/rollout_spec.rb +42 -0
  198. data/spec/models/rule_spec.rb +54 -0
  199. data/spec/models/statement_spec.rb +70 -0
  200. data/spec/models/statements_spec.rb +36 -0
  201. data/spec/models/target_spec.rb +48 -0
  202. data/spec/models/user_flag_setting_spec.rb +54 -0
  203. data/spec/models/user_flag_settings_spec.rb +48 -0
  204. data/spec/models/user_record_spec.rb +66 -0
  205. data/spec/models/user_segment_body_spec.rb +60 -0
  206. data/spec/models/user_segment_rule_spec.rb +54 -0
  207. data/spec/models/user_segment_spec.rb +96 -0
  208. data/spec/models/user_segments_spec.rb +48 -0
  209. data/spec/models/user_settings_body_spec.rb +42 -0
  210. data/spec/models/user_spec.rb +102 -0
  211. data/spec/models/users_spec.rb +54 -0
  212. data/spec/models/variation_spec.rb +54 -0
  213. data/spec/models/webhook_body_spec.rb +66 -0
  214. data/spec/models/webhook_spec.rb +78 -0
  215. data/spec/models/webhooks_spec.rb +48 -0
  216. data/spec/models/weighted_variation_spec.rb +48 -0
  217. data/spec/spec_helper.rb +111 -0
  218. data/test.rb +50 -0
  219. metadata +509 -0
@@ -0,0 +1,463 @@
1
+ =begin
2
+ #LaunchDarkly REST API
3
+
4
+ #Build custom integrations with the LaunchDarkly REST API
5
+
6
+ OpenAPI spec version: 2.0.3
7
+ Contact: support@launchdarkly.com
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.3.1
10
+
11
+ =end
12
+
13
+ require "uri"
14
+
15
+ module LaunchDarklyApi
16
+ class FeatureFlagsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+
23
+ # Delete a feature flag in all environments. Be careful-- only delete feature flags that are no longer being used by your application.
24
+ #
25
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
26
+ # @param feature_flag_key The feature flag's key. The key identifies the flag in your code.
27
+ # @param [Hash] opts the optional parameters
28
+ # @return [nil]
29
+ def delete_feature_flag(project_key, feature_flag_key, opts = {})
30
+ delete_feature_flag_with_http_info(project_key, feature_flag_key, opts)
31
+ return nil
32
+ end
33
+
34
+ # Delete a feature flag in all environments. Be careful-- only delete feature flags that are no longer being used by your application.
35
+ #
36
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
37
+ # @param feature_flag_key The feature flag's key. The key identifies the flag in your code.
38
+ # @param [Hash] opts the optional parameters
39
+ # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
40
+ def delete_feature_flag_with_http_info(project_key, feature_flag_key, opts = {})
41
+ if @api_client.config.debugging
42
+ @api_client.config.logger.debug "Calling API: FeatureFlagsApi.delete_feature_flag ..."
43
+ end
44
+ # verify the required parameter 'project_key' is set
45
+ if @api_client.config.client_side_validation && project_key.nil?
46
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling FeatureFlagsApi.delete_feature_flag"
47
+ end
48
+ # verify the required parameter 'feature_flag_key' is set
49
+ if @api_client.config.client_side_validation && feature_flag_key.nil?
50
+ fail ArgumentError, "Missing the required parameter 'feature_flag_key' when calling FeatureFlagsApi.delete_feature_flag"
51
+ end
52
+ # resource path
53
+ local_var_path = "/flags/{projectKey}/{featureFlagKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'featureFlagKey' + '}', feature_flag_key.to_s)
54
+
55
+ # query parameters
56
+ query_params = {}
57
+
58
+ # header parameters
59
+ header_params = {}
60
+ # HTTP header 'Accept' (if needed)
61
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
62
+ # HTTP header 'Content-Type'
63
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
64
+
65
+ # form parameters
66
+ form_params = {}
67
+
68
+ # http body (model)
69
+ post_body = nil
70
+ auth_names = ['Token']
71
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
72
+ :header_params => header_params,
73
+ :query_params => query_params,
74
+ :form_params => form_params,
75
+ :body => post_body,
76
+ :auth_names => auth_names)
77
+ if @api_client.config.debugging
78
+ @api_client.config.logger.debug "API called: FeatureFlagsApi#delete_feature_flag\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
79
+ end
80
+ return data, status_code, headers
81
+ end
82
+
83
+ # Get a single feature flag by key.
84
+ #
85
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
86
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
87
+ # @param [Hash] opts the optional parameters
88
+ # @option opts [String] :env By default, each feature will include configurations for each environment. You can filter environments with the env query parameter. For example, setting env&#x3D;production will restrict the returned configurations to just your production environment.
89
+ # @return [FeatureFlag]
90
+ def get_feature_flag(project_key, feature_flag_key, opts = {})
91
+ data, _status_code, _headers = get_feature_flag_with_http_info(project_key, feature_flag_key, opts)
92
+ return data
93
+ end
94
+
95
+ # Get a single feature flag by key.
96
+ #
97
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
98
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
99
+ # @param [Hash] opts the optional parameters
100
+ # @option opts [String] :env By default, each feature will include configurations for each environment. You can filter environments with the env query parameter. For example, setting env&#x3D;production will restrict the returned configurations to just your production environment.
101
+ # @return [Array<(FeatureFlag, Fixnum, Hash)>] FeatureFlag data, response status code and response headers
102
+ def get_feature_flag_with_http_info(project_key, feature_flag_key, opts = {})
103
+ if @api_client.config.debugging
104
+ @api_client.config.logger.debug "Calling API: FeatureFlagsApi.get_feature_flag ..."
105
+ end
106
+ # verify the required parameter 'project_key' is set
107
+ if @api_client.config.client_side_validation && project_key.nil?
108
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling FeatureFlagsApi.get_feature_flag"
109
+ end
110
+ # verify the required parameter 'feature_flag_key' is set
111
+ if @api_client.config.client_side_validation && feature_flag_key.nil?
112
+ fail ArgumentError, "Missing the required parameter 'feature_flag_key' when calling FeatureFlagsApi.get_feature_flag"
113
+ end
114
+ # resource path
115
+ local_var_path = "/flags/{projectKey}/{featureFlagKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'featureFlagKey' + '}', feature_flag_key.to_s)
116
+
117
+ # query parameters
118
+ query_params = {}
119
+ query_params[:'env'] = opts[:'env'] if !opts[:'env'].nil?
120
+
121
+ # header parameters
122
+ header_params = {}
123
+ # HTTP header 'Accept' (if needed)
124
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
125
+ # HTTP header 'Content-Type'
126
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
127
+
128
+ # form parameters
129
+ form_params = {}
130
+
131
+ # http body (model)
132
+ post_body = nil
133
+ auth_names = ['Token']
134
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
135
+ :header_params => header_params,
136
+ :query_params => query_params,
137
+ :form_params => form_params,
138
+ :body => post_body,
139
+ :auth_names => auth_names,
140
+ :return_type => 'FeatureFlag')
141
+ if @api_client.config.debugging
142
+ @api_client.config.logger.debug "API called: FeatureFlagsApi#get_feature_flag\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
143
+ end
144
+ return data, status_code, headers
145
+ end
146
+
147
+ # Get the status for a particular feature flag.
148
+ #
149
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
150
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
151
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
152
+ # @param [Hash] opts the optional parameters
153
+ # @return [FeatureFlagStatus]
154
+ def get_feature_flag_status(project_key, environment_key, feature_flag_key, opts = {})
155
+ data, _status_code, _headers = get_feature_flag_status_with_http_info(project_key, environment_key, feature_flag_key, opts)
156
+ return data
157
+ end
158
+
159
+ # Get the status for a particular feature flag.
160
+ #
161
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
162
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
163
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
164
+ # @param [Hash] opts the optional parameters
165
+ # @return [Array<(FeatureFlagStatus, Fixnum, Hash)>] FeatureFlagStatus data, response status code and response headers
166
+ def get_feature_flag_status_with_http_info(project_key, environment_key, feature_flag_key, opts = {})
167
+ if @api_client.config.debugging
168
+ @api_client.config.logger.debug "Calling API: FeatureFlagsApi.get_feature_flag_status ..."
169
+ end
170
+ # verify the required parameter 'project_key' is set
171
+ if @api_client.config.client_side_validation && project_key.nil?
172
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling FeatureFlagsApi.get_feature_flag_status"
173
+ end
174
+ # verify the required parameter 'environment_key' is set
175
+ if @api_client.config.client_side_validation && environment_key.nil?
176
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling FeatureFlagsApi.get_feature_flag_status"
177
+ end
178
+ # verify the required parameter 'feature_flag_key' is set
179
+ if @api_client.config.client_side_validation && feature_flag_key.nil?
180
+ fail ArgumentError, "Missing the required parameter 'feature_flag_key' when calling FeatureFlagsApi.get_feature_flag_status"
181
+ end
182
+ # resource path
183
+ local_var_path = "/flag-statuses/{projectKey}/{environmentKey}/{featureFlagKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s).sub('{' + 'featureFlagKey' + '}', feature_flag_key.to_s)
184
+
185
+ # query parameters
186
+ query_params = {}
187
+
188
+ # header parameters
189
+ header_params = {}
190
+ # HTTP header 'Accept' (if needed)
191
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
192
+ # HTTP header 'Content-Type'
193
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
194
+
195
+ # form parameters
196
+ form_params = {}
197
+
198
+ # http body (model)
199
+ post_body = nil
200
+ auth_names = ['Token']
201
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
202
+ :header_params => header_params,
203
+ :query_params => query_params,
204
+ :form_params => form_params,
205
+ :body => post_body,
206
+ :auth_names => auth_names,
207
+ :return_type => 'FeatureFlagStatus')
208
+ if @api_client.config.debugging
209
+ @api_client.config.logger.debug "API called: FeatureFlagsApi#get_feature_flag_status\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
210
+ end
211
+ return data, status_code, headers
212
+ end
213
+
214
+ # Get a list of statuses for all feature flags. The status includes the last time the feature flag was requested, as well as the state of the flag.
215
+ #
216
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
217
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
218
+ # @param [Hash] opts the optional parameters
219
+ # @return [FeatureFlagStatuses]
220
+ def get_feature_flag_statuses(project_key, environment_key, opts = {})
221
+ data, _status_code, _headers = get_feature_flag_statuses_with_http_info(project_key, environment_key, opts)
222
+ return data
223
+ end
224
+
225
+ # Get a list of statuses for all feature flags. The status includes the last time the feature flag was requested, as well as the state of the flag.
226
+ #
227
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
228
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
229
+ # @param [Hash] opts the optional parameters
230
+ # @return [Array<(FeatureFlagStatuses, Fixnum, Hash)>] FeatureFlagStatuses data, response status code and response headers
231
+ def get_feature_flag_statuses_with_http_info(project_key, environment_key, opts = {})
232
+ if @api_client.config.debugging
233
+ @api_client.config.logger.debug "Calling API: FeatureFlagsApi.get_feature_flag_statuses ..."
234
+ end
235
+ # verify the required parameter 'project_key' is set
236
+ if @api_client.config.client_side_validation && project_key.nil?
237
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling FeatureFlagsApi.get_feature_flag_statuses"
238
+ end
239
+ # verify the required parameter 'environment_key' is set
240
+ if @api_client.config.client_side_validation && environment_key.nil?
241
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling FeatureFlagsApi.get_feature_flag_statuses"
242
+ end
243
+ # resource path
244
+ local_var_path = "/flag-statuses/{projectKey}/{environmentKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s)
245
+
246
+ # query parameters
247
+ query_params = {}
248
+
249
+ # header parameters
250
+ header_params = {}
251
+ # HTTP header 'Accept' (if needed)
252
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
253
+ # HTTP header 'Content-Type'
254
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
255
+
256
+ # form parameters
257
+ form_params = {}
258
+
259
+ # http body (model)
260
+ post_body = nil
261
+ auth_names = ['Token']
262
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
263
+ :header_params => header_params,
264
+ :query_params => query_params,
265
+ :form_params => form_params,
266
+ :body => post_body,
267
+ :auth_names => auth_names,
268
+ :return_type => 'FeatureFlagStatuses')
269
+ if @api_client.config.debugging
270
+ @api_client.config.logger.debug "API called: FeatureFlagsApi#get_feature_flag_statuses\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
271
+ end
272
+ return data, status_code, headers
273
+ end
274
+
275
+ # Get a list of all features in the given project.
276
+ #
277
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
278
+ # @param [Hash] opts the optional parameters
279
+ # @option opts [String] :env By default, each feature will include configurations for each environment. You can filter environments with the env query parameter. For example, setting env&#x3D;production will restrict the returned configurations to just your production environment.
280
+ # @option opts [String] :tag Filter by tag. A tag can be used to group flags across projects.
281
+ # @return [FeatureFlags]
282
+ def get_feature_flags(project_key, opts = {})
283
+ data, _status_code, _headers = get_feature_flags_with_http_info(project_key, opts)
284
+ return data
285
+ end
286
+
287
+ # Get a list of all features in the given project.
288
+ #
289
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
290
+ # @param [Hash] opts the optional parameters
291
+ # @option opts [String] :env By default, each feature will include configurations for each environment. You can filter environments with the env query parameter. For example, setting env&#x3D;production will restrict the returned configurations to just your production environment.
292
+ # @option opts [String] :tag Filter by tag. A tag can be used to group flags across projects.
293
+ # @return [Array<(FeatureFlags, Fixnum, Hash)>] FeatureFlags data, response status code and response headers
294
+ def get_feature_flags_with_http_info(project_key, opts = {})
295
+ if @api_client.config.debugging
296
+ @api_client.config.logger.debug "Calling API: FeatureFlagsApi.get_feature_flags ..."
297
+ end
298
+ # verify the required parameter 'project_key' is set
299
+ if @api_client.config.client_side_validation && project_key.nil?
300
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling FeatureFlagsApi.get_feature_flags"
301
+ end
302
+ # resource path
303
+ local_var_path = "/flags/{projectKey}".sub('{' + 'projectKey' + '}', project_key.to_s)
304
+
305
+ # query parameters
306
+ query_params = {}
307
+ query_params[:'env'] = opts[:'env'] if !opts[:'env'].nil?
308
+ query_params[:'tag'] = opts[:'tag'] if !opts[:'tag'].nil?
309
+
310
+ # header parameters
311
+ header_params = {}
312
+ # HTTP header 'Accept' (if needed)
313
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
314
+ # HTTP header 'Content-Type'
315
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
316
+
317
+ # form parameters
318
+ form_params = {}
319
+
320
+ # http body (model)
321
+ post_body = nil
322
+ auth_names = ['Token']
323
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
324
+ :header_params => header_params,
325
+ :query_params => query_params,
326
+ :form_params => form_params,
327
+ :body => post_body,
328
+ :auth_names => auth_names,
329
+ :return_type => 'FeatureFlags')
330
+ if @api_client.config.debugging
331
+ @api_client.config.logger.debug "API called: FeatureFlagsApi#get_feature_flags\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
332
+ end
333
+ return data, status_code, headers
334
+ end
335
+
336
+ # Perform a partial update to a feature.
337
+ #
338
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
339
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
340
+ # @param patch_comment Requires a JSON Patch representation of the desired changes to the project, and an optional comment. &#39;http://jsonpatch.com/&#39; Feature flag patches also support JSON Merge Patch format. &#39;https://tools.ietf.org/html/rfc7386&#39; The addition of comments is also supported.
341
+ # @param [Hash] opts the optional parameters
342
+ # @return [FeatureFlag]
343
+ def patch_feature_flag(project_key, feature_flag_key, patch_comment, opts = {})
344
+ data, _status_code, _headers = patch_feature_flag_with_http_info(project_key, feature_flag_key, patch_comment, opts)
345
+ return data
346
+ end
347
+
348
+ # Perform a partial update to a feature.
349
+ #
350
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
351
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
352
+ # @param patch_comment Requires a JSON Patch representation of the desired changes to the project, and an optional comment. &#39;http://jsonpatch.com/&#39; Feature flag patches also support JSON Merge Patch format. &#39;https://tools.ietf.org/html/rfc7386&#39; The addition of comments is also supported.
353
+ # @param [Hash] opts the optional parameters
354
+ # @return [Array<(FeatureFlag, Fixnum, Hash)>] FeatureFlag data, response status code and response headers
355
+ def patch_feature_flag_with_http_info(project_key, feature_flag_key, patch_comment, opts = {})
356
+ if @api_client.config.debugging
357
+ @api_client.config.logger.debug "Calling API: FeatureFlagsApi.patch_feature_flag ..."
358
+ end
359
+ # verify the required parameter 'project_key' is set
360
+ if @api_client.config.client_side_validation && project_key.nil?
361
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling FeatureFlagsApi.patch_feature_flag"
362
+ end
363
+ # verify the required parameter 'feature_flag_key' is set
364
+ if @api_client.config.client_side_validation && feature_flag_key.nil?
365
+ fail ArgumentError, "Missing the required parameter 'feature_flag_key' when calling FeatureFlagsApi.patch_feature_flag"
366
+ end
367
+ # verify the required parameter 'patch_comment' is set
368
+ if @api_client.config.client_side_validation && patch_comment.nil?
369
+ fail ArgumentError, "Missing the required parameter 'patch_comment' when calling FeatureFlagsApi.patch_feature_flag"
370
+ end
371
+ # resource path
372
+ local_var_path = "/flags/{projectKey}/{featureFlagKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'featureFlagKey' + '}', feature_flag_key.to_s)
373
+
374
+ # query parameters
375
+ query_params = {}
376
+
377
+ # header parameters
378
+ header_params = {}
379
+ # HTTP header 'Accept' (if needed)
380
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
381
+ # HTTP header 'Content-Type'
382
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
383
+
384
+ # form parameters
385
+ form_params = {}
386
+
387
+ # http body (model)
388
+ post_body = @api_client.object_to_http_body(patch_comment)
389
+ auth_names = ['Token']
390
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path,
391
+ :header_params => header_params,
392
+ :query_params => query_params,
393
+ :form_params => form_params,
394
+ :body => post_body,
395
+ :auth_names => auth_names,
396
+ :return_type => 'FeatureFlag')
397
+ if @api_client.config.debugging
398
+ @api_client.config.logger.debug "API called: FeatureFlagsApi#patch_feature_flag\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
399
+ end
400
+ return data, status_code, headers
401
+ end
402
+
403
+ # Creates a new feature flag.
404
+ #
405
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
406
+ # @param feature_flag_body Create a new feature flag.
407
+ # @param [Hash] opts the optional parameters
408
+ # @return [nil]
409
+ def post_feature_flag(project_key, feature_flag_body, opts = {})
410
+ post_feature_flag_with_http_info(project_key, feature_flag_body, opts)
411
+ return nil
412
+ end
413
+
414
+ # Creates a new feature flag.
415
+ #
416
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
417
+ # @param feature_flag_body Create a new feature flag.
418
+ # @param [Hash] opts the optional parameters
419
+ # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
420
+ def post_feature_flag_with_http_info(project_key, feature_flag_body, opts = {})
421
+ if @api_client.config.debugging
422
+ @api_client.config.logger.debug "Calling API: FeatureFlagsApi.post_feature_flag ..."
423
+ end
424
+ # verify the required parameter 'project_key' is set
425
+ if @api_client.config.client_side_validation && project_key.nil?
426
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling FeatureFlagsApi.post_feature_flag"
427
+ end
428
+ # verify the required parameter 'feature_flag_body' is set
429
+ if @api_client.config.client_side_validation && feature_flag_body.nil?
430
+ fail ArgumentError, "Missing the required parameter 'feature_flag_body' when calling FeatureFlagsApi.post_feature_flag"
431
+ end
432
+ # resource path
433
+ local_var_path = "/flags/{projectKey}".sub('{' + 'projectKey' + '}', project_key.to_s)
434
+
435
+ # query parameters
436
+ query_params = {}
437
+
438
+ # header parameters
439
+ header_params = {}
440
+ # HTTP header 'Accept' (if needed)
441
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
442
+ # HTTP header 'Content-Type'
443
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
444
+
445
+ # form parameters
446
+ form_params = {}
447
+
448
+ # http body (model)
449
+ post_body = @api_client.object_to_http_body(feature_flag_body)
450
+ auth_names = ['Token']
451
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path,
452
+ :header_params => header_params,
453
+ :query_params => query_params,
454
+ :form_params => form_params,
455
+ :body => post_body,
456
+ :auth_names => auth_names)
457
+ if @api_client.config.debugging
458
+ @api_client.config.logger.debug "API called: FeatureFlagsApi#post_feature_flag\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
459
+ end
460
+ return data, status_code, headers
461
+ end
462
+ end
463
+ end