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,212 @@
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 ApiV3AllianceSelection < ApiModelBase
18
+ attr_accessor :operation
19
+
20
+ attr_accessor :team
21
+
22
+ class EnumAttributeValidator
23
+ attr_reader :datatype
24
+ attr_reader :allowable_values
25
+
26
+ def initialize(datatype, allowable_values)
27
+ @allowable_values = allowable_values.map do |value|
28
+ case datatype.to_s
29
+ when /Integer/i
30
+ value.to_i
31
+ when /Float/i
32
+ value.to_f
33
+ else
34
+ value
35
+ end
36
+ end
37
+ end
38
+
39
+ def valid?(value)
40
+ !value || allowable_values.include?(value)
41
+ end
42
+ end
43
+
44
+ # Attribute mapping from ruby-style variable name to JSON key.
45
+ def self.attribute_map
46
+ {
47
+ :'operation' => :'operation',
48
+ :'team' => :'team'
49
+ }
50
+ end
51
+
52
+ # Returns attribute mapping this model knows about
53
+ def self.acceptable_attribute_map
54
+ attribute_map
55
+ end
56
+
57
+ # Returns all the JSON keys this model knows about
58
+ def self.acceptable_attributes
59
+ acceptable_attribute_map.values
60
+ end
61
+
62
+ # Attribute type mapping.
63
+ def self.openapi_types
64
+ {
65
+ :'operation' => :'ApiV3SelectionOperation',
66
+ :'team' => :'ApiV3SimpleTeam'
67
+ }
68
+ end
69
+
70
+ # List of attributes with nullable: true
71
+ def self.openapi_nullable
72
+ Set.new([
73
+ ])
74
+ end
75
+
76
+ # Initializes the object
77
+ # @param [Hash] attributes Model attributes in the form of hash
78
+ def initialize(attributes = {})
79
+ if (!attributes.is_a?(Hash))
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FtcApiV3Client::ApiV3AllianceSelection` initialize method"
81
+ end
82
+
83
+ # check to see if the attribute exists and convert string to symbol for hash key
84
+ acceptable_attribute_map = self.class.acceptable_attribute_map
85
+ attributes = attributes.each_with_object({}) { |(k, v), h|
86
+ if (!acceptable_attribute_map.key?(k.to_sym))
87
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FtcApiV3Client::ApiV3AllianceSelection`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
88
+ end
89
+ h[k.to_sym] = v
90
+ }
91
+
92
+ if attributes.key?(:'operation')
93
+ self.operation = attributes[:'operation']
94
+ else
95
+ self.operation = nil
96
+ end
97
+
98
+ if attributes.key?(:'team')
99
+ self.team = attributes[:'team']
100
+ else
101
+ self.team = nil
102
+ end
103
+ end
104
+
105
+ # Show invalid properties with the reasons. Usually used together with valid?
106
+ # @return Array for valid properties with the reasons
107
+ def list_invalid_properties
108
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
109
+ invalid_properties = Array.new
110
+ if @operation.nil?
111
+ invalid_properties.push('invalid value for "operation", operation cannot be nil.')
112
+ end
113
+
114
+ if @team.nil?
115
+ invalid_properties.push('invalid value for "team", team cannot be nil.')
116
+ end
117
+
118
+ invalid_properties
119
+ end
120
+
121
+ # Check to see if the all the properties in the model are valid
122
+ # @return true if the model is valid
123
+ def valid?
124
+ warn '[DEPRECATED] the `valid?` method is obsolete'
125
+ return false if @operation.nil?
126
+ return false if @team.nil?
127
+ true
128
+ end
129
+
130
+ # Custom attribute writer method with validation
131
+ # @param [Object] operation Value to be assigned
132
+ def operation=(operation)
133
+ if operation.nil?
134
+ fail ArgumentError, 'operation cannot be nil'
135
+ end
136
+
137
+ @operation = operation
138
+ end
139
+
140
+ # Custom attribute writer method with validation
141
+ # @param [Object] team Value to be assigned
142
+ def team=(team)
143
+ if team.nil?
144
+ fail ArgumentError, 'team cannot be nil'
145
+ end
146
+
147
+ @team = team
148
+ end
149
+
150
+ # Checks equality by comparing each attribute.
151
+ # @param [Object] Object to be compared
152
+ def ==(o)
153
+ return true if self.equal?(o)
154
+ self.class == o.class &&
155
+ operation == o.operation &&
156
+ team == o.team
157
+ end
158
+
159
+ # @see the `==` method
160
+ # @param [Object] Object to be compared
161
+ def eql?(o)
162
+ self == o
163
+ end
164
+
165
+ # Calculates hash code according to all attributes.
166
+ # @return [Integer] Hash code
167
+ def hash
168
+ [operation, team].hash
169
+ end
170
+
171
+ # Builds the object from hash
172
+ # @param [Hash] attributes Model attributes in the form of hash
173
+ # @return [Object] Returns the model itself
174
+ def self.build_from_hash(attributes)
175
+ return nil unless attributes.is_a?(Hash)
176
+ attributes = attributes.transform_keys(&:to_sym)
177
+ transformed_hash = {}
178
+ openapi_types.each_pair do |key, type|
179
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
180
+ transformed_hash["#{key}"] = nil
181
+ elsif type =~ /\AArray<(.*)>/i
182
+ # check to ensure the input is an array given that the attribute
183
+ # is documented as an array but the input is not
184
+ if attributes[attribute_map[key]].is_a?(Array)
185
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
186
+ end
187
+ elsif !attributes[attribute_map[key]].nil?
188
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
189
+ end
190
+ end
191
+ new(transformed_hash)
192
+ end
193
+
194
+ # Returns the object in the form of hash
195
+ # @return [Hash] Returns the object in the form of hash
196
+ def to_hash
197
+ hash = {}
198
+ self.class.attribute_map.each_pair do |attr, param|
199
+ value = self.send(attr)
200
+ if value.nil?
201
+ is_nullable = self.class.openapi_nullable.include?(attr)
202
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
203
+ end
204
+
205
+ hash[param] = _to_hash(value)
206
+ end
207
+ hash
208
+ end
209
+
210
+ end
211
+
212
+ end
@@ -0,0 +1,166 @@
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 ApiV3AllianceSelections < ApiModelBase
18
+ attr_accessor :selections
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'selections' => :'selections'
24
+ }
25
+ end
26
+
27
+ # Returns attribute mapping this model knows about
28
+ def self.acceptable_attribute_map
29
+ attribute_map
30
+ end
31
+
32
+ # Returns all the JSON keys this model knows about
33
+ def self.acceptable_attributes
34
+ acceptable_attribute_map.values
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.openapi_types
39
+ {
40
+ :'selections' => :'Array<ApiV3AllianceSelection>'
41
+ }
42
+ end
43
+
44
+ # List of attributes with nullable: true
45
+ def self.openapi_nullable
46
+ Set.new([
47
+ ])
48
+ end
49
+
50
+ # Initializes the object
51
+ # @param [Hash] attributes Model attributes in the form of hash
52
+ def initialize(attributes = {})
53
+ if (!attributes.is_a?(Hash))
54
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FtcApiV3Client::ApiV3AllianceSelections` initialize method"
55
+ end
56
+
57
+ # check to see if the attribute exists and convert string to symbol for hash key
58
+ acceptable_attribute_map = self.class.acceptable_attribute_map
59
+ attributes = attributes.each_with_object({}) { |(k, v), h|
60
+ if (!acceptable_attribute_map.key?(k.to_sym))
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FtcApiV3Client::ApiV3AllianceSelections`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
62
+ end
63
+ h[k.to_sym] = v
64
+ }
65
+
66
+ if attributes.key?(:'selections')
67
+ if (value = attributes[:'selections']).is_a?(Array)
68
+ self.selections = value
69
+ end
70
+ else
71
+ self.selections = nil
72
+ end
73
+ end
74
+
75
+ # Show invalid properties with the reasons. Usually used together with valid?
76
+ # @return Array for valid properties with the reasons
77
+ def list_invalid_properties
78
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
79
+ invalid_properties = Array.new
80
+ if @selections.nil?
81
+ invalid_properties.push('invalid value for "selections", selections cannot be nil.')
82
+ end
83
+
84
+ invalid_properties
85
+ end
86
+
87
+ # Check to see if the all the properties in the model are valid
88
+ # @return true if the model is valid
89
+ def valid?
90
+ warn '[DEPRECATED] the `valid?` method is obsolete'
91
+ return false if @selections.nil?
92
+ true
93
+ end
94
+
95
+ # Custom attribute writer method with validation
96
+ # @param [Object] selections Value to be assigned
97
+ def selections=(selections)
98
+ if selections.nil?
99
+ fail ArgumentError, 'selections cannot be nil'
100
+ end
101
+
102
+ @selections = selections
103
+ end
104
+
105
+ # Checks equality by comparing each attribute.
106
+ # @param [Object] Object to be compared
107
+ def ==(o)
108
+ return true if self.equal?(o)
109
+ self.class == o.class &&
110
+ selections == o.selections
111
+ end
112
+
113
+ # @see the `==` method
114
+ # @param [Object] Object to be compared
115
+ def eql?(o)
116
+ self == o
117
+ end
118
+
119
+ # Calculates hash code according to all attributes.
120
+ # @return [Integer] Hash code
121
+ def hash
122
+ [selections].hash
123
+ end
124
+
125
+ # Builds the object from hash
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ # @return [Object] Returns the model itself
128
+ def self.build_from_hash(attributes)
129
+ return nil unless attributes.is_a?(Hash)
130
+ attributes = attributes.transform_keys(&:to_sym)
131
+ transformed_hash = {}
132
+ openapi_types.each_pair do |key, type|
133
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
134
+ transformed_hash["#{key}"] = nil
135
+ elsif type =~ /\AArray<(.*)>/i
136
+ # check to ensure the input is an array given that the attribute
137
+ # is documented as an array but the input is not
138
+ if attributes[attribute_map[key]].is_a?(Array)
139
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
140
+ end
141
+ elsif !attributes[attribute_map[key]].nil?
142
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
143
+ end
144
+ end
145
+ new(transformed_hash)
146
+ end
147
+
148
+ # Returns the object in the form of hash
149
+ # @return [Hash] Returns the object in the form of hash
150
+ def to_hash
151
+ hash = {}
152
+ self.class.attribute_map.each_pair do |attr, param|
153
+ value = self.send(attr)
154
+ if value.nil?
155
+ is_nullable = self.class.openapi_nullable.include?(attr)
156
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
157
+ end
158
+
159
+ hash[param] = _to_hash(value)
160
+ end
161
+ hash
162
+ end
163
+
164
+ end
165
+
166
+ end
@@ -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
+ # Practice/qualification match alliances
18
+ class ApiV3AllianceSimpleMatchParticipants < ApiModelBase
19
+ attr_accessor :type
20
+
21
+ attr_accessor :red_alliance
22
+
23
+ attr_accessor :blue_alliance
24
+
25
+ # Attribute mapping from ruby-style variable name to JSON key.
26
+ def self.attribute_map
27
+ {
28
+ :'type' => :'type',
29
+ :'red_alliance' => :'redAlliance',
30
+ :'blue_alliance' => :'blueAlliance'
31
+ }
32
+ end
33
+
34
+ # Returns attribute mapping this model knows about
35
+ def self.acceptable_attribute_map
36
+ attribute_map
37
+ end
38
+
39
+ # Returns all the JSON keys this model knows about
40
+ def self.acceptable_attributes
41
+ acceptable_attribute_map.values
42
+ end
43
+
44
+ # Attribute type mapping.
45
+ def self.openapi_types
46
+ {
47
+ :'type' => :'String',
48
+ :'red_alliance' => :'ApiV3MatchAlliance',
49
+ :'blue_alliance' => :'ApiV3MatchAlliance'
50
+ }
51
+ end
52
+
53
+ # List of attributes with nullable: true
54
+ def self.openapi_nullable
55
+ Set.new([
56
+ ])
57
+ end
58
+
59
+ # Initializes the object
60
+ # @param [Hash] attributes Model attributes in the form of hash
61
+ def initialize(attributes = {})
62
+ if (!attributes.is_a?(Hash))
63
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FtcApiV3Client::ApiV3AllianceSimpleMatchParticipants` initialize method"
64
+ end
65
+
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ acceptable_attribute_map = self.class.acceptable_attribute_map
68
+ attributes = attributes.each_with_object({}) { |(k, v), h|
69
+ if (!acceptable_attribute_map.key?(k.to_sym))
70
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FtcApiV3Client::ApiV3AllianceSimpleMatchParticipants`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
71
+ end
72
+ h[k.to_sym] = v
73
+ }
74
+
75
+ if attributes.key?(:'type')
76
+ self.type = attributes[:'type']
77
+ else
78
+ self.type = nil
79
+ end
80
+
81
+ if attributes.key?(:'red_alliance')
82
+ self.red_alliance = attributes[:'red_alliance']
83
+ else
84
+ self.red_alliance = nil
85
+ end
86
+
87
+ if attributes.key?(:'blue_alliance')
88
+ self.blue_alliance = attributes[:'blue_alliance']
89
+ else
90
+ self.blue_alliance = nil
91
+ end
92
+ end
93
+
94
+ # Show invalid properties with the reasons. Usually used together with valid?
95
+ # @return Array for valid properties with the reasons
96
+ def list_invalid_properties
97
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
98
+ invalid_properties = Array.new
99
+ if @type.nil?
100
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
101
+ end
102
+
103
+ if @red_alliance.nil?
104
+ invalid_properties.push('invalid value for "red_alliance", red_alliance cannot be nil.')
105
+ end
106
+
107
+ if @blue_alliance.nil?
108
+ invalid_properties.push('invalid value for "blue_alliance", blue_alliance cannot be nil.')
109
+ end
110
+
111
+ invalid_properties
112
+ end
113
+
114
+ # Check to see if the all the properties in the model are valid
115
+ # @return true if the model is valid
116
+ def valid?
117
+ warn '[DEPRECATED] the `valid?` method is obsolete'
118
+ return false if @type.nil?
119
+ return false if @red_alliance.nil?
120
+ return false if @blue_alliance.nil?
121
+ true
122
+ end
123
+
124
+ # Custom attribute writer method with validation
125
+ # @param [Object] type Value to be assigned
126
+ def type=(type)
127
+ if type.nil?
128
+ fail ArgumentError, 'type cannot be nil'
129
+ end
130
+
131
+ @type = type
132
+ end
133
+
134
+ # Custom attribute writer method with validation
135
+ # @param [Object] red_alliance Value to be assigned
136
+ def red_alliance=(red_alliance)
137
+ if red_alliance.nil?
138
+ fail ArgumentError, 'red_alliance cannot be nil'
139
+ end
140
+
141
+ @red_alliance = red_alliance
142
+ end
143
+
144
+ # Custom attribute writer method with validation
145
+ # @param [Object] blue_alliance Value to be assigned
146
+ def blue_alliance=(blue_alliance)
147
+ if blue_alliance.nil?
148
+ fail ArgumentError, 'blue_alliance cannot be nil'
149
+ end
150
+
151
+ @blue_alliance = blue_alliance
152
+ end
153
+
154
+ # Checks equality by comparing each attribute.
155
+ # @param [Object] Object to be compared
156
+ def ==(o)
157
+ return true if self.equal?(o)
158
+ self.class == o.class &&
159
+ type == o.type &&
160
+ red_alliance == o.red_alliance &&
161
+ blue_alliance == o.blue_alliance
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
+ [type, red_alliance, blue_alliance].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