samplify_api_client 1.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 (275) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +7 -0
  3. data/Gemfile.lock +69 -0
  4. data/README.md +221 -0
  5. data/Rakefile +8 -0
  6. data/docs/AppError.md +10 -0
  7. data/docs/ApplicationItemData.md +11 -0
  8. data/docs/AttributeData.md +16 -0
  9. data/docs/AttributeOption.md +10 -0
  10. data/docs/Attributes.md +10 -0
  11. data/docs/AttributesApi.md +78 -0
  12. data/docs/AuthApi.md +191 -0
  13. data/docs/AuthError.md +9 -0
  14. data/docs/Author.md +10 -0
  15. data/docs/BuyProject.md +10 -0
  16. data/docs/BuyProjectItem.md +12 -0
  17. data/docs/BuyProjectResponse.md +9 -0
  18. data/docs/BuyProjectsPayload.md +7 -0
  19. data/docs/Categories.md +10 -0
  20. data/docs/CategoriesApi.md +72 -0
  21. data/docs/CategoryData.md +9 -0
  22. data/docs/CodePayload.md +11 -0
  23. data/docs/Countries.md +10 -0
  24. data/docs/CountriesApi.md +72 -0
  25. data/docs/CountryData.md +11 -0
  26. data/docs/CreateLineItem.md +10 -0
  27. data/docs/DefaultApi.md +88 -0
  28. data/docs/EndLinks.md +13 -0
  29. data/docs/ErrorType.md +9 -0
  30. data/docs/Event.md +10 -0
  31. data/docs/EventData.md +15 -0
  32. data/docs/EventListData.md +15 -0
  33. data/docs/Events.md +10 -0
  34. data/docs/EventsApi.md +287 -0
  35. data/docs/ExclusionData.md +9 -0
  36. data/docs/Feasibility.md +10 -0
  37. data/docs/FeasibilityApi.md +61 -0
  38. data/docs/FeasibilityData.md +14 -0
  39. data/docs/FeasibilityResponseData.md +9 -0
  40. data/docs/LineItemActionResponse.md +14 -0
  41. data/docs/LineItemData.md +22 -0
  42. data/docs/LineItemItemData.md +17 -0
  43. data/docs/LineItemReportData.md +25 -0
  44. data/docs/LineItemResponseData.md +27 -0
  45. data/docs/LineItems.md +10 -0
  46. data/docs/LineItemsApi.md +420 -0
  47. data/docs/Links.md +12 -0
  48. data/docs/LogoutPayload.md +10 -0
  49. data/docs/Meta.md +10 -0
  50. data/docs/Project.md +14 -0
  51. data/docs/ProjectAction.md +10 -0
  52. data/docs/ProjectActionResponse.md +13 -0
  53. data/docs/ProjectCategoryData.md +8 -0
  54. data/docs/ProjectItemData.md +14 -0
  55. data/docs/ProjectReport.md +10 -0
  56. data/docs/ProjectReportData.md +21 -0
  57. data/docs/ProjectReports.md +10 -0
  58. data/docs/ProjectResponse.md +10 -0
  59. data/docs/ProjectResponseData.md +19 -0
  60. data/docs/ProjectSurveyEndLinks.md +10 -0
  61. data/docs/ProjectSurveyEndLinksData.md +12 -0
  62. data/docs/Projects.md +10 -0
  63. data/docs/ProjectsApi.md +620 -0
  64. data/docs/QuotaCell.md +10 -0
  65. data/docs/QuotaCellFeasibility.md +9 -0
  66. data/docs/QuotaGroupData.md +9 -0
  67. data/docs/QuotaGroupFeasibility.md +8 -0
  68. data/docs/QuotaPlanData.md +9 -0
  69. data/docs/Reconcile.md +10 -0
  70. data/docs/ReconcileData.md +7 -0
  71. data/docs/RefreshTokenPayload.md +10 -0
  72. data/docs/Reprice.md +10 -0
  73. data/docs/RepriceData.md +22 -0
  74. data/docs/RepricePayload.md +20 -0
  75. data/docs/RespondentApi.md +86 -0
  76. data/docs/Status.md +9 -0
  77. data/docs/SupportedLanguage.md +10 -0
  78. data/docs/SurveyEndLinks.md +10 -0
  79. data/docs/SurveyTestId.md +10 -0
  80. data/docs/SurveyTestLink.md +9 -0
  81. data/docs/Target.md +11 -0
  82. data/docs/TargetingAttribute.md +10 -0
  83. data/docs/TokenMedia.md +11 -0
  84. data/docs/TokenPayload.md +11 -0
  85. data/docs/URLParam.md +9 -0
  86. data/docs/UpdateLineItem.md +21 -0
  87. data/docs/UpdateProjectData.md +13 -0
  88. data/docs/UpdateProjectLineItem.md +22 -0
  89. data/docs/UserInfo.md +10 -0
  90. data/docs/UserInfoResponseData.md +10 -0
  91. data/docs/UsersApi.md +68 -0
  92. data/examples/auth.rb +18 -0
  93. data/git_push.sh +55 -0
  94. data/lib/samplify_api_client/api/attributes_api.rb +111 -0
  95. data/lib/samplify_api_client/api/auth_api.rb +230 -0
  96. data/lib/samplify_api_client/api/categories_api.rb +99 -0
  97. data/lib/samplify_api_client/api/countries_api.rb +99 -0
  98. data/lib/samplify_api_client/api/default_api.rb +115 -0
  99. data/lib/samplify_api_client/api/events_api.rb +317 -0
  100. data/lib/samplify_api_client/api/feasibility_api.rb +75 -0
  101. data/lib/samplify_api_client/api/line_items_api.rb +468 -0
  102. data/lib/samplify_api_client/api/projects_api.rb +660 -0
  103. data/lib/samplify_api_client/api/respondent_api.rb +113 -0
  104. data/lib/samplify_api_client/api/users_api.rb +81 -0
  105. data/lib/samplify_api_client/api_client.rb +389 -0
  106. data/lib/samplify_api_client/api_error.rb +38 -0
  107. data/lib/samplify_api_client/configuration.rb +209 -0
  108. data/lib/samplify_api_client/models/app_error.rb +218 -0
  109. data/lib/samplify_api_client/models/application_item_data.rb +234 -0
  110. data/lib/samplify_api_client/models/attribute_data.rb +334 -0
  111. data/lib/samplify_api_client/models/attribute_option.rb +219 -0
  112. data/lib/samplify_api_client/models/attributes.rb +219 -0
  113. data/lib/samplify_api_client/models/auth_error.rb +205 -0
  114. data/lib/samplify_api_client/models/author.rb +253 -0
  115. data/lib/samplify_api_client/models/buy_project.rb +219 -0
  116. data/lib/samplify_api_client/models/buy_project_item.rb +243 -0
  117. data/lib/samplify_api_client/models/buy_project_response.rb +194 -0
  118. data/lib/samplify_api_client/models/buy_projects_payload.rb +174 -0
  119. data/lib/samplify_api_client/models/categories.rb +219 -0
  120. data/lib/samplify_api_client/models/category_data.rb +204 -0
  121. data/lib/samplify_api_client/models/code_payload.rb +229 -0
  122. data/lib/samplify_api_client/models/countries.rb +219 -0
  123. data/lib/samplify_api_client/models/country_data.rb +230 -0
  124. data/lib/samplify_api_client/models/create_line_item.rb +217 -0
  125. data/lib/samplify_api_client/models/end_links.rb +288 -0
  126. data/lib/samplify_api_client/models/error_type.rb +204 -0
  127. data/lib/samplify_api_client/models/event.rb +217 -0
  128. data/lib/samplify_api_client/models/event_data.rb +289 -0
  129. data/lib/samplify_api_client/models/event_list_data.rb +289 -0
  130. data/lib/samplify_api_client/models/events.rb +219 -0
  131. data/lib/samplify_api_client/models/exclusion_data.rb +206 -0
  132. data/lib/samplify_api_client/models/feasibility.rb +219 -0
  133. data/lib/samplify_api_client/models/feasibility_data.rb +255 -0
  134. data/lib/samplify_api_client/models/feasibility_response_data.rb +193 -0
  135. data/lib/samplify_api_client/models/line_item_action_response.rb +244 -0
  136. data/lib/samplify_api_client/models/line_item_data.rb +398 -0
  137. data/lib/samplify_api_client/models/line_item_item_data.rb +358 -0
  138. data/lib/samplify_api_client/models/line_item_report_data.rb +478 -0
  139. data/lib/samplify_api_client/models/line_item_response_data.rb +408 -0
  140. data/lib/samplify_api_client/models/line_items.rb +219 -0
  141. data/lib/samplify_api_client/models/links.rb +219 -0
  142. data/lib/samplify_api_client/models/logout_payload.rb +219 -0
  143. data/lib/samplify_api_client/models/meta.rb +203 -0
  144. data/lib/samplify_api_client/models/project.rb +273 -0
  145. data/lib/samplify_api_client/models/project_action.rb +217 -0
  146. data/lib/samplify_api_client/models/project_action_response.rb +236 -0
  147. data/lib/samplify_api_client/models/project_category_data.rb +191 -0
  148. data/lib/samplify_api_client/models/project_item_data.rb +307 -0
  149. data/lib/samplify_api_client/models/project_report.rb +217 -0
  150. data/lib/samplify_api_client/models/project_report_data.rb +414 -0
  151. data/lib/samplify_api_client/models/project_reports.rb +219 -0
  152. data/lib/samplify_api_client/models/project_response.rb +217 -0
  153. data/lib/samplify_api_client/models/project_response_data.rb +347 -0
  154. data/lib/samplify_api_client/models/project_survey_end_links.rb +217 -0
  155. data/lib/samplify_api_client/models/project_survey_end_links_data.rb +272 -0
  156. data/lib/samplify_api_client/models/projects.rb +219 -0
  157. data/lib/samplify_api_client/models/quota_cell.rb +206 -0
  158. data/lib/samplify_api_client/models/quota_cell_feasibility.rb +204 -0
  159. data/lib/samplify_api_client/models/quota_group_data.rb +201 -0
  160. data/lib/samplify_api_client/models/quota_group_feasibility.rb +185 -0
  161. data/lib/samplify_api_client/models/quota_plan_data.rb +198 -0
  162. data/lib/samplify_api_client/models/reconcile.rb +217 -0
  163. data/lib/samplify_api_client/models/reconcile_data.rb +174 -0
  164. data/lib/samplify_api_client/models/refresh_token_payload.rb +214 -0
  165. data/lib/samplify_api_client/models/reprice.rb +217 -0
  166. data/lib/samplify_api_client/models/reprice_data.rb +399 -0
  167. data/lib/samplify_api_client/models/reprice_payload.rb +369 -0
  168. data/lib/samplify_api_client/models/status.rb +206 -0
  169. data/lib/samplify_api_client/models/supported_language.rb +219 -0
  170. data/lib/samplify_api_client/models/survey_end_links.rb +216 -0
  171. data/lib/samplify_api_client/models/survey_test_id.rb +219 -0
  172. data/lib/samplify_api_client/models/survey_test_link.rb +206 -0
  173. data/lib/samplify_api_client/models/target.rb +258 -0
  174. data/lib/samplify_api_client/models/targeting_attribute.rb +216 -0
  175. data/lib/samplify_api_client/models/token_media.rb +235 -0
  176. data/lib/samplify_api_client/models/token_payload.rb +229 -0
  177. data/lib/samplify_api_client/models/update_line_item.rb +353 -0
  178. data/lib/samplify_api_client/models/update_project_data.rb +238 -0
  179. data/lib/samplify_api_client/models/update_project_line_item.rb +368 -0
  180. data/lib/samplify_api_client/models/url_param.rb +204 -0
  181. data/lib/samplify_api_client/models/user_info.rb +217 -0
  182. data/lib/samplify_api_client/models/user_info_response_data.rb +221 -0
  183. data/lib/samplify_api_client/version.rb +15 -0
  184. data/lib/samplify_api_client.rb +125 -0
  185. data/samplify_api_client.gemspec +45 -0
  186. data/spec/api/attributes_api_spec.rb +53 -0
  187. data/spec/api/auth_api_spec.rb +79 -0
  188. data/spec/api/categories_api_spec.rb +51 -0
  189. data/spec/api/countries_api_spec.rb +51 -0
  190. data/spec/api/default_api_spec.rb +55 -0
  191. data/spec/api/events_api_spec.rb +100 -0
  192. data/spec/api/feasibility_api_spec.rb +46 -0
  193. data/spec/api/line_items_api_spec.rb +128 -0
  194. data/spec/api/projects_api_spec.rb +168 -0
  195. data/spec/api/respondent_api_spec.rb +55 -0
  196. data/spec/api/users_api_spec.rb +49 -0
  197. data/spec/api_client_spec.rb +226 -0
  198. data/spec/configuration_spec.rb +42 -0
  199. data/spec/models/app_error_spec.rb +53 -0
  200. data/spec/models/application_item_data_spec.rb +59 -0
  201. data/spec/models/attribute_data_spec.rb +93 -0
  202. data/spec/models/attribute_option_spec.rb +53 -0
  203. data/spec/models/attributes_spec.rb +53 -0
  204. data/spec/models/auth_error_spec.rb +47 -0
  205. data/spec/models/author_spec.rb +57 -0
  206. data/spec/models/buy_project_item_spec.rb +65 -0
  207. data/spec/models/buy_project_response_spec.rb +47 -0
  208. data/spec/models/buy_project_spec.rb +53 -0
  209. data/spec/models/buy_projects_payload_spec.rb +35 -0
  210. data/spec/models/categories_spec.rb +53 -0
  211. data/spec/models/category_data_spec.rb +47 -0
  212. data/spec/models/code_payload_spec.rb +59 -0
  213. data/spec/models/countries_spec.rb +53 -0
  214. data/spec/models/country_data_spec.rb +59 -0
  215. data/spec/models/create_line_item_spec.rb +53 -0
  216. data/spec/models/end_links_spec.rb +75 -0
  217. data/spec/models/error_type_spec.rb +47 -0
  218. data/spec/models/event_data_spec.rb +83 -0
  219. data/spec/models/event_list_data_spec.rb +83 -0
  220. data/spec/models/event_spec.rb +53 -0
  221. data/spec/models/events_spec.rb +53 -0
  222. data/spec/models/exclusion_data_spec.rb +47 -0
  223. data/spec/models/feasibility_data_spec.rb +77 -0
  224. data/spec/models/feasibility_response_data_spec.rb +47 -0
  225. data/spec/models/feasibility_spec.rb +53 -0
  226. data/spec/models/line_item_action_response_spec.rb +77 -0
  227. data/spec/models/line_item_data_spec.rb +129 -0
  228. data/spec/models/line_item_item_data_spec.rb +99 -0
  229. data/spec/models/line_item_report_data_spec.rb +147 -0
  230. data/spec/models/line_item_response_data_spec.rb +159 -0
  231. data/spec/models/line_items_spec.rb +53 -0
  232. data/spec/models/links_spec.rb +65 -0
  233. data/spec/models/logout_payload_spec.rb +53 -0
  234. data/spec/models/meta_spec.rb +53 -0
  235. data/spec/models/project_action_response_spec.rb +71 -0
  236. data/spec/models/project_action_spec.rb +53 -0
  237. data/spec/models/project_category_data_spec.rb +41 -0
  238. data/spec/models/project_item_data_spec.rb +81 -0
  239. data/spec/models/project_report_data_spec.rb +123 -0
  240. data/spec/models/project_report_spec.rb +53 -0
  241. data/spec/models/project_reports_spec.rb +53 -0
  242. data/spec/models/project_response_data_spec.rb +107 -0
  243. data/spec/models/project_response_spec.rb +53 -0
  244. data/spec/models/project_spec.rb +77 -0
  245. data/spec/models/project_survey_end_links_data_spec.rb +69 -0
  246. data/spec/models/project_survey_end_links_spec.rb +53 -0
  247. data/spec/models/projects_spec.rb +53 -0
  248. data/spec/models/quota_cell_feasibility_spec.rb +47 -0
  249. data/spec/models/quota_cell_spec.rb +53 -0
  250. data/spec/models/quota_group_data_spec.rb +47 -0
  251. data/spec/models/quota_group_feasibility_spec.rb +41 -0
  252. data/spec/models/quota_plan_data_spec.rb +47 -0
  253. data/spec/models/reconcile_data_spec.rb +35 -0
  254. data/spec/models/reconcile_spec.rb +53 -0
  255. data/spec/models/refresh_token_payload_spec.rb +53 -0
  256. data/spec/models/reprice_data_spec.rb +125 -0
  257. data/spec/models/reprice_payload_spec.rb +113 -0
  258. data/spec/models/reprice_spec.rb +53 -0
  259. data/spec/models/status_spec.rb +47 -0
  260. data/spec/models/supported_language_spec.rb +53 -0
  261. data/spec/models/survey_end_links_spec.rb +53 -0
  262. data/spec/models/survey_test_id_spec.rb +53 -0
  263. data/spec/models/survey_test_link_spec.rb +47 -0
  264. data/spec/models/target_spec.rb +63 -0
  265. data/spec/models/targeting_attribute_spec.rb +53 -0
  266. data/spec/models/token_media_spec.rb +59 -0
  267. data/spec/models/token_payload_spec.rb +59 -0
  268. data/spec/models/update_line_item_spec.rb +123 -0
  269. data/spec/models/update_project_data_spec.rb +71 -0
  270. data/spec/models/update_project_line_item_spec.rb +129 -0
  271. data/spec/models/url_param_spec.rb +47 -0
  272. data/spec/models/user_info_response_data_spec.rb +53 -0
  273. data/spec/models/user_info_spec.rb +53 -0
  274. data/spec/spec_helper.rb +111 -0
  275. metadata +585 -0
@@ -0,0 +1,238 @@
1
+ =begin
2
+ #Samplify API
3
+
4
+ #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module SamplifyAPIClient
16
+ class UpdateProjectData
17
+ attr_accessor :category
18
+
19
+ # List of emails to subscribe to notifications
20
+ attr_accessor :devices
21
+
22
+ attr_accessor :exclusions
23
+
24
+ # List of line items for the project.
25
+ attr_accessor :line_items
26
+
27
+ # List of emails to subscribe to notifications
28
+ attr_accessor :notification_emails
29
+
30
+ # Project title
31
+ attr_accessor :title
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ def self.attribute_map
35
+ {
36
+ :'category' => :'category',
37
+ :'devices' => :'devices',
38
+ :'exclusions' => :'exclusions',
39
+ :'line_items' => :'lineItems',
40
+ :'notification_emails' => :'notificationEmails',
41
+ :'title' => :'title'
42
+ }
43
+ end
44
+
45
+ # Attribute type mapping.
46
+ def self.swagger_types
47
+ {
48
+ :'category' => :'ProjectCategoryData',
49
+ :'devices' => :'Array<String>',
50
+ :'exclusions' => :'ExclusionData',
51
+ :'line_items' => :'Array<UpdateProjectLineItem>',
52
+ :'notification_emails' => :'Array<String>',
53
+ :'title' => :'String'
54
+ }
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ return unless attributes.is_a?(Hash)
61
+
62
+ # convert string to symbol for hash key
63
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
64
+
65
+ if attributes.has_key?(:'category')
66
+ self.category = attributes[:'category']
67
+ end
68
+
69
+ if attributes.has_key?(:'devices')
70
+ if (value = attributes[:'devices']).is_a?(Array)
71
+ self.devices = value
72
+ end
73
+ end
74
+
75
+ if attributes.has_key?(:'exclusions')
76
+ self.exclusions = attributes[:'exclusions']
77
+ end
78
+
79
+ if attributes.has_key?(:'lineItems')
80
+ if (value = attributes[:'lineItems']).is_a?(Array)
81
+ self.line_items = value
82
+ end
83
+ end
84
+
85
+ if attributes.has_key?(:'notificationEmails')
86
+ if (value = attributes[:'notificationEmails']).is_a?(Array)
87
+ self.notification_emails = value
88
+ end
89
+ end
90
+
91
+ if attributes.has_key?(:'title')
92
+ self.title = attributes[:'title']
93
+ end
94
+ end
95
+
96
+ # Show invalid properties with the reasons. Usually used together with valid?
97
+ # @return Array for valid properties with the reasons
98
+ def list_invalid_properties
99
+ invalid_properties = Array.new
100
+ invalid_properties
101
+ end
102
+
103
+ # Check to see if the all the properties in the model are valid
104
+ # @return true if the model is valid
105
+ def valid?
106
+ true
107
+ end
108
+
109
+ # Checks equality by comparing each attribute.
110
+ # @param [Object] Object to be compared
111
+ def ==(o)
112
+ return true if self.equal?(o)
113
+ self.class == o.class &&
114
+ category == o.category &&
115
+ devices == o.devices &&
116
+ exclusions == o.exclusions &&
117
+ line_items == o.line_items &&
118
+ notification_emails == o.notification_emails &&
119
+ title == o.title
120
+ end
121
+
122
+ # @see the `==` method
123
+ # @param [Object] Object to be compared
124
+ def eql?(o)
125
+ self == o
126
+ end
127
+
128
+ # Calculates hash code according to all attributes.
129
+ # @return [Fixnum] Hash code
130
+ def hash
131
+ [category, devices, exclusions, line_items, notification_emails, title].hash
132
+ end
133
+
134
+ # Builds the object from hash
135
+ # @param [Hash] attributes Model attributes in the form of hash
136
+ # @return [Object] Returns the model itself
137
+ def build_from_hash(attributes)
138
+ return nil unless attributes.is_a?(Hash)
139
+ self.class.swagger_types.each_pair do |key, type|
140
+ if type =~ /\AArray<(.*)>/i
141
+ # check to ensure the input is an array given that the the attribute
142
+ # is documented as an array but the input is not
143
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
144
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
145
+ end
146
+ elsif !attributes[self.class.attribute_map[key]].nil?
147
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
148
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
149
+ end
150
+
151
+ self
152
+ end
153
+
154
+ # Deserializes the data based on type
155
+ # @param string type Data type
156
+ # @param string value Value to be deserialized
157
+ # @return [Object] Deserialized data
158
+ def _deserialize(type, value)
159
+ case type.to_sym
160
+ when :DateTime
161
+ DateTime.parse(value)
162
+ when :Date
163
+ Date.parse(value)
164
+ when :String
165
+ value.to_s
166
+ when :Integer
167
+ value.to_i
168
+ when :Float
169
+ value.to_f
170
+ when :BOOLEAN
171
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
172
+ true
173
+ else
174
+ false
175
+ end
176
+ when :Object
177
+ # generic object (usually a Hash), return directly
178
+ value
179
+ when /\AArray<(?<inner_type>.+)>\z/
180
+ inner_type = Regexp.last_match[:inner_type]
181
+ value.map { |v| _deserialize(inner_type, v) }
182
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
183
+ k_type = Regexp.last_match[:k_type]
184
+ v_type = Regexp.last_match[:v_type]
185
+ {}.tap do |hash|
186
+ value.each do |k, v|
187
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
188
+ end
189
+ end
190
+ else # model
191
+ temp_model = SamplifyAPIClient.const_get(type).new
192
+ temp_model.build_from_hash(value)
193
+ end
194
+ end
195
+
196
+ # Returns the string representation of the object
197
+ # @return [String] String presentation of the object
198
+ def to_s
199
+ to_hash.to_s
200
+ end
201
+
202
+ # to_body is an alias to to_hash (backward compatibility)
203
+ # @return [Hash] Returns the object in the form of hash
204
+ def to_body
205
+ to_hash
206
+ end
207
+
208
+ # Returns the object in the form of hash
209
+ # @return [Hash] Returns the object in the form of hash
210
+ def to_hash
211
+ hash = {}
212
+ self.class.attribute_map.each_pair do |attr, param|
213
+ value = self.send(attr)
214
+ next if value.nil?
215
+ hash[param] = _to_hash(value)
216
+ end
217
+ hash
218
+ end
219
+
220
+ # Outputs non-array value in the form of hash
221
+ # For object, use to_hash. Otherwise, just return the value
222
+ # @param [Object] value Any valid value
223
+ # @return [Hash] Returns the value in the form of hash
224
+ def _to_hash(value)
225
+ if value.is_a?(Array)
226
+ value.compact.map { |v| _to_hash(v) }
227
+ elsif value.is_a?(Hash)
228
+ {}.tap do |hash|
229
+ value.each { |k, v| hash[k] = _to_hash(v) }
230
+ end
231
+ elsif value.respond_to? :to_hash
232
+ value.to_hash
233
+ else
234
+ value
235
+ end
236
+ end
237
+ end
238
+ end
@@ -0,0 +1,368 @@
1
+ =begin
2
+ #Samplify API
3
+
4
+ #No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5
+
6
+ OpenAPI spec version: 1.0
7
+
8
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
9
+ Swagger Codegen version: 2.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+
15
+ module SamplifyAPIClient
16
+ class UpdateProjectLineItem
17
+ # ISO country code
18
+ attr_accessor :country_iso_code
19
+
20
+ # Duration of the project in days.
21
+ attr_accessor :days_in_field
22
+
23
+ # Delivery type: SLOW, BALANCED, FAST or BURST.
24
+ attr_accessor :delivery_type
25
+
26
+ # Unique line item Id
27
+ attr_accessor :ext_line_item_id
28
+
29
+ # Expected incidence of the survey
30
+ attr_accessor :indicative_incidence
31
+
32
+ # ISO language code
33
+ attr_accessor :language_iso_code
34
+
35
+ # expected duration of the survey in minutes
36
+ attr_accessor :length_of_interview
37
+
38
+ attr_accessor :quota_plan
39
+
40
+ # Number of complete required for the line item
41
+ attr_accessor :required_completes
42
+
43
+ # Entry link for the user.
44
+ attr_accessor :survey_test_url
45
+
46
+ # SurveyTestURL Params of the line item.
47
+ attr_accessor :survey_test_url_params
48
+
49
+ # Entry link for the user.
50
+ attr_accessor :survey_url
51
+
52
+ # SurveyURL Params of the line item.
53
+ attr_accessor :survey_url_params
54
+
55
+ # Data of completes/starts required for the line item
56
+ attr_accessor :targets
57
+
58
+ # A title for the line item
59
+ attr_accessor :title
60
+
61
+ class EnumAttributeValidator
62
+ attr_reader :datatype
63
+ attr_reader :allowable_values
64
+
65
+ def initialize(datatype, allowable_values)
66
+ @allowable_values = allowable_values.map do |value|
67
+ case datatype.to_s
68
+ when /Integer/i
69
+ value.to_i
70
+ when /Float/i
71
+ value.to_f
72
+ else
73
+ value
74
+ end
75
+ end
76
+ end
77
+
78
+ def valid?(value)
79
+ !value || allowable_values.include?(value)
80
+ end
81
+ end
82
+
83
+ # Attribute mapping from ruby-style variable name to JSON key.
84
+ def self.attribute_map
85
+ {
86
+ :'country_iso_code' => :'countryISOCode',
87
+ :'days_in_field' => :'daysInField',
88
+ :'delivery_type' => :'deliveryType',
89
+ :'ext_line_item_id' => :'extLineItemId',
90
+ :'indicative_incidence' => :'indicativeIncidence',
91
+ :'language_iso_code' => :'languageISOCode',
92
+ :'length_of_interview' => :'lengthOfInterview',
93
+ :'quota_plan' => :'quotaPlan',
94
+ :'required_completes' => :'requiredCompletes',
95
+ :'survey_test_url' => :'surveyTestURL',
96
+ :'survey_test_url_params' => :'surveyTestURLParams',
97
+ :'survey_url' => :'surveyURL',
98
+ :'survey_url_params' => :'surveyURLParams',
99
+ :'targets' => :'targets',
100
+ :'title' => :'title'
101
+ }
102
+ end
103
+
104
+ # Attribute type mapping.
105
+ def self.swagger_types
106
+ {
107
+ :'country_iso_code' => :'String',
108
+ :'days_in_field' => :'Integer',
109
+ :'delivery_type' => :'String',
110
+ :'ext_line_item_id' => :'String',
111
+ :'indicative_incidence' => :'Float',
112
+ :'language_iso_code' => :'String',
113
+ :'length_of_interview' => :'Integer',
114
+ :'quota_plan' => :'QuotaPlanData',
115
+ :'required_completes' => :'Integer',
116
+ :'survey_test_url' => :'String',
117
+ :'survey_test_url_params' => :'Array<URLParam>',
118
+ :'survey_url' => :'String',
119
+ :'survey_url_params' => :'Array<URLParam>',
120
+ :'targets' => :'Array<Target>',
121
+ :'title' => :'String'
122
+ }
123
+ end
124
+
125
+ # Initializes the object
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ def initialize(attributes = {})
128
+ return unless attributes.is_a?(Hash)
129
+
130
+ # convert string to symbol for hash key
131
+ attributes = attributes.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }
132
+
133
+ if attributes.has_key?(:'countryISOCode')
134
+ self.country_iso_code = attributes[:'countryISOCode']
135
+ end
136
+
137
+ if attributes.has_key?(:'daysInField')
138
+ self.days_in_field = attributes[:'daysInField']
139
+ end
140
+
141
+ if attributes.has_key?(:'deliveryType')
142
+ self.delivery_type = attributes[:'deliveryType']
143
+ end
144
+
145
+ if attributes.has_key?(:'extLineItemId')
146
+ self.ext_line_item_id = attributes[:'extLineItemId']
147
+ end
148
+
149
+ if attributes.has_key?(:'indicativeIncidence')
150
+ self.indicative_incidence = attributes[:'indicativeIncidence']
151
+ end
152
+
153
+ if attributes.has_key?(:'languageISOCode')
154
+ self.language_iso_code = attributes[:'languageISOCode']
155
+ end
156
+
157
+ if attributes.has_key?(:'lengthOfInterview')
158
+ self.length_of_interview = attributes[:'lengthOfInterview']
159
+ end
160
+
161
+ if attributes.has_key?(:'quotaPlan')
162
+ self.quota_plan = attributes[:'quotaPlan']
163
+ end
164
+
165
+ if attributes.has_key?(:'requiredCompletes')
166
+ self.required_completes = attributes[:'requiredCompletes']
167
+ end
168
+
169
+ if attributes.has_key?(:'surveyTestURL')
170
+ self.survey_test_url = attributes[:'surveyTestURL']
171
+ end
172
+
173
+ if attributes.has_key?(:'surveyTestURLParams')
174
+ if (value = attributes[:'surveyTestURLParams']).is_a?(Array)
175
+ self.survey_test_url_params = value
176
+ end
177
+ end
178
+
179
+ if attributes.has_key?(:'surveyURL')
180
+ self.survey_url = attributes[:'surveyURL']
181
+ end
182
+
183
+ if attributes.has_key?(:'surveyURLParams')
184
+ if (value = attributes[:'surveyURLParams']).is_a?(Array)
185
+ self.survey_url_params = value
186
+ end
187
+ end
188
+
189
+ if attributes.has_key?(:'targets')
190
+ if (value = attributes[:'targets']).is_a?(Array)
191
+ self.targets = value
192
+ end
193
+ end
194
+
195
+ if attributes.has_key?(:'title')
196
+ self.title = attributes[:'title']
197
+ end
198
+ end
199
+
200
+ # Show invalid properties with the reasons. Usually used together with valid?
201
+ # @return Array for valid properties with the reasons
202
+ def list_invalid_properties
203
+ invalid_properties = Array.new
204
+ if @ext_line_item_id.nil?
205
+ invalid_properties.push('invalid value for "ext_line_item_id", ext_line_item_id cannot be nil.')
206
+ end
207
+
208
+ invalid_properties
209
+ end
210
+
211
+ # Check to see if the all the properties in the model are valid
212
+ # @return true if the model is valid
213
+ def valid?
214
+ delivery_type_validator = EnumAttributeValidator.new('String', ['SLOW', 'BALANCED', 'FAST', 'BURST'])
215
+ return false unless delivery_type_validator.valid?(@delivery_type)
216
+ return false if @ext_line_item_id.nil?
217
+ true
218
+ end
219
+
220
+ # Custom attribute writer method checking allowed values (enum).
221
+ # @param [Object] delivery_type Object to be assigned
222
+ def delivery_type=(delivery_type)
223
+ validator = EnumAttributeValidator.new('String', ['SLOW', 'BALANCED', 'FAST', 'BURST'])
224
+ unless validator.valid?(delivery_type)
225
+ fail ArgumentError, 'invalid value for "delivery_type", must be one of #{validator.allowable_values}.'
226
+ end
227
+ @delivery_type = delivery_type
228
+ end
229
+
230
+ # Checks equality by comparing each attribute.
231
+ # @param [Object] Object to be compared
232
+ def ==(o)
233
+ return true if self.equal?(o)
234
+ self.class == o.class &&
235
+ country_iso_code == o.country_iso_code &&
236
+ days_in_field == o.days_in_field &&
237
+ delivery_type == o.delivery_type &&
238
+ ext_line_item_id == o.ext_line_item_id &&
239
+ indicative_incidence == o.indicative_incidence &&
240
+ language_iso_code == o.language_iso_code &&
241
+ length_of_interview == o.length_of_interview &&
242
+ quota_plan == o.quota_plan &&
243
+ required_completes == o.required_completes &&
244
+ survey_test_url == o.survey_test_url &&
245
+ survey_test_url_params == o.survey_test_url_params &&
246
+ survey_url == o.survey_url &&
247
+ survey_url_params == o.survey_url_params &&
248
+ targets == o.targets &&
249
+ title == o.title
250
+ end
251
+
252
+ # @see the `==` method
253
+ # @param [Object] Object to be compared
254
+ def eql?(o)
255
+ self == o
256
+ end
257
+
258
+ # Calculates hash code according to all attributes.
259
+ # @return [Fixnum] Hash code
260
+ def hash
261
+ [country_iso_code, days_in_field, delivery_type, ext_line_item_id, indicative_incidence, language_iso_code, length_of_interview, quota_plan, required_completes, survey_test_url, survey_test_url_params, survey_url, survey_url_params, targets, title].hash
262
+ end
263
+
264
+ # Builds the object from hash
265
+ # @param [Hash] attributes Model attributes in the form of hash
266
+ # @return [Object] Returns the model itself
267
+ def build_from_hash(attributes)
268
+ return nil unless attributes.is_a?(Hash)
269
+ self.class.swagger_types.each_pair do |key, type|
270
+ if type =~ /\AArray<(.*)>/i
271
+ # check to ensure the input is an array given that the the attribute
272
+ # is documented as an array but the input is not
273
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
274
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
275
+ end
276
+ elsif !attributes[self.class.attribute_map[key]].nil?
277
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
278
+ end # or else data not found in attributes(hash), not an issue as the data can be optional
279
+ end
280
+
281
+ self
282
+ end
283
+
284
+ # Deserializes the data based on type
285
+ # @param string type Data type
286
+ # @param string value Value to be deserialized
287
+ # @return [Object] Deserialized data
288
+ def _deserialize(type, value)
289
+ case type.to_sym
290
+ when :DateTime
291
+ DateTime.parse(value)
292
+ when :Date
293
+ Date.parse(value)
294
+ when :String
295
+ value.to_s
296
+ when :Integer
297
+ value.to_i
298
+ when :Float
299
+ value.to_f
300
+ when :BOOLEAN
301
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
302
+ true
303
+ else
304
+ false
305
+ end
306
+ when :Object
307
+ # generic object (usually a Hash), return directly
308
+ value
309
+ when /\AArray<(?<inner_type>.+)>\z/
310
+ inner_type = Regexp.last_match[:inner_type]
311
+ value.map { |v| _deserialize(inner_type, v) }
312
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
313
+ k_type = Regexp.last_match[:k_type]
314
+ v_type = Regexp.last_match[:v_type]
315
+ {}.tap do |hash|
316
+ value.each do |k, v|
317
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
318
+ end
319
+ end
320
+ else # model
321
+ temp_model = SamplifyAPIClient.const_get(type).new
322
+ temp_model.build_from_hash(value)
323
+ end
324
+ end
325
+
326
+ # Returns the string representation of the object
327
+ # @return [String] String presentation of the object
328
+ def to_s
329
+ to_hash.to_s
330
+ end
331
+
332
+ # to_body is an alias to to_hash (backward compatibility)
333
+ # @return [Hash] Returns the object in the form of hash
334
+ def to_body
335
+ to_hash
336
+ end
337
+
338
+ # Returns the object in the form of hash
339
+ # @return [Hash] Returns the object in the form of hash
340
+ def to_hash
341
+ hash = {}
342
+ self.class.attribute_map.each_pair do |attr, param|
343
+ value = self.send(attr)
344
+ next if value.nil?
345
+ hash[param] = _to_hash(value)
346
+ end
347
+ hash
348
+ end
349
+
350
+ # Outputs non-array value in the form of hash
351
+ # For object, use to_hash. Otherwise, just return the value
352
+ # @param [Object] value Any valid value
353
+ # @return [Hash] Returns the value in the form of hash
354
+ def _to_hash(value)
355
+ if value.is_a?(Array)
356
+ value.compact.map { |v| _to_hash(v) }
357
+ elsif value.is_a?(Hash)
358
+ {}.tap do |hash|
359
+ value.each { |k, v| hash[k] = _to_hash(v) }
360
+ end
361
+ elsif value.respond_to? :to_hash
362
+ value.to_hash
363
+ else
364
+ value
365
+ end
366
+ end
367
+ end
368
+ end