ftc_api_v3_client 0.1.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 (415) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +283 -0
  4. data/Rakefile +10 -0
  5. data/config.json +8 -0
  6. data/docs/ApiV3AdvancementFrom.md +22 -0
  7. data/docs/ApiV3AdvancementFromSlot.md +24 -0
  8. data/docs/ApiV3AdvancementStatus.md +15 -0
  9. data/docs/ApiV3AllianceColor.md +15 -0
  10. data/docs/ApiV3AllianceDescription.md +82 -0
  11. data/docs/ApiV3AllianceMatch.md +44 -0
  12. data/docs/ApiV3AllianceMatchDetails.md +46 -0
  13. data/docs/ApiV3AllianceMatchParticipants.md +79 -0
  14. data/docs/ApiV3AllianceMatchResults.md +22 -0
  15. data/docs/ApiV3AllianceMatchResultsDetails.md +20 -0
  16. data/docs/ApiV3AlliancePlayoffMatchParticipants.md +22 -0
  17. data/docs/ApiV3AllianceSelection.md +20 -0
  18. data/docs/ApiV3AllianceSelections.md +18 -0
  19. data/docs/ApiV3AllianceSimpleMatchParticipants.md +22 -0
  20. data/docs/ApiV3Award.md +30 -0
  21. data/docs/ApiV3AwardRecipient.md +24 -0
  22. data/docs/ApiV3AwardType.md +15 -0
  23. data/docs/ApiV3Awards.md +18 -0
  24. data/docs/ApiV3BasePlayoffSeriesDescription.md +79 -0
  25. data/docs/ApiV3BasicAllianceDescription.md +20 -0
  26. data/docs/ApiV3CenterStageRemoteScoreDetail.md +22 -0
  27. data/docs/ApiV3CenterStageScoreDetail.md +22 -0
  28. data/docs/ApiV3CompetingType.md +15 -0
  29. data/docs/ApiV3Coordinates.md +20 -0
  30. data/docs/ApiV3CsAchievementsDetail.md +56 -0
  31. data/docs/ApiV3CsEndLocation.md +15 -0
  32. data/docs/ApiV3CsPointsDetail.md +48 -0
  33. data/docs/ApiV3CsRemoteAchievementsDetail.md +44 -0
  34. data/docs/ApiV3CsRemotePointsDetail.md +46 -0
  35. data/docs/ApiV3DecodeAchievementsDetail.md +42 -0
  36. data/docs/ApiV3DecodeArtifactType.md +15 -0
  37. data/docs/ApiV3DecodePointsDetail.md +46 -0
  38. data/docs/ApiV3DecodeScoreDetail.md +22 -0
  39. data/docs/ApiV3DecodeTeleopBaseLocation.md +15 -0
  40. data/docs/ApiV3Division.md +20 -0
  41. data/docs/ApiV3DoubleEliminationSeriesDescription.md +36 -0
  42. data/docs/ApiV3DoubleElimsBracketHalf.md +15 -0
  43. data/docs/ApiV3Event.md +62 -0
  44. data/docs/ApiV3EventFormat.md +15 -0
  45. data/docs/ApiV3EventLiveStream.md +22 -0
  46. data/docs/ApiV3EventParticipant.md +22 -0
  47. data/docs/ApiV3EventParticipants.md +18 -0
  48. data/docs/ApiV3EventType.md +15 -0
  49. data/docs/ApiV3Events.md +18 -0
  50. data/docs/ApiV3FFAchievementsDetail.md +64 -0
  51. data/docs/ApiV3FFAutoLocation.md +15 -0
  52. data/docs/ApiV3FFEndLocation.md +15 -0
  53. data/docs/ApiV3FFPointsDetail.md +54 -0
  54. data/docs/ApiV3FFRemoteAchievementsDetail.md +52 -0
  55. data/docs/ApiV3FFRemotePointsDetail.md +48 -0
  56. data/docs/ApiV3FreightFrenzyRemoteScoreDetail.md +22 -0
  57. data/docs/ApiV3FreightFrenzyScoreDetail.md +22 -0
  58. data/docs/ApiV3IntoTheDeepScoreDetail.md +22 -0
  59. data/docs/ApiV3ItdAchievementsDetail.md +48 -0
  60. data/docs/ApiV3ItdAutoLocation.md +15 -0
  61. data/docs/ApiV3ItdPointsDetail.md +42 -0
  62. data/docs/ApiV3ItdTeleopLocation.md +15 -0
  63. data/docs/ApiV3JunctionElement.md +15 -0
  64. data/docs/ApiV3League.md +26 -0
  65. data/docs/ApiV3LeagueDetails.md +28 -0
  66. data/docs/ApiV3LeagueMembershipDetails.md +20 -0
  67. data/docs/ApiV3Leagues.md +18 -0
  68. data/docs/ApiV3Match.md +79 -0
  69. data/docs/ApiV3MatchAlliance.md +18 -0
  70. data/docs/ApiV3MatchDetails.md +79 -0
  71. data/docs/ApiV3MatchTeam.md +24 -0
  72. data/docs/ApiV3Matches.md +18 -0
  73. data/docs/ApiV3PitMap.md +30 -0
  74. data/docs/ApiV3PitMapCellType.md +15 -0
  75. data/docs/ApiV3PitMapElement.md +40 -0
  76. data/docs/ApiV3PitMapLabelOrientation.md +15 -0
  77. data/docs/ApiV3PlayoffAlliance.md +24 -0
  78. data/docs/ApiV3PlayoffAlliances.md +18 -0
  79. data/docs/ApiV3PlayoffMatchAlliance.md +20 -0
  80. data/docs/ApiV3PlayoffRanking.md +32 -0
  81. data/docs/ApiV3PlayoffRankings.md +18 -0
  82. data/docs/ApiV3PlayoffSeriesDescription.md +32 -0
  83. data/docs/ApiV3PlayoffStructure.md +22 -0
  84. data/docs/ApiV3PlayoffType.md +15 -0
  85. data/docs/ApiV3PowerPlayAchievementsDetail.md +52 -0
  86. data/docs/ApiV3PowerPlayAutoLocation.md +15 -0
  87. data/docs/ApiV3PowerPlayPointsDetail.md +46 -0
  88. data/docs/ApiV3PowerPlayRemoteAchievementsDetail.md +48 -0
  89. data/docs/ApiV3PowerPlayRemotePointsDetail.md +44 -0
  90. data/docs/ApiV3PowerPlayRemoteScoreDetail.md +22 -0
  91. data/docs/ApiV3PowerPlayScoreDetail.md +22 -0
  92. data/docs/ApiV3Ranking.md +32 -0
  93. data/docs/ApiV3Rankings.md +18 -0
  94. data/docs/ApiV3Region.md +20 -0
  95. data/docs/ApiV3Regions.md +18 -0
  96. data/docs/ApiV3RemoteJunctionElement.md +15 -0
  97. data/docs/ApiV3RemoteScoreDetail.md +85 -0
  98. data/docs/ApiV3RoundRobinAllianceDescription.md +20 -0
  99. data/docs/ApiV3ScoreDetail.md +94 -0
  100. data/docs/ApiV3Season.md +24 -0
  101. data/docs/ApiV3Seasons.md +20 -0
  102. data/docs/ApiV3SelectionOperation.md +15 -0
  103. data/docs/ApiV3SeriesAllianceDescription.md +22 -0
  104. data/docs/ApiV3SeriesAllianceState.md +15 -0
  105. data/docs/ApiV3SimpleEvent.md +48 -0
  106. data/docs/ApiV3SimpleTeam.md +22 -0
  107. data/docs/ApiV3SingleAwardRecipient.md +30 -0
  108. data/docs/ApiV3SingleTeamMatch.md +44 -0
  109. data/docs/ApiV3SingleTeamMatchDetails.md +46 -0
  110. data/docs/ApiV3SingleTeamMatchParticipants.md +18 -0
  111. data/docs/ApiV3SingleTeamMatchResults.md +18 -0
  112. data/docs/ApiV3SingleTeamMatchResultsDetails.md +18 -0
  113. data/docs/ApiV3SkystoneAchievementsDetail.md +54 -0
  114. data/docs/ApiV3SkystonePointsDetail.md +46 -0
  115. data/docs/ApiV3SkystoneScoreDetail.md +22 -0
  116. data/docs/ApiV3Stone.md +15 -0
  117. data/docs/ApiV3Team.md +38 -0
  118. data/docs/ApiV3TeamAvatar.md +20 -0
  119. data/docs/ApiV3TeamAvatars.md +18 -0
  120. data/docs/ApiV3TeamDetails.md +24 -0
  121. data/docs/ApiV3TeamEventParticipation.md +20 -0
  122. data/docs/ApiV3TeamEventParticipationDetails.md +26 -0
  123. data/docs/ApiV3TeamHistory.md +36 -0
  124. data/docs/ApiV3TeamSeasonHistory.md +20 -0
  125. data/docs/ApiV3Teams.md +18 -0
  126. data/docs/ApiV3TournamentLevel.md +15 -0
  127. data/docs/ApiV3UgAchievementsDetail.md +60 -0
  128. data/docs/ApiV3UgPointsDetail.md +44 -0
  129. data/docs/ApiV3UgRemoteAchievementsDetail.md +58 -0
  130. data/docs/ApiV3UgRemotePointsDetail.md +44 -0
  131. data/docs/ApiV3UgWobbleLocation.md +15 -0
  132. data/docs/ApiV3UltimateGoalRemoteScoreDetail.md +22 -0
  133. data/docs/ApiV3UltimateGoalScoreDetail.md +22 -0
  134. data/docs/EventsApi.md +977 -0
  135. data/docs/LeaguesApi.md +385 -0
  136. data/docs/RegionsApi.md +301 -0
  137. data/docs/SeasonsApi.md +148 -0
  138. data/docs/TeamsApi.md +371 -0
  139. data/ftc_api_v3_client.gemspec +39 -0
  140. data/git_push.sh +57 -0
  141. data/lib/ftc_api_v3_client/api/events_api.rb +934 -0
  142. data/lib/ftc_api_v3_client/api/leagues_api.rb +391 -0
  143. data/lib/ftc_api_v3_client/api/regions_api.rb +292 -0
  144. data/lib/ftc_api_v3_client/api/seasons_api.rb +142 -0
  145. data/lib/ftc_api_v3_client/api/teams_api.rb +349 -0
  146. data/lib/ftc_api_v3_client/api_client.rb +397 -0
  147. data/lib/ftc_api_v3_client/api_error.rb +58 -0
  148. data/lib/ftc_api_v3_client/api_model_base.rb +88 -0
  149. data/lib/ftc_api_v3_client/configuration.rb +308 -0
  150. data/lib/ftc_api_v3_client/models/api_v3_advancement_from.rb +202 -0
  151. data/lib/ftc_api_v3_client/models/api_v3_advancement_from_slot.rb +234 -0
  152. data/lib/ftc_api_v3_client/models/api_v3_advancement_status.rb +44 -0
  153. data/lib/ftc_api_v3_client/models/api_v3_alliance_color.rb +40 -0
  154. data/lib/ftc_api_v3_client/models/api_v3_alliance_description.rb +57 -0
  155. data/lib/ftc_api_v3_client/models/api_v3_alliance_match.rb +427 -0
  156. data/lib/ftc_api_v3_client/models/api_v3_alliance_match_details.rb +436 -0
  157. data/lib/ftc_api_v3_client/models/api_v3_alliance_match_participants.rb +55 -0
  158. data/lib/ftc_api_v3_client/models/api_v3_alliance_match_results.rb +221 -0
  159. data/lib/ftc_api_v3_client/models/api_v3_alliance_match_results_details.rb +190 -0
  160. data/lib/ftc_api_v3_client/models/api_v3_alliance_playoff_match_participants.rb +217 -0
  161. data/lib/ftc_api_v3_client/models/api_v3_alliance_selection.rb +212 -0
  162. data/lib/ftc_api_v3_client/models/api_v3_alliance_selections.rb +166 -0
  163. data/lib/ftc_api_v3_client/models/api_v3_alliance_simple_match_participants.rb +217 -0
  164. data/lib/ftc_api_v3_client/models/api_v3_award.rb +311 -0
  165. data/lib/ftc_api_v3_client/models/api_v3_award_recipient.rb +177 -0
  166. data/lib/ftc_api_v3_client/models/api_v3_award_type.rb +59 -0
  167. data/lib/ftc_api_v3_client/models/api_v3_awards.rb +166 -0
  168. data/lib/ftc_api_v3_client/models/api_v3_base_playoff_series_description.rb +55 -0
  169. data/lib/ftc_api_v3_client/models/api_v3_basic_alliance_description.rb +191 -0
  170. data/lib/ftc_api_v3_client/models/api_v3_center_stage_remote_score_detail.rb +217 -0
  171. data/lib/ftc_api_v3_client/models/api_v3_center_stage_score_detail.rb +217 -0
  172. data/lib/ftc_api_v3_client/models/api_v3_competing_type.rb +40 -0
  173. data/lib/ftc_api_v3_client/models/api_v3_coordinates.rb +191 -0
  174. data/lib/ftc_api_v3_client/models/api_v3_cs_achievements_detail.rb +680 -0
  175. data/lib/ftc_api_v3_client/models/api_v3_cs_end_location.rb +41 -0
  176. data/lib/ftc_api_v3_client/models/api_v3_cs_points_detail.rb +555 -0
  177. data/lib/ftc_api_v3_client/models/api_v3_cs_remote_achievements_detail.rb +524 -0
  178. data/lib/ftc_api_v3_client/models/api_v3_cs_remote_points_detail.rb +528 -0
  179. data/lib/ftc_api_v3_client/models/api_v3_decode_achievements_detail.rb +502 -0
  180. data/lib/ftc_api_v3_client/models/api_v3_decode_artifact_type.rb +41 -0
  181. data/lib/ftc_api_v3_client/models/api_v3_decode_points_detail.rb +529 -0
  182. data/lib/ftc_api_v3_client/models/api_v3_decode_score_detail.rb +217 -0
  183. data/lib/ftc_api_v3_client/models/api_v3_decode_teleop_base_location.rb +41 -0
  184. data/lib/ftc_api_v3_client/models/api_v3_division.rb +190 -0
  185. data/lib/ftc_api_v3_client/models/api_v3_double_elimination_series_description.rb +405 -0
  186. data/lib/ftc_api_v3_client/models/api_v3_double_elims_bracket_half.rb +40 -0
  187. data/lib/ftc_api_v3_client/models/api_v3_event.rb +559 -0
  188. data/lib/ftc_api_v3_client/models/api_v3_event_format.rb +41 -0
  189. data/lib/ftc_api_v3_client/models/api_v3_event_live_stream.rb +182 -0
  190. data/lib/ftc_api_v3_client/models/api_v3_event_participant.rb +221 -0
  191. data/lib/ftc_api_v3_client/models/api_v3_event_participants.rb +166 -0
  192. data/lib/ftc_api_v3_client/models/api_v3_event_type.rb +50 -0
  193. data/lib/ftc_api_v3_client/models/api_v3_events.rb +166 -0
  194. data/lib/ftc_api_v3_client/models/api_v3_ff_achievements_detail.rb +787 -0
  195. data/lib/ftc_api_v3_client/models/api_v3_ff_auto_location.rb +43 -0
  196. data/lib/ftc_api_v3_client/models/api_v3_ff_end_location.rb +41 -0
  197. data/lib/ftc_api_v3_client/models/api_v3_ff_points_detail.rb +633 -0
  198. data/lib/ftc_api_v3_client/models/api_v3_ff_remote_achievements_detail.rb +629 -0
  199. data/lib/ftc_api_v3_client/models/api_v3_ff_remote_points_detail.rb +554 -0
  200. data/lib/ftc_api_v3_client/models/api_v3_freight_frenzy_remote_score_detail.rb +217 -0
  201. data/lib/ftc_api_v3_client/models/api_v3_freight_frenzy_score_detail.rb +217 -0
  202. data/lib/ftc_api_v3_client/models/api_v3_into_the_deep_score_detail.rb +217 -0
  203. data/lib/ftc_api_v3_client/models/api_v3_itd_achievements_detail.rb +576 -0
  204. data/lib/ftc_api_v3_client/models/api_v3_itd_auto_location.rb +41 -0
  205. data/lib/ftc_api_v3_client/models/api_v3_itd_points_detail.rb +477 -0
  206. data/lib/ftc_api_v3_client/models/api_v3_itd_teleop_location.rb +43 -0
  207. data/lib/ftc_api_v3_client/models/api_v3_junction_element.rb +44 -0
  208. data/lib/ftc_api_v3_client/models/api_v3_league.rb +217 -0
  209. data/lib/ftc_api_v3_client/models/api_v3_league_details.rb +245 -0
  210. data/lib/ftc_api_v3_client/models/api_v3_league_membership_details.rb +190 -0
  211. data/lib/ftc_api_v3_client/models/api_v3_leagues.rb +166 -0
  212. data/lib/ftc_api_v3_client/models/api_v3_match.rb +55 -0
  213. data/lib/ftc_api_v3_client/models/api_v3_match_alliance.rb +166 -0
  214. data/lib/ftc_api_v3_client/models/api_v3_match_details.rb +55 -0
  215. data/lib/ftc_api_v3_client/models/api_v3_match_team.rb +209 -0
  216. data/lib/ftc_api_v3_client/models/api_v3_matches.rb +166 -0
  217. data/lib/ftc_api_v3_client/models/api_v3_pit_map.rb +322 -0
  218. data/lib/ftc_api_v3_client/models/api_v3_pit_map_cell_type.rb +45 -0
  219. data/lib/ftc_api_v3_client/models/api_v3_pit_map_element.rb +336 -0
  220. data/lib/ftc_api_v3_client/models/api_v3_pit_map_label_orientation.rb +40 -0
  221. data/lib/ftc_api_v3_client/models/api_v3_playoff_alliance.rb +212 -0
  222. data/lib/ftc_api_v3_client/models/api_v3_playoff_alliances.rb +166 -0
  223. data/lib/ftc_api_v3_client/models/api_v3_playoff_match_alliance.rb +192 -0
  224. data/lib/ftc_api_v3_client/models/api_v3_playoff_ranking.rb +348 -0
  225. data/lib/ftc_api_v3_client/models/api_v3_playoff_rankings.rb +166 -0
  226. data/lib/ftc_api_v3_client/models/api_v3_playoff_series_description.rb +347 -0
  227. data/lib/ftc_api_v3_client/models/api_v3_playoff_structure.rb +241 -0
  228. data/lib/ftc_api_v3_client/models/api_v3_playoff_type.rb +42 -0
  229. data/lib/ftc_api_v3_client/models/api_v3_power_play_achievements_detail.rb +576 -0
  230. data/lib/ftc_api_v3_client/models/api_v3_power_play_auto_location.rb +41 -0
  231. data/lib/ftc_api_v3_client/models/api_v3_power_play_points_detail.rb +529 -0
  232. data/lib/ftc_api_v3_client/models/api_v3_power_play_remote_achievements_detail.rb +538 -0
  233. data/lib/ftc_api_v3_client/models/api_v3_power_play_remote_points_detail.rb +502 -0
  234. data/lib/ftc_api_v3_client/models/api_v3_power_play_remote_score_detail.rb +217 -0
  235. data/lib/ftc_api_v3_client/models/api_v3_power_play_score_detail.rb +217 -0
  236. data/lib/ftc_api_v3_client/models/api_v3_ranking.rb +348 -0
  237. data/lib/ftc_api_v3_client/models/api_v3_rankings.rb +166 -0
  238. data/lib/ftc_api_v3_client/models/api_v3_region.rb +190 -0
  239. data/lib/ftc_api_v3_client/models/api_v3_regions.rb +166 -0
  240. data/lib/ftc_api_v3_client/models/api_v3_remote_junction_element.rb +40 -0
  241. data/lib/ftc_api_v3_client/models/api_v3_remote_score_detail.rb +59 -0
  242. data/lib/ftc_api_v3_client/models/api_v3_round_robin_alliance_description.rb +191 -0
  243. data/lib/ftc_api_v3_client/models/api_v3_score_detail.rb +65 -0
  244. data/lib/ftc_api_v3_client/models/api_v3_season.rb +242 -0
  245. data/lib/ftc_api_v3_client/models/api_v3_seasons.rb +192 -0
  246. data/lib/ftc_api_v3_client/models/api_v3_selection_operation.rb +43 -0
  247. data/lib/ftc_api_v3_client/models/api_v3_series_alliance_description.rb +239 -0
  248. data/lib/ftc_api_v3_client/models/api_v3_series_alliance_state.rb +40 -0
  249. data/lib/ftc_api_v3_client/models/api_v3_simple_event.rb +458 -0
  250. data/lib/ftc_api_v3_client/models/api_v3_simple_team.rb +217 -0
  251. data/lib/ftc_api_v3_client/models/api_v3_single_award_recipient.rb +293 -0
  252. data/lib/ftc_api_v3_client/models/api_v3_single_team_match.rb +427 -0
  253. data/lib/ftc_api_v3_client/models/api_v3_single_team_match_details.rb +436 -0
  254. data/lib/ftc_api_v3_client/models/api_v3_single_team_match_participants.rb +164 -0
  255. data/lib/ftc_api_v3_client/models/api_v3_single_team_match_results.rb +164 -0
  256. data/lib/ftc_api_v3_client/models/api_v3_single_team_match_results_details.rb +164 -0
  257. data/lib/ftc_api_v3_client/models/api_v3_skystone_achievements_detail.rb +634 -0
  258. data/lib/ftc_api_v3_client/models/api_v3_skystone_points_detail.rb +529 -0
  259. data/lib/ftc_api_v3_client/models/api_v3_skystone_score_detail.rb +217 -0
  260. data/lib/ftc_api_v3_client/models/api_v3_stone.rb +41 -0
  261. data/lib/ftc_api_v3_client/models/api_v3_team.rb +324 -0
  262. data/lib/ftc_api_v3_client/models/api_v3_team_avatar.rb +190 -0
  263. data/lib/ftc_api_v3_client/models/api_v3_team_avatars.rb +166 -0
  264. data/lib/ftc_api_v3_client/models/api_v3_team_details.rb +247 -0
  265. data/lib/ftc_api_v3_client/models/api_v3_team_event_participation.rb +192 -0
  266. data/lib/ftc_api_v3_client/models/api_v3_team_event_participation_details.rb +238 -0
  267. data/lib/ftc_api_v3_client/models/api_v3_team_history.rb +334 -0
  268. data/lib/ftc_api_v3_client/models/api_v3_team_season_history.rb +192 -0
  269. data/lib/ftc_api_v3_client/models/api_v3_teams.rb +166 -0
  270. data/lib/ftc_api_v3_client/models/api_v3_tournament_level.rb +43 -0
  271. data/lib/ftc_api_v3_client/models/api_v3_ug_achievements_detail.rb +732 -0
  272. data/lib/ftc_api_v3_client/models/api_v3_ug_points_detail.rb +503 -0
  273. data/lib/ftc_api_v3_client/models/api_v3_ug_remote_achievements_detail.rb +706 -0
  274. data/lib/ftc_api_v3_client/models/api_v3_ug_remote_points_detail.rb +503 -0
  275. data/lib/ftc_api_v3_client/models/api_v3_ug_wobble_location.rb +41 -0
  276. data/lib/ftc_api_v3_client/models/api_v3_ultimate_goal_remote_score_detail.rb +217 -0
  277. data/lib/ftc_api_v3_client/models/api_v3_ultimate_goal_score_detail.rb +217 -0
  278. data/lib/ftc_api_v3_client/version.rb +15 -0
  279. data/lib/ftc_api_v3_client.rb +173 -0
  280. data/spec/api/events_api_spec.rb +207 -0
  281. data/spec/api/leagues_api_spec.rb +104 -0
  282. data/spec/api/regions_api_spec.rb +86 -0
  283. data/spec/api/seasons_api_spec.rb +58 -0
  284. data/spec/api/teams_api_spec.rb +97 -0
  285. data/spec/models/api_v3_advancement_from_slot_spec.rb +54 -0
  286. data/spec/models/api_v3_advancement_from_spec.rb +48 -0
  287. data/spec/models/api_v3_advancement_status_spec.rb +30 -0
  288. data/spec/models/api_v3_alliance_color_spec.rb +30 -0
  289. data/spec/models/api_v3_alliance_description_spec.rb +44 -0
  290. data/spec/models/api_v3_alliance_match_details_spec.rb +120 -0
  291. data/spec/models/api_v3_alliance_match_participants_spec.rb +44 -0
  292. data/spec/models/api_v3_alliance_match_results_details_spec.rb +42 -0
  293. data/spec/models/api_v3_alliance_match_results_spec.rb +48 -0
  294. data/spec/models/api_v3_alliance_match_spec.rb +114 -0
  295. data/spec/models/api_v3_alliance_playoff_match_participants_spec.rb +48 -0
  296. data/spec/models/api_v3_alliance_selection_spec.rb +42 -0
  297. data/spec/models/api_v3_alliance_selections_spec.rb +36 -0
  298. data/spec/models/api_v3_alliance_simple_match_participants_spec.rb +48 -0
  299. data/spec/models/api_v3_award_recipient_spec.rb +54 -0
  300. data/spec/models/api_v3_award_spec.rb +72 -0
  301. data/spec/models/api_v3_award_type_spec.rb +30 -0
  302. data/spec/models/api_v3_awards_spec.rb +36 -0
  303. data/spec/models/api_v3_base_playoff_series_description_spec.rb +44 -0
  304. data/spec/models/api_v3_basic_alliance_description_spec.rb +42 -0
  305. data/spec/models/api_v3_center_stage_remote_score_detail_spec.rb +48 -0
  306. data/spec/models/api_v3_center_stage_score_detail_spec.rb +48 -0
  307. data/spec/models/api_v3_competing_type_spec.rb +30 -0
  308. data/spec/models/api_v3_coordinates_spec.rb +42 -0
  309. data/spec/models/api_v3_cs_achievements_detail_spec.rb +150 -0
  310. data/spec/models/api_v3_cs_end_location_spec.rb +30 -0
  311. data/spec/models/api_v3_cs_points_detail_spec.rb +126 -0
  312. data/spec/models/api_v3_cs_remote_achievements_detail_spec.rb +114 -0
  313. data/spec/models/api_v3_cs_remote_points_detail_spec.rb +120 -0
  314. data/spec/models/api_v3_decode_achievements_detail_spec.rb +108 -0
  315. data/spec/models/api_v3_decode_artifact_type_spec.rb +30 -0
  316. data/spec/models/api_v3_decode_points_detail_spec.rb +120 -0
  317. data/spec/models/api_v3_decode_score_detail_spec.rb +48 -0
  318. data/spec/models/api_v3_decode_teleop_base_location_spec.rb +30 -0
  319. data/spec/models/api_v3_division_spec.rb +42 -0
  320. data/spec/models/api_v3_double_elimination_series_description_spec.rb +90 -0
  321. data/spec/models/api_v3_double_elims_bracket_half_spec.rb +30 -0
  322. data/spec/models/api_v3_event_format_spec.rb +30 -0
  323. data/spec/models/api_v3_event_live_stream_spec.rb +48 -0
  324. data/spec/models/api_v3_event_participant_spec.rb +48 -0
  325. data/spec/models/api_v3_event_participants_spec.rb +36 -0
  326. data/spec/models/api_v3_event_spec.rb +168 -0
  327. data/spec/models/api_v3_event_type_spec.rb +30 -0
  328. data/spec/models/api_v3_events_spec.rb +36 -0
  329. data/spec/models/api_v3_ff_achievements_detail_spec.rb +174 -0
  330. data/spec/models/api_v3_ff_auto_location_spec.rb +30 -0
  331. data/spec/models/api_v3_ff_end_location_spec.rb +30 -0
  332. data/spec/models/api_v3_ff_points_detail_spec.rb +144 -0
  333. data/spec/models/api_v3_ff_remote_achievements_detail_spec.rb +138 -0
  334. data/spec/models/api_v3_ff_remote_points_detail_spec.rb +126 -0
  335. data/spec/models/api_v3_freight_frenzy_remote_score_detail_spec.rb +48 -0
  336. data/spec/models/api_v3_freight_frenzy_score_detail_spec.rb +48 -0
  337. data/spec/models/api_v3_into_the_deep_score_detail_spec.rb +48 -0
  338. data/spec/models/api_v3_itd_achievements_detail_spec.rb +126 -0
  339. data/spec/models/api_v3_itd_auto_location_spec.rb +30 -0
  340. data/spec/models/api_v3_itd_points_detail_spec.rb +108 -0
  341. data/spec/models/api_v3_itd_teleop_location_spec.rb +30 -0
  342. data/spec/models/api_v3_junction_element_spec.rb +30 -0
  343. data/spec/models/api_v3_league_details_spec.rb +66 -0
  344. data/spec/models/api_v3_league_membership_details_spec.rb +42 -0
  345. data/spec/models/api_v3_league_spec.rb +60 -0
  346. data/spec/models/api_v3_leagues_spec.rb +36 -0
  347. data/spec/models/api_v3_match_alliance_spec.rb +36 -0
  348. data/spec/models/api_v3_match_details_spec.rb +44 -0
  349. data/spec/models/api_v3_match_spec.rb +44 -0
  350. data/spec/models/api_v3_match_team_spec.rb +54 -0
  351. data/spec/models/api_v3_matches_spec.rb +36 -0
  352. data/spec/models/api_v3_pit_map_cell_type_spec.rb +30 -0
  353. data/spec/models/api_v3_pit_map_element_spec.rb +102 -0
  354. data/spec/models/api_v3_pit_map_label_orientation_spec.rb +30 -0
  355. data/spec/models/api_v3_pit_map_spec.rb +72 -0
  356. data/spec/models/api_v3_playoff_alliance_spec.rb +54 -0
  357. data/spec/models/api_v3_playoff_alliances_spec.rb +36 -0
  358. data/spec/models/api_v3_playoff_match_alliance_spec.rb +42 -0
  359. data/spec/models/api_v3_playoff_ranking_spec.rb +78 -0
  360. data/spec/models/api_v3_playoff_rankings_spec.rb +36 -0
  361. data/spec/models/api_v3_playoff_series_description_spec.rb +78 -0
  362. data/spec/models/api_v3_playoff_structure_spec.rb +48 -0
  363. data/spec/models/api_v3_playoff_type_spec.rb +30 -0
  364. data/spec/models/api_v3_power_play_achievements_detail_spec.rb +138 -0
  365. data/spec/models/api_v3_power_play_auto_location_spec.rb +30 -0
  366. data/spec/models/api_v3_power_play_points_detail_spec.rb +120 -0
  367. data/spec/models/api_v3_power_play_remote_achievements_detail_spec.rb +126 -0
  368. data/spec/models/api_v3_power_play_remote_points_detail_spec.rb +114 -0
  369. data/spec/models/api_v3_power_play_remote_score_detail_spec.rb +48 -0
  370. data/spec/models/api_v3_power_play_score_detail_spec.rb +48 -0
  371. data/spec/models/api_v3_ranking_spec.rb +78 -0
  372. data/spec/models/api_v3_rankings_spec.rb +36 -0
  373. data/spec/models/api_v3_region_spec.rb +42 -0
  374. data/spec/models/api_v3_regions_spec.rb +36 -0
  375. data/spec/models/api_v3_remote_junction_element_spec.rb +30 -0
  376. data/spec/models/api_v3_remote_score_detail_spec.rb +44 -0
  377. data/spec/models/api_v3_round_robin_alliance_description_spec.rb +42 -0
  378. data/spec/models/api_v3_score_detail_spec.rb +44 -0
  379. data/spec/models/api_v3_season_spec.rb +54 -0
  380. data/spec/models/api_v3_seasons_spec.rb +42 -0
  381. data/spec/models/api_v3_selection_operation_spec.rb +30 -0
  382. data/spec/models/api_v3_series_alliance_description_spec.rb +48 -0
  383. data/spec/models/api_v3_series_alliance_state_spec.rb +30 -0
  384. data/spec/models/api_v3_simple_event_spec.rb +126 -0
  385. data/spec/models/api_v3_simple_team_spec.rb +48 -0
  386. data/spec/models/api_v3_single_award_recipient_spec.rb +72 -0
  387. data/spec/models/api_v3_single_team_match_details_spec.rb +120 -0
  388. data/spec/models/api_v3_single_team_match_participants_spec.rb +36 -0
  389. data/spec/models/api_v3_single_team_match_results_details_spec.rb +36 -0
  390. data/spec/models/api_v3_single_team_match_results_spec.rb +36 -0
  391. data/spec/models/api_v3_single_team_match_spec.rb +114 -0
  392. data/spec/models/api_v3_skystone_achievements_detail_spec.rb +144 -0
  393. data/spec/models/api_v3_skystone_points_detail_spec.rb +120 -0
  394. data/spec/models/api_v3_skystone_score_detail_spec.rb +48 -0
  395. data/spec/models/api_v3_stone_spec.rb +30 -0
  396. data/spec/models/api_v3_team_avatar_spec.rb +42 -0
  397. data/spec/models/api_v3_team_avatars_spec.rb +36 -0
  398. data/spec/models/api_v3_team_details_spec.rb +54 -0
  399. data/spec/models/api_v3_team_event_participation_details_spec.rb +60 -0
  400. data/spec/models/api_v3_team_event_participation_spec.rb +42 -0
  401. data/spec/models/api_v3_team_history_spec.rb +90 -0
  402. data/spec/models/api_v3_team_season_history_spec.rb +42 -0
  403. data/spec/models/api_v3_team_spec.rb +96 -0
  404. data/spec/models/api_v3_teams_spec.rb +36 -0
  405. data/spec/models/api_v3_tournament_level_spec.rb +30 -0
  406. data/spec/models/api_v3_ug_achievements_detail_spec.rb +162 -0
  407. data/spec/models/api_v3_ug_points_detail_spec.rb +114 -0
  408. data/spec/models/api_v3_ug_remote_achievements_detail_spec.rb +156 -0
  409. data/spec/models/api_v3_ug_remote_points_detail_spec.rb +114 -0
  410. data/spec/models/api_v3_ug_wobble_location_spec.rb +30 -0
  411. data/spec/models/api_v3_ultimate_goal_remote_score_detail_spec.rb +48 -0
  412. data/spec/models/api_v3_ultimate_goal_score_detail_spec.rb +48 -0
  413. data/spec/spec_helper.rb +111 -0
  414. data/update.sh +1 -0
  415. metadata +630 -0
@@ -0,0 +1,217 @@
1
+ =begin
2
+ #FTC Scoring Data API
3
+
4
+ #THIS API IS CURRENTLY IN EARLY DEVELOPMENT AND MAY CHANGE WITHOUT WARNING. THIS PAGE WILL BE UPDATED ONCE THE API IS OFFICIALLY RELEASED. This API provides event and scoring data for FIRST Tech Challenge. Applications that present result data directly are encouraged to directly call this API rather than maintaining their own copies of the data. All endpoints are cached by our CDN and may return data up to one hour old for data that changes infrequently. During an event, data that changes frequently (e.g. match results and rankings) should not be more than 30 seconds old. NOTE: For developers who have integrated with the v2 API in the past, this is a policy shift, as previously developers were encouraged to maintain their own copy of relevant data. In the interest of providing the community with the most up-to-date data and reducing the burden for applications that are not performing their own analytics on event data, we are now encouraging directly integrating our API into websites and apps. Also note that all endpoints that accept a year argument now expect the year in which the FIRST Championship for that season is held. This is a change from the previous API and FTC-events website, which used the kickoff year. To report any issues, please report an issue here: https://github.com/FIRST-Tech-Challenge/scorekeeper/issues/new?template=api-bug-report.md To request additional data, please submit a feature request here: https://github.com/FIRST-Tech-Challenge/scorekeeper/issues/new?template=api-feature-request.md
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.20.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FtcApiV3Client
17
+ class ApiV3League < ApiModelBase
18
+ attr_accessor :code
19
+
20
+ attr_accessor :name
21
+
22
+ attr_accessor :remote
23
+
24
+ attr_accessor :location
25
+
26
+ attr_accessor :parent_code
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'code' => :'code',
32
+ :'name' => :'name',
33
+ :'remote' => :'remote',
34
+ :'location' => :'location',
35
+ :'parent_code' => :'parentCode'
36
+ }
37
+ end
38
+
39
+ # Returns attribute mapping this model knows about
40
+ def self.acceptable_attribute_map
41
+ attribute_map
42
+ end
43
+
44
+ # Returns all the JSON keys this model knows about
45
+ def self.acceptable_attributes
46
+ acceptable_attribute_map.values
47
+ end
48
+
49
+ # Attribute type mapping.
50
+ def self.openapi_types
51
+ {
52
+ :'code' => :'String',
53
+ :'name' => :'String',
54
+ :'remote' => :'Boolean',
55
+ :'location' => :'String',
56
+ :'parent_code' => :'String'
57
+ }
58
+ end
59
+
60
+ # List of attributes with nullable: true
61
+ def self.openapi_nullable
62
+ Set.new([
63
+ ])
64
+ end
65
+
66
+ # Initializes the object
67
+ # @param [Hash] attributes Model attributes in the form of hash
68
+ def initialize(attributes = {})
69
+ if (!attributes.is_a?(Hash))
70
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FtcApiV3Client::ApiV3League` initialize method"
71
+ end
72
+
73
+ # check to see if the attribute exists and convert string to symbol for hash key
74
+ acceptable_attribute_map = self.class.acceptable_attribute_map
75
+ attributes = attributes.each_with_object({}) { |(k, v), h|
76
+ if (!acceptable_attribute_map.key?(k.to_sym))
77
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FtcApiV3Client::ApiV3League`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
78
+ end
79
+ h[k.to_sym] = v
80
+ }
81
+
82
+ if attributes.key?(:'code')
83
+ self.code = attributes[:'code']
84
+ else
85
+ self.code = nil
86
+ end
87
+
88
+ if attributes.key?(:'name')
89
+ self.name = attributes[:'name']
90
+ else
91
+ self.name = nil
92
+ end
93
+
94
+ if attributes.key?(:'remote')
95
+ self.remote = attributes[:'remote']
96
+ end
97
+
98
+ if attributes.key?(:'location')
99
+ self.location = attributes[:'location']
100
+ end
101
+
102
+ if attributes.key?(:'parent_code')
103
+ self.parent_code = attributes[:'parent_code']
104
+ end
105
+ end
106
+
107
+ # Show invalid properties with the reasons. Usually used together with valid?
108
+ # @return Array for valid properties with the reasons
109
+ def list_invalid_properties
110
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
111
+ invalid_properties = Array.new
112
+ if @code.nil?
113
+ invalid_properties.push('invalid value for "code", code cannot be nil.')
114
+ end
115
+
116
+ if @name.nil?
117
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
118
+ end
119
+
120
+ invalid_properties
121
+ end
122
+
123
+ # Check to see if the all the properties in the model are valid
124
+ # @return true if the model is valid
125
+ def valid?
126
+ warn '[DEPRECATED] the `valid?` method is obsolete'
127
+ return false if @code.nil?
128
+ return false if @name.nil?
129
+ true
130
+ end
131
+
132
+ # Custom attribute writer method with validation
133
+ # @param [Object] code Value to be assigned
134
+ def code=(code)
135
+ if code.nil?
136
+ fail ArgumentError, 'code cannot be nil'
137
+ end
138
+
139
+ @code = code
140
+ end
141
+
142
+ # Custom attribute writer method with validation
143
+ # @param [Object] name Value to be assigned
144
+ def name=(name)
145
+ if name.nil?
146
+ fail ArgumentError, 'name cannot be nil'
147
+ end
148
+
149
+ @name = name
150
+ end
151
+
152
+ # Checks equality by comparing each attribute.
153
+ # @param [Object] Object to be compared
154
+ def ==(o)
155
+ return true if self.equal?(o)
156
+ self.class == o.class &&
157
+ code == o.code &&
158
+ name == o.name &&
159
+ remote == o.remote &&
160
+ location == o.location &&
161
+ parent_code == o.parent_code
162
+ end
163
+
164
+ # @see the `==` method
165
+ # @param [Object] Object to be compared
166
+ def eql?(o)
167
+ self == o
168
+ end
169
+
170
+ # Calculates hash code according to all attributes.
171
+ # @return [Integer] Hash code
172
+ def hash
173
+ [code, name, remote, location, parent_code].hash
174
+ end
175
+
176
+ # Builds the object from hash
177
+ # @param [Hash] attributes Model attributes in the form of hash
178
+ # @return [Object] Returns the model itself
179
+ def self.build_from_hash(attributes)
180
+ return nil unless attributes.is_a?(Hash)
181
+ attributes = attributes.transform_keys(&:to_sym)
182
+ transformed_hash = {}
183
+ openapi_types.each_pair do |key, type|
184
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
185
+ transformed_hash["#{key}"] = nil
186
+ elsif type =~ /\AArray<(.*)>/i
187
+ # check to ensure the input is an array given that the attribute
188
+ # is documented as an array but the input is not
189
+ if attributes[attribute_map[key]].is_a?(Array)
190
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
191
+ end
192
+ elsif !attributes[attribute_map[key]].nil?
193
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
194
+ end
195
+ end
196
+ new(transformed_hash)
197
+ end
198
+
199
+ # Returns the object in the form of hash
200
+ # @return [Hash] Returns the object in the form of hash
201
+ def to_hash
202
+ hash = {}
203
+ self.class.attribute_map.each_pair do |attr, param|
204
+ value = self.send(attr)
205
+ if value.nil?
206
+ is_nullable = self.class.openapi_nullable.include?(attr)
207
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
208
+ end
209
+
210
+ hash[param] = _to_hash(value)
211
+ end
212
+ hash
213
+ end
214
+
215
+ end
216
+
217
+ end
@@ -0,0 +1,245 @@
1
+ =begin
2
+ #FTC Scoring Data API
3
+
4
+ #THIS API IS CURRENTLY IN EARLY DEVELOPMENT AND MAY CHANGE WITHOUT WARNING. THIS PAGE WILL BE UPDATED ONCE THE API IS OFFICIALLY RELEASED. This API provides event and scoring data for FIRST Tech Challenge. Applications that present result data directly are encouraged to directly call this API rather than maintaining their own copies of the data. All endpoints are cached by our CDN and may return data up to one hour old for data that changes infrequently. During an event, data that changes frequently (e.g. match results and rankings) should not be more than 30 seconds old. NOTE: For developers who have integrated with the v2 API in the past, this is a policy shift, as previously developers were encouraged to maintain their own copy of relevant data. In the interest of providing the community with the most up-to-date data and reducing the burden for applications that are not performing their own analytics on event data, we are now encouraging directly integrating our API into websites and apps. Also note that all endpoints that accept a year argument now expect the year in which the FIRST Championship for that season is held. This is a change from the previous API and FTC-events website, which used the kickoff year. To report any issues, please report an issue here: https://github.com/FIRST-Tech-Challenge/scorekeeper/issues/new?template=api-bug-report.md To request additional data, please submit a feature request here: https://github.com/FIRST-Tech-Challenge/scorekeeper/issues/new?template=api-feature-request.md
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.20.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FtcApiV3Client
17
+ class ApiV3LeagueDetails < ApiModelBase
18
+ attr_accessor :code
19
+
20
+ attr_accessor :name
21
+
22
+ attr_accessor :remote
23
+
24
+ attr_accessor :location
25
+
26
+ attr_accessor :parent_code
27
+
28
+ attr_accessor :children
29
+
30
+ # Attribute mapping from ruby-style variable name to JSON key.
31
+ def self.attribute_map
32
+ {
33
+ :'code' => :'code',
34
+ :'name' => :'name',
35
+ :'remote' => :'remote',
36
+ :'location' => :'location',
37
+ :'parent_code' => :'parentCode',
38
+ :'children' => :'children'
39
+ }
40
+ end
41
+
42
+ # Returns attribute mapping this model knows about
43
+ def self.acceptable_attribute_map
44
+ attribute_map
45
+ end
46
+
47
+ # Returns all the JSON keys this model knows about
48
+ def self.acceptable_attributes
49
+ acceptable_attribute_map.values
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.openapi_types
54
+ {
55
+ :'code' => :'String',
56
+ :'name' => :'String',
57
+ :'remote' => :'Boolean',
58
+ :'location' => :'String',
59
+ :'parent_code' => :'String',
60
+ :'children' => :'Array<ApiV3League>'
61
+ }
62
+ end
63
+
64
+ # List of attributes with nullable: true
65
+ def self.openapi_nullable
66
+ Set.new([
67
+ ])
68
+ end
69
+
70
+ # Initializes the object
71
+ # @param [Hash] attributes Model attributes in the form of hash
72
+ def initialize(attributes = {})
73
+ if (!attributes.is_a?(Hash))
74
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FtcApiV3Client::ApiV3LeagueDetails` initialize method"
75
+ end
76
+
77
+ # check to see if the attribute exists and convert string to symbol for hash key
78
+ acceptable_attribute_map = self.class.acceptable_attribute_map
79
+ attributes = attributes.each_with_object({}) { |(k, v), h|
80
+ if (!acceptable_attribute_map.key?(k.to_sym))
81
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FtcApiV3Client::ApiV3LeagueDetails`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
82
+ end
83
+ h[k.to_sym] = v
84
+ }
85
+
86
+ if attributes.key?(:'code')
87
+ self.code = attributes[:'code']
88
+ else
89
+ self.code = nil
90
+ end
91
+
92
+ if attributes.key?(:'name')
93
+ self.name = attributes[:'name']
94
+ else
95
+ self.name = nil
96
+ end
97
+
98
+ if attributes.key?(:'remote')
99
+ self.remote = attributes[:'remote']
100
+ end
101
+
102
+ if attributes.key?(:'location')
103
+ self.location = attributes[:'location']
104
+ end
105
+
106
+ if attributes.key?(:'parent_code')
107
+ self.parent_code = attributes[:'parent_code']
108
+ end
109
+
110
+ if attributes.key?(:'children')
111
+ if (value = attributes[:'children']).is_a?(Array)
112
+ self.children = value
113
+ end
114
+ else
115
+ self.children = nil
116
+ end
117
+ end
118
+
119
+ # Show invalid properties with the reasons. Usually used together with valid?
120
+ # @return Array for valid properties with the reasons
121
+ def list_invalid_properties
122
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
123
+ invalid_properties = Array.new
124
+ if @code.nil?
125
+ invalid_properties.push('invalid value for "code", code cannot be nil.')
126
+ end
127
+
128
+ if @name.nil?
129
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
130
+ end
131
+
132
+ if @children.nil?
133
+ invalid_properties.push('invalid value for "children", children cannot be nil.')
134
+ end
135
+
136
+ invalid_properties
137
+ end
138
+
139
+ # Check to see if the all the properties in the model are valid
140
+ # @return true if the model is valid
141
+ def valid?
142
+ warn '[DEPRECATED] the `valid?` method is obsolete'
143
+ return false if @code.nil?
144
+ return false if @name.nil?
145
+ return false if @children.nil?
146
+ true
147
+ end
148
+
149
+ # Custom attribute writer method with validation
150
+ # @param [Object] code Value to be assigned
151
+ def code=(code)
152
+ if code.nil?
153
+ fail ArgumentError, 'code cannot be nil'
154
+ end
155
+
156
+ @code = code
157
+ end
158
+
159
+ # Custom attribute writer method with validation
160
+ # @param [Object] name Value to be assigned
161
+ def name=(name)
162
+ if name.nil?
163
+ fail ArgumentError, 'name cannot be nil'
164
+ end
165
+
166
+ @name = name
167
+ end
168
+
169
+ # Custom attribute writer method with validation
170
+ # @param [Object] children Value to be assigned
171
+ def children=(children)
172
+ if children.nil?
173
+ fail ArgumentError, 'children cannot be nil'
174
+ end
175
+
176
+ @children = children
177
+ end
178
+
179
+ # Checks equality by comparing each attribute.
180
+ # @param [Object] Object to be compared
181
+ def ==(o)
182
+ return true if self.equal?(o)
183
+ self.class == o.class &&
184
+ code == o.code &&
185
+ name == o.name &&
186
+ remote == o.remote &&
187
+ location == o.location &&
188
+ parent_code == o.parent_code &&
189
+ children == o.children
190
+ end
191
+
192
+ # @see the `==` method
193
+ # @param [Object] Object to be compared
194
+ def eql?(o)
195
+ self == o
196
+ end
197
+
198
+ # Calculates hash code according to all attributes.
199
+ # @return [Integer] Hash code
200
+ def hash
201
+ [code, name, remote, location, parent_code, children].hash
202
+ end
203
+
204
+ # Builds the object from hash
205
+ # @param [Hash] attributes Model attributes in the form of hash
206
+ # @return [Object] Returns the model itself
207
+ def self.build_from_hash(attributes)
208
+ return nil unless attributes.is_a?(Hash)
209
+ attributes = attributes.transform_keys(&:to_sym)
210
+ transformed_hash = {}
211
+ openapi_types.each_pair do |key, type|
212
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
213
+ transformed_hash["#{key}"] = nil
214
+ elsif type =~ /\AArray<(.*)>/i
215
+ # check to ensure the input is an array given that the attribute
216
+ # is documented as an array but the input is not
217
+ if attributes[attribute_map[key]].is_a?(Array)
218
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
219
+ end
220
+ elsif !attributes[attribute_map[key]].nil?
221
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
222
+ end
223
+ end
224
+ new(transformed_hash)
225
+ end
226
+
227
+ # Returns the object in the form of hash
228
+ # @return [Hash] Returns the object in the form of hash
229
+ def to_hash
230
+ hash = {}
231
+ self.class.attribute_map.each_pair do |attr, param|
232
+ value = self.send(attr)
233
+ if value.nil?
234
+ is_nullable = self.class.openapi_nullable.include?(attr)
235
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
236
+ end
237
+
238
+ hash[param] = _to_hash(value)
239
+ end
240
+ hash
241
+ end
242
+
243
+ end
244
+
245
+ end
@@ -0,0 +1,190 @@
1
+ =begin
2
+ #FTC Scoring Data API
3
+
4
+ #THIS API IS CURRENTLY IN EARLY DEVELOPMENT AND MAY CHANGE WITHOUT WARNING. THIS PAGE WILL BE UPDATED ONCE THE API IS OFFICIALLY RELEASED. This API provides event and scoring data for FIRST Tech Challenge. Applications that present result data directly are encouraged to directly call this API rather than maintaining their own copies of the data. All endpoints are cached by our CDN and may return data up to one hour old for data that changes infrequently. During an event, data that changes frequently (e.g. match results and rankings) should not be more than 30 seconds old. NOTE: For developers who have integrated with the v2 API in the past, this is a policy shift, as previously developers were encouraged to maintain their own copy of relevant data. In the interest of providing the community with the most up-to-date data and reducing the burden for applications that are not performing their own analytics on event data, we are now encouraging directly integrating our API into websites and apps. Also note that all endpoints that accept a year argument now expect the year in which the FIRST Championship for that season is held. This is a change from the previous API and FTC-events website, which used the kickoff year. To report any issues, please report an issue here: https://github.com/FIRST-Tech-Challenge/scorekeeper/issues/new?template=api-bug-report.md To request additional data, please submit a feature request here: https://github.com/FIRST-Tech-Challenge/scorekeeper/issues/new?template=api-feature-request.md
5
+
6
+ The version of the OpenAPI document: v3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.20.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FtcApiV3Client
17
+ class ApiV3LeagueMembershipDetails < ApiModelBase
18
+ attr_accessor :league
19
+
20
+ attr_accessor :ranking
21
+
22
+ # Attribute mapping from ruby-style variable name to JSON key.
23
+ def self.attribute_map
24
+ {
25
+ :'league' => :'league',
26
+ :'ranking' => :'ranking'
27
+ }
28
+ end
29
+
30
+ # Returns attribute mapping this model knows about
31
+ def self.acceptable_attribute_map
32
+ attribute_map
33
+ end
34
+
35
+ # Returns all the JSON keys this model knows about
36
+ def self.acceptable_attributes
37
+ acceptable_attribute_map.values
38
+ end
39
+
40
+ # Attribute type mapping.
41
+ def self.openapi_types
42
+ {
43
+ :'league' => :'ApiV3League',
44
+ :'ranking' => :'ApiV3Ranking'
45
+ }
46
+ end
47
+
48
+ # List of attributes with nullable: true
49
+ def self.openapi_nullable
50
+ Set.new([
51
+ ])
52
+ end
53
+
54
+ # Initializes the object
55
+ # @param [Hash] attributes Model attributes in the form of hash
56
+ def initialize(attributes = {})
57
+ if (!attributes.is_a?(Hash))
58
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FtcApiV3Client::ApiV3LeagueMembershipDetails` initialize method"
59
+ end
60
+
61
+ # check to see if the attribute exists and convert string to symbol for hash key
62
+ acceptable_attribute_map = self.class.acceptable_attribute_map
63
+ attributes = attributes.each_with_object({}) { |(k, v), h|
64
+ if (!acceptable_attribute_map.key?(k.to_sym))
65
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FtcApiV3Client::ApiV3LeagueMembershipDetails`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
66
+ end
67
+ h[k.to_sym] = v
68
+ }
69
+
70
+ if attributes.key?(:'league')
71
+ self.league = attributes[:'league']
72
+ else
73
+ self.league = nil
74
+ end
75
+
76
+ if attributes.key?(:'ranking')
77
+ self.ranking = attributes[:'ranking']
78
+ else
79
+ self.ranking = nil
80
+ end
81
+ end
82
+
83
+ # Show invalid properties with the reasons. Usually used together with valid?
84
+ # @return Array for valid properties with the reasons
85
+ def list_invalid_properties
86
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
87
+ invalid_properties = Array.new
88
+ if @league.nil?
89
+ invalid_properties.push('invalid value for "league", league cannot be nil.')
90
+ end
91
+
92
+ if @ranking.nil?
93
+ invalid_properties.push('invalid value for "ranking", ranking cannot be nil.')
94
+ end
95
+
96
+ invalid_properties
97
+ end
98
+
99
+ # Check to see if the all the properties in the model are valid
100
+ # @return true if the model is valid
101
+ def valid?
102
+ warn '[DEPRECATED] the `valid?` method is obsolete'
103
+ return false if @league.nil?
104
+ return false if @ranking.nil?
105
+ true
106
+ end
107
+
108
+ # Custom attribute writer method with validation
109
+ # @param [Object] league Value to be assigned
110
+ def league=(league)
111
+ if league.nil?
112
+ fail ArgumentError, 'league cannot be nil'
113
+ end
114
+
115
+ @league = league
116
+ end
117
+
118
+ # Custom attribute writer method with validation
119
+ # @param [Object] ranking Value to be assigned
120
+ def ranking=(ranking)
121
+ if ranking.nil?
122
+ fail ArgumentError, 'ranking cannot be nil'
123
+ end
124
+
125
+ @ranking = ranking
126
+ end
127
+
128
+ # Checks equality by comparing each attribute.
129
+ # @param [Object] Object to be compared
130
+ def ==(o)
131
+ return true if self.equal?(o)
132
+ self.class == o.class &&
133
+ league == o.league &&
134
+ ranking == o.ranking
135
+ end
136
+
137
+ # @see the `==` method
138
+ # @param [Object] Object to be compared
139
+ def eql?(o)
140
+ self == o
141
+ end
142
+
143
+ # Calculates hash code according to all attributes.
144
+ # @return [Integer] Hash code
145
+ def hash
146
+ [league, ranking].hash
147
+ end
148
+
149
+ # Builds the object from hash
150
+ # @param [Hash] attributes Model attributes in the form of hash
151
+ # @return [Object] Returns the model itself
152
+ def self.build_from_hash(attributes)
153
+ return nil unless attributes.is_a?(Hash)
154
+ attributes = attributes.transform_keys(&:to_sym)
155
+ transformed_hash = {}
156
+ openapi_types.each_pair do |key, type|
157
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
158
+ transformed_hash["#{key}"] = nil
159
+ elsif type =~ /\AArray<(.*)>/i
160
+ # check to ensure the input is an array given that the attribute
161
+ # is documented as an array but the input is not
162
+ if attributes[attribute_map[key]].is_a?(Array)
163
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
164
+ end
165
+ elsif !attributes[attribute_map[key]].nil?
166
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
167
+ end
168
+ end
169
+ new(transformed_hash)
170
+ end
171
+
172
+ # Returns the object in the form of hash
173
+ # @return [Hash] Returns the object in the form of hash
174
+ def to_hash
175
+ hash = {}
176
+ self.class.attribute_map.each_pair do |attr, param|
177
+ value = self.send(attr)
178
+ if value.nil?
179
+ is_nullable = self.class.openapi_nullable.include?(attr)
180
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
181
+ end
182
+
183
+ hash[param] = _to_hash(value)
184
+ end
185
+ hash
186
+ end
187
+
188
+ end
189
+
190
+ end