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,359 @@
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 UserSegmentsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+
23
+ # Delete a user segment.
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 environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
27
+ # @param user_segment_key The user segment's key. The key identifies the user segment in your code.
28
+ # @param [Hash] opts the optional parameters
29
+ # @return [nil]
30
+ def delete_user_segment(project_key, environment_key, user_segment_key, opts = {})
31
+ delete_user_segment_with_http_info(project_key, environment_key, user_segment_key, opts)
32
+ return nil
33
+ end
34
+
35
+ # Delete a user segment.
36
+ #
37
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
38
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
39
+ # @param user_segment_key The user segment's key. The key identifies the user segment in your code.
40
+ # @param [Hash] opts the optional parameters
41
+ # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
42
+ def delete_user_segment_with_http_info(project_key, environment_key, user_segment_key, opts = {})
43
+ if @api_client.config.debugging
44
+ @api_client.config.logger.debug "Calling API: UserSegmentsApi.delete_user_segment ..."
45
+ end
46
+ # verify the required parameter 'project_key' is set
47
+ if @api_client.config.client_side_validation && project_key.nil?
48
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSegmentsApi.delete_user_segment"
49
+ end
50
+ # verify the required parameter 'environment_key' is set
51
+ if @api_client.config.client_side_validation && environment_key.nil?
52
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSegmentsApi.delete_user_segment"
53
+ end
54
+ # verify the required parameter 'user_segment_key' is set
55
+ if @api_client.config.client_side_validation && user_segment_key.nil?
56
+ fail ArgumentError, "Missing the required parameter 'user_segment_key' when calling UserSegmentsApi.delete_user_segment"
57
+ end
58
+ # resource path
59
+ local_var_path = "/segments/{projectKey}/{environmentKey}/{userSegmentKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s).sub('{' + 'userSegmentKey' + '}', user_segment_key.to_s)
60
+
61
+ # query parameters
62
+ query_params = {}
63
+
64
+ # header parameters
65
+ header_params = {}
66
+ # HTTP header 'Accept' (if needed)
67
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
68
+ # HTTP header 'Content-Type'
69
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
70
+
71
+ # form parameters
72
+ form_params = {}
73
+
74
+ # http body (model)
75
+ post_body = nil
76
+ auth_names = ['Token']
77
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path,
78
+ :header_params => header_params,
79
+ :query_params => query_params,
80
+ :form_params => form_params,
81
+ :body => post_body,
82
+ :auth_names => auth_names)
83
+ if @api_client.config.debugging
84
+ @api_client.config.logger.debug "API called: UserSegmentsApi#delete_user_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
85
+ end
86
+ return data, status_code, headers
87
+ end
88
+
89
+ # Get a single user segment by key.
90
+ #
91
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
92
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
93
+ # @param user_segment_key The user segment&#39;s key. The key identifies the user segment in your code.
94
+ # @param [Hash] opts the optional parameters
95
+ # @return [UserSegment]
96
+ def get_user_segment(project_key, environment_key, user_segment_key, opts = {})
97
+ data, _status_code, _headers = get_user_segment_with_http_info(project_key, environment_key, user_segment_key, opts)
98
+ return data
99
+ end
100
+
101
+ # Get a single user segment by key.
102
+ #
103
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
104
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
105
+ # @param user_segment_key The user segment&#39;s key. The key identifies the user segment in your code.
106
+ # @param [Hash] opts the optional parameters
107
+ # @return [Array<(UserSegment, Fixnum, Hash)>] UserSegment data, response status code and response headers
108
+ def get_user_segment_with_http_info(project_key, environment_key, user_segment_key, opts = {})
109
+ if @api_client.config.debugging
110
+ @api_client.config.logger.debug "Calling API: UserSegmentsApi.get_user_segment ..."
111
+ end
112
+ # verify the required parameter 'project_key' is set
113
+ if @api_client.config.client_side_validation && project_key.nil?
114
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSegmentsApi.get_user_segment"
115
+ end
116
+ # verify the required parameter 'environment_key' is set
117
+ if @api_client.config.client_side_validation && environment_key.nil?
118
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSegmentsApi.get_user_segment"
119
+ end
120
+ # verify the required parameter 'user_segment_key' is set
121
+ if @api_client.config.client_side_validation && user_segment_key.nil?
122
+ fail ArgumentError, "Missing the required parameter 'user_segment_key' when calling UserSegmentsApi.get_user_segment"
123
+ end
124
+ # resource path
125
+ local_var_path = "/segments/{projectKey}/{environmentKey}/{userSegmentKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s).sub('{' + 'userSegmentKey' + '}', user_segment_key.to_s)
126
+
127
+ # query parameters
128
+ query_params = {}
129
+
130
+ # header parameters
131
+ header_params = {}
132
+ # HTTP header 'Accept' (if needed)
133
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
134
+ # HTTP header 'Content-Type'
135
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
136
+
137
+ # form parameters
138
+ form_params = {}
139
+
140
+ # http body (model)
141
+ post_body = nil
142
+ auth_names = ['Token']
143
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
144
+ :header_params => header_params,
145
+ :query_params => query_params,
146
+ :form_params => form_params,
147
+ :body => post_body,
148
+ :auth_names => auth_names,
149
+ :return_type => 'UserSegment')
150
+ if @api_client.config.debugging
151
+ @api_client.config.logger.debug "API called: UserSegmentsApi#get_user_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
152
+ end
153
+ return data, status_code, headers
154
+ end
155
+
156
+ # Get a list of all user segments in the given project.
157
+ #
158
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
159
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
160
+ # @param [Hash] opts the optional parameters
161
+ # @option opts [String] :tag Filter by tag. A tag can be used to group flags across projects.
162
+ # @return [UserSegments]
163
+ def get_user_segments(project_key, environment_key, opts = {})
164
+ data, _status_code, _headers = get_user_segments_with_http_info(project_key, environment_key, opts)
165
+ return data
166
+ end
167
+
168
+ # Get a list of all user segments in the given project.
169
+ #
170
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
171
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
172
+ # @param [Hash] opts the optional parameters
173
+ # @option opts [String] :tag Filter by tag. A tag can be used to group flags across projects.
174
+ # @return [Array<(UserSegments, Fixnum, Hash)>] UserSegments data, response status code and response headers
175
+ def get_user_segments_with_http_info(project_key, environment_key, opts = {})
176
+ if @api_client.config.debugging
177
+ @api_client.config.logger.debug "Calling API: UserSegmentsApi.get_user_segments ..."
178
+ end
179
+ # verify the required parameter 'project_key' is set
180
+ if @api_client.config.client_side_validation && project_key.nil?
181
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSegmentsApi.get_user_segments"
182
+ end
183
+ # verify the required parameter 'environment_key' is set
184
+ if @api_client.config.client_side_validation && environment_key.nil?
185
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSegmentsApi.get_user_segments"
186
+ end
187
+ # resource path
188
+ local_var_path = "/segments/{projectKey}/{environmentKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s)
189
+
190
+ # query parameters
191
+ query_params = {}
192
+ query_params[:'tag'] = opts[:'tag'] if !opts[:'tag'].nil?
193
+
194
+ # header parameters
195
+ header_params = {}
196
+ # HTTP header 'Accept' (if needed)
197
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
198
+ # HTTP header 'Content-Type'
199
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
200
+
201
+ # form parameters
202
+ form_params = {}
203
+
204
+ # http body (model)
205
+ post_body = nil
206
+ auth_names = ['Token']
207
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
208
+ :header_params => header_params,
209
+ :query_params => query_params,
210
+ :form_params => form_params,
211
+ :body => post_body,
212
+ :auth_names => auth_names,
213
+ :return_type => 'UserSegments')
214
+ if @api_client.config.debugging
215
+ @api_client.config.logger.debug "API called: UserSegmentsApi#get_user_segments\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
216
+ end
217
+ return data, status_code, headers
218
+ end
219
+
220
+ # Perform a partial update to a user segment.
221
+ #
222
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
223
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
224
+ # @param user_segment_key The user segment&#39;s key. The key identifies the user segment in your code.
225
+ # @param patch_only Requires a JSON Patch representation of the desired changes to the project. &#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.
226
+ # @param [Hash] opts the optional parameters
227
+ # @return [UserSegment]
228
+ def patch_user_segment(project_key, environment_key, user_segment_key, patch_only, opts = {})
229
+ data, _status_code, _headers = patch_user_segment_with_http_info(project_key, environment_key, user_segment_key, patch_only, opts)
230
+ return data
231
+ end
232
+
233
+ # Perform a partial update to a user segment.
234
+ #
235
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
236
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
237
+ # @param user_segment_key The user segment&#39;s key. The key identifies the user segment in your code.
238
+ # @param patch_only Requires a JSON Patch representation of the desired changes to the project. &#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.
239
+ # @param [Hash] opts the optional parameters
240
+ # @return [Array<(UserSegment, Fixnum, Hash)>] UserSegment data, response status code and response headers
241
+ def patch_user_segment_with_http_info(project_key, environment_key, user_segment_key, patch_only, opts = {})
242
+ if @api_client.config.debugging
243
+ @api_client.config.logger.debug "Calling API: UserSegmentsApi.patch_user_segment ..."
244
+ end
245
+ # verify the required parameter 'project_key' is set
246
+ if @api_client.config.client_side_validation && project_key.nil?
247
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSegmentsApi.patch_user_segment"
248
+ end
249
+ # verify the required parameter 'environment_key' is set
250
+ if @api_client.config.client_side_validation && environment_key.nil?
251
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSegmentsApi.patch_user_segment"
252
+ end
253
+ # verify the required parameter 'user_segment_key' is set
254
+ if @api_client.config.client_side_validation && user_segment_key.nil?
255
+ fail ArgumentError, "Missing the required parameter 'user_segment_key' when calling UserSegmentsApi.patch_user_segment"
256
+ end
257
+ # verify the required parameter 'patch_only' is set
258
+ if @api_client.config.client_side_validation && patch_only.nil?
259
+ fail ArgumentError, "Missing the required parameter 'patch_only' when calling UserSegmentsApi.patch_user_segment"
260
+ end
261
+ # resource path
262
+ local_var_path = "/segments/{projectKey}/{environmentKey}/{userSegmentKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s).sub('{' + 'userSegmentKey' + '}', user_segment_key.to_s)
263
+
264
+ # query parameters
265
+ query_params = {}
266
+
267
+ # header parameters
268
+ header_params = {}
269
+ # HTTP header 'Accept' (if needed)
270
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
271
+ # HTTP header 'Content-Type'
272
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
273
+
274
+ # form parameters
275
+ form_params = {}
276
+
277
+ # http body (model)
278
+ post_body = @api_client.object_to_http_body(patch_only)
279
+ auth_names = ['Token']
280
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path,
281
+ :header_params => header_params,
282
+ :query_params => query_params,
283
+ :form_params => form_params,
284
+ :body => post_body,
285
+ :auth_names => auth_names,
286
+ :return_type => 'UserSegment')
287
+ if @api_client.config.debugging
288
+ @api_client.config.logger.debug "API called: UserSegmentsApi#patch_user_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
289
+ end
290
+ return data, status_code, headers
291
+ end
292
+
293
+ # Creates a new user segment.
294
+ #
295
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
296
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
297
+ # @param user_segment_body Create a new user segment.
298
+ # @param [Hash] opts the optional parameters
299
+ # @return [nil]
300
+ def post_user_segment(project_key, environment_key, user_segment_body, opts = {})
301
+ post_user_segment_with_http_info(project_key, environment_key, user_segment_body, opts)
302
+ return nil
303
+ end
304
+
305
+ # Creates a new user segment.
306
+ #
307
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
308
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
309
+ # @param user_segment_body Create a new user segment.
310
+ # @param [Hash] opts the optional parameters
311
+ # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
312
+ def post_user_segment_with_http_info(project_key, environment_key, user_segment_body, opts = {})
313
+ if @api_client.config.debugging
314
+ @api_client.config.logger.debug "Calling API: UserSegmentsApi.post_user_segment ..."
315
+ end
316
+ # verify the required parameter 'project_key' is set
317
+ if @api_client.config.client_side_validation && project_key.nil?
318
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSegmentsApi.post_user_segment"
319
+ end
320
+ # verify the required parameter 'environment_key' is set
321
+ if @api_client.config.client_side_validation && environment_key.nil?
322
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSegmentsApi.post_user_segment"
323
+ end
324
+ # verify the required parameter 'user_segment_body' is set
325
+ if @api_client.config.client_side_validation && user_segment_body.nil?
326
+ fail ArgumentError, "Missing the required parameter 'user_segment_body' when calling UserSegmentsApi.post_user_segment"
327
+ end
328
+ # resource path
329
+ local_var_path = "/segments/{projectKey}/{environmentKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s)
330
+
331
+ # query parameters
332
+ query_params = {}
333
+
334
+ # header parameters
335
+ header_params = {}
336
+ # HTTP header 'Accept' (if needed)
337
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
338
+ # HTTP header 'Content-Type'
339
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
340
+
341
+ # form parameters
342
+ form_params = {}
343
+
344
+ # http body (model)
345
+ post_body = @api_client.object_to_http_body(user_segment_body)
346
+ auth_names = ['Token']
347
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path,
348
+ :header_params => header_params,
349
+ :query_params => query_params,
350
+ :form_params => form_params,
351
+ :body => post_body,
352
+ :auth_names => auth_names)
353
+ if @api_client.config.debugging
354
+ @api_client.config.logger.debug "API called: UserSegmentsApi#post_user_segment\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
355
+ end
356
+ return data, status_code, headers
357
+ end
358
+ end
359
+ end
@@ -0,0 +1,241 @@
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 UserSettingsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+
23
+ # Fetch a single flag setting for a user by key.
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 environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
27
+ # @param user_key The user&#39;s key.
28
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
29
+ # @param [Hash] opts the optional parameters
30
+ # @return [UserFlagSetting]
31
+ def get_user_flag_setting(project_key, environment_key, user_key, feature_flag_key, opts = {})
32
+ data, _status_code, _headers = get_user_flag_setting_with_http_info(project_key, environment_key, user_key, feature_flag_key, opts)
33
+ return data
34
+ end
35
+
36
+ # Fetch a single flag setting for a user by key.
37
+ #
38
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
39
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
40
+ # @param user_key The user&#39;s key.
41
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
42
+ # @param [Hash] opts the optional parameters
43
+ # @return [Array<(UserFlagSetting, Fixnum, Hash)>] UserFlagSetting data, response status code and response headers
44
+ def get_user_flag_setting_with_http_info(project_key, environment_key, user_key, feature_flag_key, opts = {})
45
+ if @api_client.config.debugging
46
+ @api_client.config.logger.debug "Calling API: UserSettingsApi.get_user_flag_setting ..."
47
+ end
48
+ # verify the required parameter 'project_key' is set
49
+ if @api_client.config.client_side_validation && project_key.nil?
50
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSettingsApi.get_user_flag_setting"
51
+ end
52
+ # verify the required parameter 'environment_key' is set
53
+ if @api_client.config.client_side_validation && environment_key.nil?
54
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSettingsApi.get_user_flag_setting"
55
+ end
56
+ # verify the required parameter 'user_key' is set
57
+ if @api_client.config.client_side_validation && user_key.nil?
58
+ fail ArgumentError, "Missing the required parameter 'user_key' when calling UserSettingsApi.get_user_flag_setting"
59
+ end
60
+ # verify the required parameter 'feature_flag_key' is set
61
+ if @api_client.config.client_side_validation && feature_flag_key.nil?
62
+ fail ArgumentError, "Missing the required parameter 'feature_flag_key' when calling UserSettingsApi.get_user_flag_setting"
63
+ end
64
+ # resource path
65
+ local_var_path = "/users/{projectKey}/{environmentKey}/{userKey}/flags/{featureFlagKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s).sub('{' + 'userKey' + '}', user_key.to_s).sub('{' + 'featureFlagKey' + '}', feature_flag_key.to_s)
66
+
67
+ # query parameters
68
+ query_params = {}
69
+
70
+ # header parameters
71
+ header_params = {}
72
+ # HTTP header 'Accept' (if needed)
73
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
74
+ # HTTP header 'Content-Type'
75
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
76
+
77
+ # form parameters
78
+ form_params = {}
79
+
80
+ # http body (model)
81
+ post_body = nil
82
+ auth_names = ['Token']
83
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
84
+ :header_params => header_params,
85
+ :query_params => query_params,
86
+ :form_params => form_params,
87
+ :body => post_body,
88
+ :auth_names => auth_names,
89
+ :return_type => 'UserFlagSetting')
90
+ if @api_client.config.debugging
91
+ @api_client.config.logger.debug "API called: UserSettingsApi#get_user_flag_setting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
92
+ end
93
+ return data, status_code, headers
94
+ end
95
+
96
+ # Fetch a single flag setting for a user by key.
97
+ #
98
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
99
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
100
+ # @param user_key The user&#39;s key.
101
+ # @param [Hash] opts the optional parameters
102
+ # @return [UserFlagSettings]
103
+ def get_user_flag_settings(project_key, environment_key, user_key, opts = {})
104
+ data, _status_code, _headers = get_user_flag_settings_with_http_info(project_key, environment_key, user_key, opts)
105
+ return data
106
+ end
107
+
108
+ # Fetch a single flag setting for a user by key.
109
+ #
110
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
111
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
112
+ # @param user_key The user&#39;s key.
113
+ # @param [Hash] opts the optional parameters
114
+ # @return [Array<(UserFlagSettings, Fixnum, Hash)>] UserFlagSettings data, response status code and response headers
115
+ def get_user_flag_settings_with_http_info(project_key, environment_key, user_key, opts = {})
116
+ if @api_client.config.debugging
117
+ @api_client.config.logger.debug "Calling API: UserSettingsApi.get_user_flag_settings ..."
118
+ end
119
+ # verify the required parameter 'project_key' is set
120
+ if @api_client.config.client_side_validation && project_key.nil?
121
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSettingsApi.get_user_flag_settings"
122
+ end
123
+ # verify the required parameter 'environment_key' is set
124
+ if @api_client.config.client_side_validation && environment_key.nil?
125
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSettingsApi.get_user_flag_settings"
126
+ end
127
+ # verify the required parameter 'user_key' is set
128
+ if @api_client.config.client_side_validation && user_key.nil?
129
+ fail ArgumentError, "Missing the required parameter 'user_key' when calling UserSettingsApi.get_user_flag_settings"
130
+ end
131
+ # resource path
132
+ local_var_path = "/users/{projectKey}/{environmentKey}/{userKey}/flags".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s).sub('{' + 'userKey' + '}', user_key.to_s)
133
+
134
+ # query parameters
135
+ query_params = {}
136
+
137
+ # header parameters
138
+ header_params = {}
139
+ # HTTP header 'Accept' (if needed)
140
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
141
+ # HTTP header 'Content-Type'
142
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
143
+
144
+ # form parameters
145
+ form_params = {}
146
+
147
+ # http body (model)
148
+ post_body = nil
149
+ auth_names = ['Token']
150
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path,
151
+ :header_params => header_params,
152
+ :query_params => query_params,
153
+ :form_params => form_params,
154
+ :body => post_body,
155
+ :auth_names => auth_names,
156
+ :return_type => 'UserFlagSettings')
157
+ if @api_client.config.debugging
158
+ @api_client.config.logger.debug "API called: UserSettingsApi#get_user_flag_settings\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
159
+ end
160
+ return data, status_code, headers
161
+ end
162
+
163
+ # Specifically enable or disable a feature flag for a user based on their key.
164
+ #
165
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
166
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
167
+ # @param user_key The user&#39;s key.
168
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
169
+ # @param user_settings_body
170
+ # @param [Hash] opts the optional parameters
171
+ # @return [nil]
172
+ def put_flag_setting(project_key, environment_key, user_key, feature_flag_key, user_settings_body, opts = {})
173
+ put_flag_setting_with_http_info(project_key, environment_key, user_key, feature_flag_key, user_settings_body, opts)
174
+ return nil
175
+ end
176
+
177
+ # Specifically enable or disable a feature flag for a user based on their key.
178
+ #
179
+ # @param project_key The project key, used to tie the flags together under one project so they can be managed together.
180
+ # @param environment_key The environment key, used to tie together flag configuration and users under one environment so they can be managed together.
181
+ # @param user_key The user&#39;s key.
182
+ # @param feature_flag_key The feature flag&#39;s key. The key identifies the flag in your code.
183
+ # @param user_settings_body
184
+ # @param [Hash] opts the optional parameters
185
+ # @return [Array<(nil, Fixnum, Hash)>] nil, response status code and response headers
186
+ def put_flag_setting_with_http_info(project_key, environment_key, user_key, feature_flag_key, user_settings_body, opts = {})
187
+ if @api_client.config.debugging
188
+ @api_client.config.logger.debug "Calling API: UserSettingsApi.put_flag_setting ..."
189
+ end
190
+ # verify the required parameter 'project_key' is set
191
+ if @api_client.config.client_side_validation && project_key.nil?
192
+ fail ArgumentError, "Missing the required parameter 'project_key' when calling UserSettingsApi.put_flag_setting"
193
+ end
194
+ # verify the required parameter 'environment_key' is set
195
+ if @api_client.config.client_side_validation && environment_key.nil?
196
+ fail ArgumentError, "Missing the required parameter 'environment_key' when calling UserSettingsApi.put_flag_setting"
197
+ end
198
+ # verify the required parameter 'user_key' is set
199
+ if @api_client.config.client_side_validation && user_key.nil?
200
+ fail ArgumentError, "Missing the required parameter 'user_key' when calling UserSettingsApi.put_flag_setting"
201
+ end
202
+ # verify the required parameter 'feature_flag_key' is set
203
+ if @api_client.config.client_side_validation && feature_flag_key.nil?
204
+ fail ArgumentError, "Missing the required parameter 'feature_flag_key' when calling UserSettingsApi.put_flag_setting"
205
+ end
206
+ # verify the required parameter 'user_settings_body' is set
207
+ if @api_client.config.client_side_validation && user_settings_body.nil?
208
+ fail ArgumentError, "Missing the required parameter 'user_settings_body' when calling UserSettingsApi.put_flag_setting"
209
+ end
210
+ # resource path
211
+ local_var_path = "/users/{projectKey}/{environmentKey}/{userKey}/flags/{featureFlagKey}".sub('{' + 'projectKey' + '}', project_key.to_s).sub('{' + 'environmentKey' + '}', environment_key.to_s).sub('{' + 'userKey' + '}', user_key.to_s).sub('{' + 'featureFlagKey' + '}', feature_flag_key.to_s)
212
+
213
+ # query parameters
214
+ query_params = {}
215
+
216
+ # header parameters
217
+ header_params = {}
218
+ # HTTP header 'Accept' (if needed)
219
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
220
+ # HTTP header 'Content-Type'
221
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
222
+
223
+ # form parameters
224
+ form_params = {}
225
+
226
+ # http body (model)
227
+ post_body = @api_client.object_to_http_body(user_settings_body)
228
+ auth_names = ['Token']
229
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path,
230
+ :header_params => header_params,
231
+ :query_params => query_params,
232
+ :form_params => form_params,
233
+ :body => post_body,
234
+ :auth_names => auth_names)
235
+ if @api_client.config.debugging
236
+ @api_client.config.logger.debug "API called: UserSettingsApi#put_flag_setting\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
237
+ end
238
+ return data, status_code, headers
239
+ end
240
+ end
241
+ end