From cb1a485936283f52435cbfd68937c69a96cafe34 Mon Sep 17 00:00:00 2001
From: TakumaNakagame <5129906+TakumaNakagame@users.noreply.github.com>
Date: Sat, 22 Oct 2022 17:05:43 +0900
Subject: [PATCH 1/2] add dreamkast api client for python(manualy)
---
dreamkast_api/.gitignore | 67 +
dreamkast_api/.gitlab-ci.yml | 24 +
dreamkast_api/.openapi-generator-ignore | 23 +
dreamkast_api/.openapi-generator/FILES | 82 +
dreamkast_api/.openapi-generator/VERSION | 1 +
dreamkast_api/.travis.yml | 13 +
dreamkast_api/README.md | 234 ++
dreamkast_api/docs/apis/tags/BoothApi.md | 111 +
.../docs/apis/tags/ChatMessageApi.md | 389 +++
dreamkast_api/docs/apis/tags/EventApi.md | 194 ++
dreamkast_api/docs/apis/tags/ProfileApi.md | 103 +
dreamkast_api/docs/apis/tags/SponsorApi.md | 110 +
dreamkast_api/docs/apis/tags/TalkApi.md | 355 +++
dreamkast_api/docs/apis/tags/TrackApi.md | 324 +++
.../docs/apis/tags/VideoRegistrationApi.md | 253 ++
dreamkast_api/docs/models/Booth.md | 64 +
dreamkast_api/docs/models/ChatMessage.md | 22 +
.../docs/models/ChatMessageProperties.md | 24 +
dreamkast_api/docs/models/Event.md | 51 +
dreamkast_api/docs/models/Profile.md | 16 +
dreamkast_api/docs/models/Sponsor.md | 47 +
dreamkast_api/docs/models/Talk.md | 65 +
dreamkast_api/docs/models/Track.md | 26 +
.../docs/models/UpdateChatMessage.md | 20 +
.../docs/models/VideoRegistration.md | 25 +
dreamkast_api/docs/models/ViewerCount.md | 17 +
dreamkast_api/git_push.sh | 58 +
dreamkast_api/openapi_client/__init__.py | 28 +
dreamkast_api/openapi_client/api_client.py | 1489 ++++++++++
dreamkast_api/openapi_client/apis/__init__.py | 3 +
.../openapi_client/apis/path_to_api.py | 53 +
.../openapi_client/apis/paths/__init__.py | 3 +
.../apis/paths/api_v1_booths_booth_id.py | 7 +
.../apis/paths/api_v1_chat_messages.py | 9 +
.../paths/api_v1_chat_messages_message_id.py | 7 +
.../paths/api_v1_event_abbr_my_profile.py | 7 +
.../apis/paths/api_v1_events.py | 7 +
.../apis/paths/api_v1_events_event_abbr.py | 7 +
.../apis/paths/api_v1_sponsors.py | 7 +
.../openapi_client/apis/paths/api_v1_talks.py | 7 +
.../apis/paths/api_v1_talks_talk_id.py | 9 +
...api_v1_talks_talk_id_video_registration.py | 9 +
.../apis/paths/api_v1_tracks.py | 7 +
.../apis/paths/api_v1_tracks_track_id.py | 7 +
.../api_v1_tracks_track_id_viewer_count.py | 7 +
.../openapi_client/apis/tag_to_api.py | 38 +
.../openapi_client/apis/tags/__init__.py | 16 +
.../openapi_client/apis/tags/booth_api.py | 23 +
.../apis/tags/chat_message_api.py | 27 +
.../openapi_client/apis/tags/event_api.py | 25 +
.../openapi_client/apis/tags/profile_api.py | 23 +
.../openapi_client/apis/tags/sponsor_api.py | 23 +
.../openapi_client/apis/tags/talk_api.py | 27 +
.../openapi_client/apis/tags/track_api.py | 27 +
.../apis/tags/video_registration_api.py | 25 +
dreamkast_api/openapi_client/configuration.py | 448 +++
dreamkast_api/openapi_client/exceptions.py | 136 +
.../openapi_client/model/__init__.py | 5 +
dreamkast_api/openapi_client/model/booth.py | 319 +++
dreamkast_api/openapi_client/model/booth.pyi | 319 +++
.../openapi_client/model/chat_message.py | 79 +
.../openapi_client/model/chat_message.pyi | 79 +
.../model/chat_message_properties.py | 226 ++
.../model/chat_message_properties.pyi | 219 ++
dreamkast_api/openapi_client/model/event.py | 283 ++
dreamkast_api/openapi_client/model/event.pyi | 283 ++
dreamkast_api/openapi_client/model/profile.py | 95 +
.../openapi_client/model/profile.pyi | 95 +
dreamkast_api/openapi_client/model/sponsor.py | 235 ++
.../openapi_client/model/sponsor.pyi | 235 ++
dreamkast_api/openapi_client/model/talk.py | 490 ++++
dreamkast_api/openapi_client/model/talk.pyi | 490 ++++
dreamkast_api/openapi_client/model/track.py | 204 ++
dreamkast_api/openapi_client/model/track.pyi | 204 ++
.../model/update_chat_message.py | 77 +
.../model/update_chat_message.pyi | 77 +
.../model/video_registration.py | 144 +
.../model/video_registration.pyi | 135 +
.../openapi_client/model/viewer_count.py | 106 +
.../openapi_client/model/viewer_count.pyi | 106 +
.../openapi_client/models/__init__.py | 24 +
.../openapi_client/paths/__init__.py | 21 +
.../paths/api_v1_booths_booth_id/__init__.py | 7 +
.../paths/api_v1_booths_booth_id/get.py | 219 ++
.../paths/api_v1_booths_booth_id/get.pyi | 146 +
.../paths/api_v1_chat_messages/__init__.py | 7 +
.../paths/api_v1_chat_messages/get.py | 274 ++
.../paths/api_v1_chat_messages/get.pyi | 177 ++
.../paths/api_v1_chat_messages/post.py | 162 ++
.../paths/api_v1_chat_messages/post.pyi | 137 +
.../__init__.py | 7 +
.../api_v1_chat_messages_message_id/put.py | 346 +++
.../api_v1_chat_messages_message_id/put.pyi | 246 ++
.../api_v1_event_abbr_my_profile/__init__.py | 7 +
.../paths/api_v1_event_abbr_my_profile/get.py | 206 ++
.../api_v1_event_abbr_my_profile/get.pyi | 146 +
.../paths/api_v1_events/__init__.py | 7 +
.../openapi_client/paths/api_v1_events/get.py | 199 ++
.../paths/api_v1_events/get.pyi | 150 +
.../api_v1_events_event_abbr/__init__.py | 7 +
.../paths/api_v1_events_event_abbr/get.py | 219 ++
.../paths/api_v1_events_event_abbr/get.pyi | 146 +
.../paths/api_v1_sponsors/__init__.py | 7 +
.../paths/api_v1_sponsors/get.py | 232 ++
.../paths/api_v1_sponsors/get.pyi | 171 ++
.../paths/api_v1_talks/__init__.py | 7 +
.../openapi_client/paths/api_v1_talks/get.py | 263 ++
.../openapi_client/paths/api_v1_talks/get.pyi | 175 ++
.../paths/api_v1_talks_talk_id/__init__.py | 7 +
.../paths/api_v1_talks_talk_id/get.py | 219 ++
.../paths/api_v1_talks_talk_id/get.pyi | 146 +
.../paths/api_v1_talks_talk_id/put.py | 238 ++
.../paths/api_v1_talks_talk_id/put.pyi | 202 ++
.../__init__.py | 7 +
.../get.py | 232 ++
.../get.pyi | 146 +
.../put.py | 246 ++
.../put.pyi | 158 ++
.../paths/api_v1_tracks/__init__.py | 7 +
.../openapi_client/paths/api_v1_tracks/get.py | 245 ++
.../paths/api_v1_tracks/get.pyi | 171 ++
.../paths/api_v1_tracks_track_id/__init__.py | 7 +
.../paths/api_v1_tracks_track_id/get.py | 219 ++
.../paths/api_v1_tracks_track_id/get.pyi | 146 +
.../__init__.py | 7 +
.../get.py | 219 ++
.../get.pyi | 146 +
dreamkast_api/openapi_client/rest.py | 253 ++
dreamkast_api/openapi_client/schemas.py | 2459 +++++++++++++++++
dreamkast_api/requirements.txt | 5 +
dreamkast_api/setup.cfg | 2 +
dreamkast_api/setup.py | 47 +
dreamkast_api/test-requirements.txt | 3 +
dreamkast_api/test/__init__.py | 0
dreamkast_api/test/test_models/__init__.py | 0
dreamkast_api/test/test_models/test_booth.py | 25 +
.../test/test_models/test_chat_message.py | 25 +
.../test_chat_message_properties.py | 25 +
dreamkast_api/test/test_models/test_event.py | 25 +
.../test/test_models/test_profile.py | 25 +
.../test/test_models/test_sponsor.py | 25 +
dreamkast_api/test/test_models/test_talk.py | 25 +
dreamkast_api/test/test_models/test_track.py | 25 +
.../test_models/test_update_chat_message.py | 25 +
.../test_models/test_video_registration.py | 25 +
.../test/test_models/test_viewer_count.py | 25 +
dreamkast_api/test/test_paths/__init__.py | 68 +
.../test_api_v1_booths_booth_id/__init__.py | 0
.../test_api_v1_booths_booth_id/test_get.py | 40 +
.../test_api_v1_chat_messages/__init__.py | 0
.../test_api_v1_chat_messages/test_get.py | 40 +
.../test_api_v1_chat_messages/test_post.py | 40 +
.../__init__.py | 0
.../test_put.py | 41 +
.../__init__.py | 0
.../test_get.py | 40 +
.../test_paths/test_api_v1_events/__init__.py | 0
.../test_paths/test_api_v1_events/test_get.py | 40 +
.../test_api_v1_events_event_abbr/__init__.py | 0
.../test_api_v1_events_event_abbr/test_get.py | 40 +
.../test_api_v1_sponsors/__init__.py | 0
.../test_api_v1_sponsors/test_get.py | 40 +
.../test_paths/test_api_v1_talks/__init__.py | 0
.../test_paths/test_api_v1_talks/test_get.py | 40 +
.../test_api_v1_talks_talk_id/__init__.py | 0
.../test_api_v1_talks_talk_id/test_get.py | 40 +
.../test_api_v1_talks_talk_id/test_put.py | 38 +
.../__init__.py | 0
.../test_get.py | 40 +
.../test_put.py | 40 +
.../test_paths/test_api_v1_tracks/__init__.py | 0
.../test_paths/test_api_v1_tracks/test_get.py | 40 +
.../test_api_v1_tracks_track_id/__init__.py | 0
.../test_api_v1_tracks_track_id/test_get.py | 40 +
.../__init__.py | 0
.../test_get.py | 40 +
dreamkast_api/tox.ini | 10 +
177 files changed, 19978 insertions(+)
create mode 100644 dreamkast_api/.gitignore
create mode 100644 dreamkast_api/.gitlab-ci.yml
create mode 100644 dreamkast_api/.openapi-generator-ignore
create mode 100644 dreamkast_api/.openapi-generator/FILES
create mode 100644 dreamkast_api/.openapi-generator/VERSION
create mode 100644 dreamkast_api/.travis.yml
create mode 100644 dreamkast_api/README.md
create mode 100644 dreamkast_api/docs/apis/tags/BoothApi.md
create mode 100644 dreamkast_api/docs/apis/tags/ChatMessageApi.md
create mode 100644 dreamkast_api/docs/apis/tags/EventApi.md
create mode 100644 dreamkast_api/docs/apis/tags/ProfileApi.md
create mode 100644 dreamkast_api/docs/apis/tags/SponsorApi.md
create mode 100644 dreamkast_api/docs/apis/tags/TalkApi.md
create mode 100644 dreamkast_api/docs/apis/tags/TrackApi.md
create mode 100644 dreamkast_api/docs/apis/tags/VideoRegistrationApi.md
create mode 100644 dreamkast_api/docs/models/Booth.md
create mode 100644 dreamkast_api/docs/models/ChatMessage.md
create mode 100644 dreamkast_api/docs/models/ChatMessageProperties.md
create mode 100644 dreamkast_api/docs/models/Event.md
create mode 100644 dreamkast_api/docs/models/Profile.md
create mode 100644 dreamkast_api/docs/models/Sponsor.md
create mode 100644 dreamkast_api/docs/models/Talk.md
create mode 100644 dreamkast_api/docs/models/Track.md
create mode 100644 dreamkast_api/docs/models/UpdateChatMessage.md
create mode 100644 dreamkast_api/docs/models/VideoRegistration.md
create mode 100644 dreamkast_api/docs/models/ViewerCount.md
create mode 100644 dreamkast_api/git_push.sh
create mode 100644 dreamkast_api/openapi_client/__init__.py
create mode 100644 dreamkast_api/openapi_client/api_client.py
create mode 100644 dreamkast_api/openapi_client/apis/__init__.py
create mode 100644 dreamkast_api/openapi_client/apis/path_to_api.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/__init__.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_booths_booth_id.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages_message_id.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_event_abbr_my_profile.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_events.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_events_event_abbr.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_sponsors.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_talks.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id_video_registration.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_tracks.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id.py
create mode 100644 dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id_viewer_count.py
create mode 100644 dreamkast_api/openapi_client/apis/tag_to_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/__init__.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/booth_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/chat_message_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/event_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/profile_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/sponsor_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/talk_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/track_api.py
create mode 100644 dreamkast_api/openapi_client/apis/tags/video_registration_api.py
create mode 100644 dreamkast_api/openapi_client/configuration.py
create mode 100644 dreamkast_api/openapi_client/exceptions.py
create mode 100644 dreamkast_api/openapi_client/model/__init__.py
create mode 100644 dreamkast_api/openapi_client/model/booth.py
create mode 100644 dreamkast_api/openapi_client/model/booth.pyi
create mode 100644 dreamkast_api/openapi_client/model/chat_message.py
create mode 100644 dreamkast_api/openapi_client/model/chat_message.pyi
create mode 100644 dreamkast_api/openapi_client/model/chat_message_properties.py
create mode 100644 dreamkast_api/openapi_client/model/chat_message_properties.pyi
create mode 100644 dreamkast_api/openapi_client/model/event.py
create mode 100644 dreamkast_api/openapi_client/model/event.pyi
create mode 100644 dreamkast_api/openapi_client/model/profile.py
create mode 100644 dreamkast_api/openapi_client/model/profile.pyi
create mode 100644 dreamkast_api/openapi_client/model/sponsor.py
create mode 100644 dreamkast_api/openapi_client/model/sponsor.pyi
create mode 100644 dreamkast_api/openapi_client/model/talk.py
create mode 100644 dreamkast_api/openapi_client/model/talk.pyi
create mode 100644 dreamkast_api/openapi_client/model/track.py
create mode 100644 dreamkast_api/openapi_client/model/track.pyi
create mode 100644 dreamkast_api/openapi_client/model/update_chat_message.py
create mode 100644 dreamkast_api/openapi_client/model/update_chat_message.pyi
create mode 100644 dreamkast_api/openapi_client/model/video_registration.py
create mode 100644 dreamkast_api/openapi_client/model/video_registration.pyi
create mode 100644 dreamkast_api/openapi_client/model/viewer_count.py
create mode 100644 dreamkast_api/openapi_client/model/viewer_count.pyi
create mode 100644 dreamkast_api/openapi_client/models/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_events/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_events/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_events/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_sponsors/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_sponsors/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_sponsors/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.pyi
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/__init__.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.py
create mode 100644 dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.pyi
create mode 100644 dreamkast_api/openapi_client/rest.py
create mode 100644 dreamkast_api/openapi_client/schemas.py
create mode 100644 dreamkast_api/requirements.txt
create mode 100644 dreamkast_api/setup.cfg
create mode 100644 dreamkast_api/setup.py
create mode 100644 dreamkast_api/test-requirements.txt
create mode 100644 dreamkast_api/test/__init__.py
create mode 100644 dreamkast_api/test/test_models/__init__.py
create mode 100644 dreamkast_api/test/test_models/test_booth.py
create mode 100644 dreamkast_api/test/test_models/test_chat_message.py
create mode 100644 dreamkast_api/test/test_models/test_chat_message_properties.py
create mode 100644 dreamkast_api/test/test_models/test_event.py
create mode 100644 dreamkast_api/test/test_models/test_profile.py
create mode 100644 dreamkast_api/test/test_models/test_sponsor.py
create mode 100644 dreamkast_api/test/test_models/test_talk.py
create mode 100644 dreamkast_api/test/test_models/test_track.py
create mode 100644 dreamkast_api/test/test_models/test_update_chat_message.py
create mode 100644 dreamkast_api/test/test_models/test_video_registration.py
create mode 100644 dreamkast_api/test/test_models/test_viewer_count.py
create mode 100644 dreamkast_api/test/test_paths/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_booths_booth_id/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_booths_booth_id/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_chat_messages/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_post.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_chat_messages_message_id/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_chat_messages_message_id/test_put.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_event_abbr_my_profile/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_event_abbr_my_profile/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_events/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_events/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_events_event_abbr/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_events_event_abbr/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_sponsors/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_sponsors/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_put.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_put.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_tracks/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_tracks/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_tracks_track_id/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_tracks_track_id/test_get.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_tracks_track_id_viewer_count/__init__.py
create mode 100644 dreamkast_api/test/test_paths/test_api_v1_tracks_track_id_viewer_count/test_get.py
create mode 100644 dreamkast_api/tox.ini
diff --git a/dreamkast_api/.gitignore b/dreamkast_api/.gitignore
new file mode 100644
index 0000000..a62e8ab
--- /dev/null
+++ b/dreamkast_api/.gitignore
@@ -0,0 +1,67 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+dev-requirements.txt.log
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+venv/
+.venv/
+.python-version
+.pytest_cache
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+#Ipython Notebook
+.ipynb_checkpoints
diff --git a/dreamkast_api/.gitlab-ci.yml b/dreamkast_api/.gitlab-ci.yml
new file mode 100644
index 0000000..7b0e377
--- /dev/null
+++ b/dreamkast_api/.gitlab-ci.yml
@@ -0,0 +1,24 @@
+# ref: https://docs.gitlab.com/ee/ci/README.html
+
+stages:
+ - test
+
+.tests:
+ stage: test
+ script:
+ - pip install -r requirements.txt
+ - pip install -r test-requirements.txt
+ - pytest --cov=openapi_client
+
+test-3.5:
+ extends: .tests
+ image: python:3.5-alpine
+test-3.6:
+ extends: .tests
+ image: python:3.6-alpine
+test-3.7:
+ extends: .tests
+ image: python:3.7-alpine
+test-3.8:
+ extends: .tests
+ image: python:3.8-alpine
diff --git a/dreamkast_api/.openapi-generator-ignore b/dreamkast_api/.openapi-generator-ignore
new file mode 100644
index 0000000..7484ee5
--- /dev/null
+++ b/dreamkast_api/.openapi-generator-ignore
@@ -0,0 +1,23 @@
+# OpenAPI Generator Ignore
+# Generated by openapi-generator https://github.com/openapitools/openapi-generator
+
+# Use this file to prevent files from being overwritten by the generator.
+# The patterns follow closely to .gitignore or .dockerignore.
+
+# As an example, the C# client generator defines ApiClient.cs.
+# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
+#ApiClient.cs
+
+# You can match any string of characters against a directory, file or extension with a single asterisk (*):
+#foo/*/qux
+# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
+
+# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
+#foo/**/qux
+# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
+
+# You can also negate patterns with an exclamation (!).
+# For example, you can ignore all files in a docs folder with the file extension .md:
+#docs/*.md
+# Then explicitly reverse the ignore rule for a single file:
+#!docs/README.md
diff --git a/dreamkast_api/.openapi-generator/FILES b/dreamkast_api/.openapi-generator/FILES
new file mode 100644
index 0000000..d6ea7c4
--- /dev/null
+++ b/dreamkast_api/.openapi-generator/FILES
@@ -0,0 +1,82 @@
+.gitignore
+.gitlab-ci.yml
+.openapi-generator-ignore
+.travis.yml
+README.md
+docs/apis/tags/BoothApi.md
+docs/apis/tags/ChatMessageApi.md
+docs/apis/tags/EventApi.md
+docs/apis/tags/ProfileApi.md
+docs/apis/tags/SponsorApi.md
+docs/apis/tags/TalkApi.md
+docs/apis/tags/TrackApi.md
+docs/apis/tags/VideoRegistrationApi.md
+docs/models/Booth.md
+docs/models/ChatMessage.md
+docs/models/ChatMessageProperties.md
+docs/models/Event.md
+docs/models/Profile.md
+docs/models/Sponsor.md
+docs/models/Talk.md
+docs/models/Track.md
+docs/models/UpdateChatMessage.md
+docs/models/VideoRegistration.md
+docs/models/ViewerCount.md
+git_push.sh
+openapi_client/__init__.py
+openapi_client/api_client.py
+openapi_client/apis/__init__.py
+openapi_client/apis/tags/booth_api.py
+openapi_client/apis/tags/chat_message_api.py
+openapi_client/apis/tags/event_api.py
+openapi_client/apis/tags/profile_api.py
+openapi_client/apis/tags/sponsor_api.py
+openapi_client/apis/tags/talk_api.py
+openapi_client/apis/tags/track_api.py
+openapi_client/apis/tags/video_registration_api.py
+openapi_client/configuration.py
+openapi_client/exceptions.py
+openapi_client/model/__init__.py
+openapi_client/model/booth.py
+openapi_client/model/booth.pyi
+openapi_client/model/chat_message.py
+openapi_client/model/chat_message.pyi
+openapi_client/model/chat_message_properties.py
+openapi_client/model/chat_message_properties.pyi
+openapi_client/model/event.py
+openapi_client/model/event.pyi
+openapi_client/model/profile.py
+openapi_client/model/profile.pyi
+openapi_client/model/sponsor.py
+openapi_client/model/sponsor.pyi
+openapi_client/model/talk.py
+openapi_client/model/talk.pyi
+openapi_client/model/track.py
+openapi_client/model/track.pyi
+openapi_client/model/update_chat_message.py
+openapi_client/model/update_chat_message.pyi
+openapi_client/model/video_registration.py
+openapi_client/model/video_registration.pyi
+openapi_client/model/viewer_count.py
+openapi_client/model/viewer_count.pyi
+openapi_client/models/__init__.py
+openapi_client/rest.py
+openapi_client/schemas.py
+requirements.txt
+setup.cfg
+setup.py
+test-requirements.txt
+test/__init__.py
+test/test_models/__init__.py
+test/test_models/test_booth.py
+test/test_models/test_chat_message.py
+test/test_models/test_chat_message_properties.py
+test/test_models/test_event.py
+test/test_models/test_profile.py
+test/test_models/test_sponsor.py
+test/test_models/test_talk.py
+test/test_models/test_track.py
+test/test_models/test_update_chat_message.py
+test/test_models/test_video_registration.py
+test/test_models/test_viewer_count.py
+tox.ini
diff --git a/dreamkast_api/.openapi-generator/VERSION b/dreamkast_api/.openapi-generator/VERSION
new file mode 100644
index 0000000..4ac4fde
--- /dev/null
+++ b/dreamkast_api/.openapi-generator/VERSION
@@ -0,0 +1 @@
+6.2.0
\ No newline at end of file
diff --git a/dreamkast_api/.travis.yml b/dreamkast_api/.travis.yml
new file mode 100644
index 0000000..43ac6b5
--- /dev/null
+++ b/dreamkast_api/.travis.yml
@@ -0,0 +1,13 @@
+# ref: https://docs.travis-ci.com/user/languages/python
+language: python
+python:
+ - "3.5"
+ - "3.6"
+ - "3.7"
+ - "3.8"
+# command to install dependencies
+install:
+ - "pip install -r requirements.txt"
+ - "pip install -r test-requirements.txt"
+# command to run tests
+script: pytest --cov=openapi_client
diff --git a/dreamkast_api/README.md b/dreamkast_api/README.md
new file mode 100644
index 0000000..a743f98
--- /dev/null
+++ b/dreamkast_api/README.md
@@ -0,0 +1,234 @@
+# openapi-client
+This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/.
+
+This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
+
+- API version: 1.0.0
+- Package version: 1.0.0
+- Build package: org.openapitools.codegen.languages.PythonClientCodegen
+
+## Requirements.
+
+Python >=3.7
+
+## Migration from other generators like python and python-legacy
+
+### Changes
+1. This generator uses spec case for all (object) property names and parameter names.
+ - So if the spec has a property name like camelCase, it will use camelCase rather than camel_case
+ - So you will need to update how you input and read properties to use spec case
+2. Endpoint parameters are stored in dictionaries to prevent collisions (explanation below)
+ - So you will need to update how you pass data in to endpoints
+3. Endpoint responses now include the original response, the deserialized response body, and (todo)the deserialized headers
+ - So you will need to update your code to use response.body to access deserialized data
+4. All validated data is instantiated in an instance that subclasses all validated Schema classes and Decimal/str/list/tuple/frozendict/NoneClass/BoolClass/bytes/io.FileIO
+ - This means that you can use isinstance to check if a payload validated against a schema class
+ - This means that no data will be of type None/True/False
+ - ingested None will subclass NoneClass
+ - ingested True will subclass BoolClass
+ - ingested False will subclass BoolClass
+ - So if you need to check is True/False/None, instead use instance.is_true_oapg()/.is_false_oapg()/.is_none_oapg()
+5. All validated class instances are immutable except for ones based on io.File
+ - This is because if properties were changed after validation, that validation would no longer apply
+ - So no changing values or property values after a class has been instantiated
+6. String + Number types with formats
+ - String type data is stored as a string and if you need to access types based on its format like date,
+ date-time, uuid, number etc then you will need to use accessor functions on the instance
+ - type string + format: See .as_date_oapg, .as_datetime_oapg, .as_decimal_oapg, .as_uuid_oapg
+ - type number + format: See .as_float_oapg, .as_int_oapg
+ - this was done because openapi/json-schema defines constraints. string data may be type string with no format
+ keyword in one schema, and include a format constraint in another schema
+ - So if you need to access a string format based type, use as_date_oapg/as_datetime_oapg/as_decimal_oapg/as_uuid_oapg
+ - So if you need to access a number format based type, use as_int_oapg/as_float_oapg
+7. Property access on AnyType(type unset) or object(dict) schemas
+ - Only required keys with valid python names are properties like .someProp and have type hints
+ - All optional keys may not exist, so properties are not defined for them
+ - One can access optional values with dict_instance['optionalProp'] and KeyError will be raised if it does not exist
+ - Use get_item_oapg if you need a way to always get a value whether or not the key exists
+ - If the key does not exist, schemas.unset is returned from calling dict_instance.get_item_oapg('optionalProp')
+ - All required and optional keys have type hints for this method, and @typing.overload is used
+ - A type hint is also generated for additionalProperties accessed using this method
+ - So you will need to update you code to use some_instance['optionalProp'] to access optional property
+ and additionalProperty values
+8. The location of the api classes has changed
+ - Api classes are located in your_package.apis.tags.some_api
+ - This change was made to eliminate redundant code generation
+ - Legacy generators generated the same endpoint twice if it had > 1 tag on it
+ - This generator defines an endpoint in one class, then inherits that class to generate
+ apis by tags and by paths
+ - This change reduces code and allows quicker run time if you use the path apis
+ - path apis are at your_package.apis.paths.some_path
+ - Those apis will only load their needed models, which is less to load than all of the resources needed in a tag api
+ - So you will need to update your import paths to the api classes
+
+### Why are Oapg and _oapg used in class and method names?
+Classes can have arbitrarily named properties set on them
+Endpoints can have arbitrary operationId method names set
+For those reasons, I use the prefix Oapg and _oapg to greatly reduce the likelihood of collisions
+on protected + public classes/methods.
+oapg stands for OpenApi Python Generator.
+
+### Object property spec case
+This was done because when payloads are ingested, they can be validated against N number of schemas.
+If the input signature used a different property name then that has mutated the payload.
+So SchemaA and SchemaB must both see the camelCase spec named variable.
+Also it is possible to send in two properties, named camelCase and camel_case in the same payload.
+That use case should be support so spec case is used.
+
+### Parameter spec case
+Parameters can be included in different locations including:
+- query
+- path
+- header
+- cookie
+
+Any of those parameters could use the same parameter names, so if every parameter
+was included as an endpoint parameter in a function signature, they would collide.
+For that reason, each of those inputs have been separated out into separate typed dictionaries:
+- query_params
+- path_params
+- header_params
+- cookie_params
+
+So when updating your code, you will need to pass endpoint parameters in using those
+dictionaries.
+
+### Endpoint responses
+Endpoint responses have been enriched to now include more information.
+Any response reom an endpoint will now include the following properties:
+response: urllib3.HTTPResponse
+body: typing.Union[Unset, Schema]
+headers: typing.Union[Unset, TODO]
+Note: response header deserialization has not yet been added
+
+
+## Installation & Usage
+### pip install
+
+If the python package is hosted on a repository, you can install directly using:
+
+```sh
+pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git
+```
+(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git`)
+
+Then import the package:
+```python
+import openapi_client
+```
+
+### Setuptools
+
+Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
+
+```sh
+python setup.py install --user
+```
+(or `sudo python setup.py install` to install the package for all users)
+
+Then import the package:
+```python
+import openapi_client
+```
+
+## Getting Started
+
+Please follow the [installation procedure](#installation--usage) and then run the following:
+
+```python
+
+import time
+import openapi_client
+from pprint import pprint
+from openapi_client.apis import booth_api
+from openapi_client.model.booth import Booth
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = booth_api.BoothApi(api_client)
+ booth_id = "boothId_example" # str | ID of booth
+
+ try:
+ api_response = api_instance.api_v1_booths_booth_id_get(booth_id)
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling BoothApi->api_v1_booths_booth_id_get: %s\n" % e)
+```
+
+## Documentation for API Endpoints
+
+All URIs are relative to *http://localhost:8080*
+
+Class | Method | HTTP request | Description
+------------ | ------------- | ------------- | -------------
+*BoothApi* | [**api_v1_booths_booth_id_get**](docs/apis/tags/BoothApi.md#api_v1_booths_booth_id_get) | **get** /api/v1/booths/{boothId} |
+*ChatMessageApi* | [**api_v1_chat_messages_get**](docs/apis/tags/ChatMessageApi.md#api_v1_chat_messages_get) | **get** /api/v1/chat_messages |
+*ChatMessageApi* | [**api_v1_chat_messages_message_id_put**](docs/apis/tags/ChatMessageApi.md#api_v1_chat_messages_message_id_put) | **put** /api/v1/chat_messages/{messageId} | Update Chat Message
+*ChatMessageApi* | [**api_v1_chat_messages_post**](docs/apis/tags/ChatMessageApi.md#api_v1_chat_messages_post) | **post** /api/v1/chat_messages | Post Chat Message
+*EventApi* | [**api_v1_events_event_abbr_get**](docs/apis/tags/EventApi.md#api_v1_events_event_abbr_get) | **get** /api/v1/events/{eventAbbr} |
+*EventApi* | [**api_v1_events_get**](docs/apis/tags/EventApi.md#api_v1_events_get) | **get** /api/v1/events |
+*ProfileApi* | [**api_v1_event_abbr_my_profile_get**](docs/apis/tags/ProfileApi.md#api_v1_event_abbr_my_profile_get) | **get** /api/v1/{eventAbbr}/my_profile |
+*SponsorApi* | [**api_v1_sponsors_get**](docs/apis/tags/SponsorApi.md#api_v1_sponsors_get) | **get** /api/v1/sponsors |
+*TalkApi* | [**api_v1_talks_get**](docs/apis/tags/TalkApi.md#api_v1_talks_get) | **get** /api/v1/talks |
+*TalkApi* | [**api_v1_talks_talk_id_get**](docs/apis/tags/TalkApi.md#api_v1_talks_talk_id_get) | **get** /api/v1/talks/{talkId} |
+*TalkApi* | [**api_v1_talks_talk_id_put**](docs/apis/tags/TalkApi.md#api_v1_talks_talk_id_put) | **put** /api/v1/talks/{talkId} | Put Talk
+*TrackApi* | [**api_v1_tracks_get**](docs/apis/tags/TrackApi.md#api_v1_tracks_get) | **get** /api/v1/tracks |
+*TrackApi* | [**api_v1_tracks_track_id_get**](docs/apis/tags/TrackApi.md#api_v1_tracks_track_id_get) | **get** /api/v1/tracks/{trackId} |
+*TrackApi* | [**api_v1_tracks_track_id_viewer_count_get**](docs/apis/tags/TrackApi.md#api_v1_tracks_track_id_viewer_count_get) | **get** /api/v1/tracks/{trackId}/viewer_count |
+*VideoRegistrationApi* | [**api_v1_talks_talk_id_video_registration_get**](docs/apis/tags/VideoRegistrationApi.md#api_v1_talks_talk_id_video_registration_get) | **get** /api/v1/talks/{talkId}/video_registration |
+*VideoRegistrationApi* | [**api_v1_talks_talk_id_video_registration_put**](docs/apis/tags/VideoRegistrationApi.md#api_v1_talks_talk_id_video_registration_put) | **put** /api/v1/talks/{talkId}/video_registration | Put VideoRegistration
+
+## Documentation For Models
+
+ - [Booth](docs/models/Booth.md)
+ - [ChatMessage](docs/models/ChatMessage.md)
+ - [ChatMessageProperties](docs/models/ChatMessageProperties.md)
+ - [Event](docs/models/Event.md)
+ - [Profile](docs/models/Profile.md)
+ - [Sponsor](docs/models/Sponsor.md)
+ - [Talk](docs/models/Talk.md)
+ - [Track](docs/models/Track.md)
+ - [UpdateChatMessage](docs/models/UpdateChatMessage.md)
+ - [VideoRegistration](docs/models/VideoRegistration.md)
+ - [ViewerCount](docs/models/ViewerCount.md)
+
+## Documentation For Authorization
+
+ All endpoints do not require authorization.
+
+## Author
+
+
+
+
+
+
+
+
+
+
+## Notes for Large OpenAPI documents
+If the OpenAPI document is large, imports in openapi_client.apis and openapi_client.models may fail with a
+RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:
+
+Solution 1:
+Use specific imports for apis and models like:
+- `from openapi_client.apis.default_api import DefaultApi`
+- `from openapi_client.model.pet import Pet`
+
+Solution 1:
+Before importing the package, adjust the maximum recursion limit as shown below:
+```
+import sys
+sys.setrecursionlimit(1500)
+import openapi_client
+from openapi_client.apis import *
+from openapi_client.models import *
+```
diff --git a/dreamkast_api/docs/apis/tags/BoothApi.md b/dreamkast_api/docs/apis/tags/BoothApi.md
new file mode 100644
index 0000000..f536de9
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/BoothApi.md
@@ -0,0 +1,111 @@
+
+# openapi_client.apis.tags.booth_api.BoothApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_booths_booth_id_get**](#api_v1_booths_booth_id_get) | **get** /api/v1/booths/{boothId} |
+
+# **api_v1_booths_booth_id_get**
+
+> Booth api_v1_booths_booth_id_get(booth_id)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import booth_api
+from openapi_client.model.booth import Booth
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = booth_api.BoothApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'boothId': "boothId_example",
+ }
+ try:
+ api_response = api_instance.api_v1_booths_booth_id_get(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling BoothApi->api_v1_booths_booth_id_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+path_params | RequestPathParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+boothId | BoothIdSchema | |
+
+# BoothIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_booths_booth_id_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_booths_booth_id_get.ApiResponseFor400) | Invalid params supplied
+404 | [ApiResponseFor404](#api_v1_booths_booth_id_get.ApiResponseFor404) | Booth not found
+
+#### api_v1_booths_booth_id_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**Booth**](../../models/Booth.md) | |
+
+
+#### api_v1_booths_booth_id_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_booths_booth_id_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/apis/tags/ChatMessageApi.md b/dreamkast_api/docs/apis/tags/ChatMessageApi.md
new file mode 100644
index 0000000..630893d
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/ChatMessageApi.md
@@ -0,0 +1,389 @@
+
+# openapi_client.apis.tags.chat_message_api.ChatMessageApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_chat_messages_get**](#api_v1_chat_messages_get) | **get** /api/v1/chat_messages |
+[**api_v1_chat_messages_message_id_put**](#api_v1_chat_messages_message_id_put) | **put** /api/v1/chat_messages/{messageId} | Update Chat Message
+[**api_v1_chat_messages_post**](#api_v1_chat_messages_post) | **post** /api/v1/chat_messages | Post Chat Message
+
+# **api_v1_chat_messages_get**
+
+> [ChatMessage] api_v1_chat_messages_get(event_abbrroom_idroom_type)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import chat_message_api
+from openapi_client.model.chat_message import ChatMessage
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = chat_message_api.ChatMessageApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ query_params = {
+ 'eventAbbr': "eventAbbr_example",
+ 'roomId': "roomId_example",
+ 'roomType': "roomType_example",
+ }
+ try:
+ api_response = api_instance.api_v1_chat_messages_get(
+ query_params=query_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling ChatMessageApi->api_v1_chat_messages_get: %s\n" % e)
+
+ # example passing only optional values
+ query_params = {
+ 'eventAbbr': "eventAbbr_example",
+ 'roomId': "roomId_example",
+ 'roomType': "roomType_example",
+ 'createdFrom': "1970-01-01T00:00:00.00Z",
+ }
+ try:
+ api_response = api_instance.api_v1_chat_messages_get(
+ query_params=query_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling ChatMessageApi->api_v1_chat_messages_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+query_params | RequestQueryParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### query_params
+#### RequestQueryParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+eventAbbr | EventAbbrSchema | |
+roomId | RoomIdSchema | |
+roomType | RoomTypeSchema | |
+createdFrom | CreatedFromSchema | | optional
+
+
+# EventAbbrSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+# RoomIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+# RoomTypeSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+# CreatedFromSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, datetime, | str, | | value must conform to RFC-3339 date-time
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_chat_messages_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_chat_messages_get.ApiResponseFor400) | Invalid params supplied
+404 | [ApiResponseFor404](#api_v1_chat_messages_get.ApiResponseFor404) | ChatMessage not found
+
+#### api_v1_chat_messages_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[**ChatMessage**]({{complexTypePrefix}}ChatMessage.md) | [**ChatMessage**]({{complexTypePrefix}}ChatMessage.md) | [**ChatMessage**]({{complexTypePrefix}}ChatMessage.md) | |
+
+#### api_v1_chat_messages_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_chat_messages_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_chat_messages_message_id_put**
+
+> [ChatMessage] api_v1_chat_messages_message_id_put(message_id)
+
+Update Chat Message
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import chat_message_api
+from openapi_client.model.chat_message import ChatMessage
+from openapi_client.model.update_chat_message import UpdateChatMessage
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = chat_message_api.ChatMessageApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'messageId': "messageId_example",
+ }
+ try:
+ # Update Chat Message
+ api_response = api_instance.api_v1_chat_messages_message_id_put(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling ChatMessageApi->api_v1_chat_messages_message_id_put: %s\n" % e)
+
+ # example passing only optional values
+ path_params = {
+ 'messageId': "messageId_example",
+ }
+ body = UpdateChatMessage()
+ try:
+ # Update Chat Message
+ api_response = api_instance.api_v1_chat_messages_message_id_put(
+ path_params=path_params,
+ body=body,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling ChatMessageApi->api_v1_chat_messages_message_id_put: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+body | typing.Union[SchemaForRequestBodyApplicationJson, Unset] | optional, default is unset |
+path_params | RequestPathParams | |
+content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### body
+
+# SchemaForRequestBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**UpdateChatMessage**](../../models/UpdateChatMessage.md) | |
+
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+messageId | MessageIdSchema | |
+
+# MessageIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_chat_messages_message_id_put.ApiResponseFor200) | OK
+403 | [ApiResponseFor403](#api_v1_chat_messages_message_id_put.ApiResponseFor403) | Don't have permission to update
+400 | [ApiResponseFor400](#api_v1_chat_messages_message_id_put.ApiResponseFor400) | Invalid params supplied
+404 | [ApiResponseFor404](#api_v1_chat_messages_message_id_put.ApiResponseFor404) | ChatMessage not found
+
+#### api_v1_chat_messages_message_id_put.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[**ChatMessage**]({{complexTypePrefix}}ChatMessage.md) | [**ChatMessage**]({{complexTypePrefix}}ChatMessage.md) | [**ChatMessage**]({{complexTypePrefix}}ChatMessage.md) | |
+
+#### api_v1_chat_messages_message_id_put.ApiResponseFor403
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor403ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor403ResponseBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**error** | str, | str, | | [optional]
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+#### api_v1_chat_messages_message_id_put.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_chat_messages_message_id_put.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_chat_messages_post**
+
+> api_v1_chat_messages_post()
+
+Post Chat Message
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import chat_message_api
+from openapi_client.model.chat_message import ChatMessage
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = chat_message_api.ChatMessageApi(api_client)
+
+ # example passing only optional values
+ body = ChatMessage()
+ try:
+ # Post Chat Message
+ api_response = api_instance.api_v1_chat_messages_post(
+ body=body,
+ )
+ except openapi_client.ApiException as e:
+ print("Exception when calling ChatMessageApi->api_v1_chat_messages_post: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+body | typing.Union[SchemaForRequestBodyApplicationJson, Unset] | optional, default is unset |
+content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### body
+
+# SchemaForRequestBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**ChatMessage**](../../models/ChatMessage.md) | |
+
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+201 | [ApiResponseFor201](#api_v1_chat_messages_post.ApiResponseFor201) | CREATED
+
+#### api_v1_chat_messages_post.ApiResponseFor201
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/apis/tags/EventApi.md b/dreamkast_api/docs/apis/tags/EventApi.md
new file mode 100644
index 0000000..1032079
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/EventApi.md
@@ -0,0 +1,194 @@
+
+# openapi_client.apis.tags.event_api.EventApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_events_event_abbr_get**](#api_v1_events_event_abbr_get) | **get** /api/v1/events/{eventAbbr} |
+[**api_v1_events_get**](#api_v1_events_get) | **get** /api/v1/events |
+
+# **api_v1_events_event_abbr_get**
+
+> Event api_v1_events_event_abbr_get(event_abbr)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import event_api
+from openapi_client.model.event import Event
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = event_api.EventApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'eventAbbr': "eventAbbr_example",
+ }
+ try:
+ api_response = api_instance.api_v1_events_event_abbr_get(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling EventApi->api_v1_events_event_abbr_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+path_params | RequestPathParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+eventAbbr | EventAbbrSchema | |
+
+# EventAbbrSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_events_event_abbr_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_events_event_abbr_get.ApiResponseFor400) | Invalid [eventAbbr] supplied
+404 | [ApiResponseFor404](#api_v1_events_event_abbr_get.ApiResponseFor404) | Event not found
+
+#### api_v1_events_event_abbr_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**Event**](../../models/Event.md) | |
+
+
+#### api_v1_events_event_abbr_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_events_event_abbr_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_events_get**
+
+> [Event] api_v1_events_get()
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import event_api
+from openapi_client.model.event import Event
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = event_api.EventApi(api_client)
+
+ # example, this endpoint has no required or optional parameters
+ try:
+ api_response = api_instance.api_v1_events_get()
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling EventApi->api_v1_events_get: %s\n" % e)
+```
+### Parameters
+This endpoint does not need any parameter.
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_events_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_events_get.ApiResponseFor400) | Invalid [eventAbbr] supplied
+404 | [ApiResponseFor404](#api_v1_events_get.ApiResponseFor404) | Event not found
+
+#### api_v1_events_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[**Event**]({{complexTypePrefix}}Event.md) | [**Event**]({{complexTypePrefix}}Event.md) | [**Event**]({{complexTypePrefix}}Event.md) | |
+
+#### api_v1_events_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_events_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/apis/tags/ProfileApi.md b/dreamkast_api/docs/apis/tags/ProfileApi.md
new file mode 100644
index 0000000..22db2ce
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/ProfileApi.md
@@ -0,0 +1,103 @@
+
+# openapi_client.apis.tags.profile_api.ProfileApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_event_abbr_my_profile_get**](#api_v1_event_abbr_my_profile_get) | **get** /api/v1/{eventAbbr}/my_profile |
+
+# **api_v1_event_abbr_my_profile_get**
+
+> Profile api_v1_event_abbr_my_profile_get(event_abbr)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import profile_api
+from openapi_client.model.profile import Profile
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = profile_api.ProfileApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'eventAbbr': "eventAbbr_example",
+ }
+ try:
+ api_response = api_instance.api_v1_event_abbr_my_profile_get(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling ProfileApi->api_v1_event_abbr_my_profile_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+path_params | RequestPathParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+eventAbbr | EventAbbrSchema | |
+
+# EventAbbrSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_event_abbr_my_profile_get.ApiResponseFor200) | OK
+403 | [ApiResponseFor403](#api_v1_event_abbr_my_profile_get.ApiResponseFor403) | You don't logged in
+
+#### api_v1_event_abbr_my_profile_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**Profile**](../../models/Profile.md) | |
+
+
+#### api_v1_event_abbr_my_profile_get.ApiResponseFor403
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/apis/tags/SponsorApi.md b/dreamkast_api/docs/apis/tags/SponsorApi.md
new file mode 100644
index 0000000..3599072
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/SponsorApi.md
@@ -0,0 +1,110 @@
+
+# openapi_client.apis.tags.sponsor_api.SponsorApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_sponsors_get**](#api_v1_sponsors_get) | **get** /api/v1/sponsors |
+
+# **api_v1_sponsors_get**
+
+> [Sponsor] api_v1_sponsors_get(event_abbr)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import sponsor_api
+from openapi_client.model.sponsor import Sponsor
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = sponsor_api.SponsorApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ query_params = {
+ 'eventAbbr': "eventAbbr_example",
+ }
+ try:
+ api_response = api_instance.api_v1_sponsors_get(
+ query_params=query_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling SponsorApi->api_v1_sponsors_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+query_params | RequestQueryParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### query_params
+#### RequestQueryParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+eventAbbr | EventAbbrSchema | |
+
+
+# EventAbbrSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_sponsors_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_sponsors_get.ApiResponseFor400) | Invalid params supplied
+
+#### api_v1_sponsors_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[**Sponsor**]({{complexTypePrefix}}Sponsor.md) | [**Sponsor**]({{complexTypePrefix}}Sponsor.md) | [**Sponsor**]({{complexTypePrefix}}Sponsor.md) | |
+
+#### api_v1_sponsors_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/apis/tags/TalkApi.md b/dreamkast_api/docs/apis/tags/TalkApi.md
new file mode 100644
index 0000000..3e75fef
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/TalkApi.md
@@ -0,0 +1,355 @@
+
+# openapi_client.apis.tags.talk_api.TalkApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_talks_get**](#api_v1_talks_get) | **get** /api/v1/talks |
+[**api_v1_talks_talk_id_get**](#api_v1_talks_talk_id_get) | **get** /api/v1/talks/{talkId} |
+[**api_v1_talks_talk_id_put**](#api_v1_talks_talk_id_put) | **put** /api/v1/talks/{talkId} | Put Talk
+
+# **api_v1_talks_get**
+
+> [Talk] api_v1_talks_get(event_abbr)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import talk_api
+from openapi_client.model.talk import Talk
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = talk_api.TalkApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ query_params = {
+ 'eventAbbr': "eventAbbr_example",
+ }
+ try:
+ api_response = api_instance.api_v1_talks_get(
+ query_params=query_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling TalkApi->api_v1_talks_get: %s\n" % e)
+
+ # example passing only optional values
+ query_params = {
+ 'eventAbbr': "eventAbbr_example",
+ 'trackId': "trackId_example",
+ 'conferenceDayIds': "conferenceDayIds_example",
+ }
+ try:
+ api_response = api_instance.api_v1_talks_get(
+ query_params=query_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling TalkApi->api_v1_talks_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+query_params | RequestQueryParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### query_params
+#### RequestQueryParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+eventAbbr | EventAbbrSchema | |
+trackId | TrackIdSchema | | optional
+conferenceDayIds | ConferenceDayIdsSchema | | optional
+
+
+# EventAbbrSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+# TrackIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+# ConferenceDayIdsSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_talks_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_talks_get.ApiResponseFor400) | Invalid [eventAbbr] supplied
+404 | [ApiResponseFor404](#api_v1_talks_get.ApiResponseFor404) | Event not found
+
+#### api_v1_talks_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[**Talk**]({{complexTypePrefix}}Talk.md) | [**Talk**]({{complexTypePrefix}}Talk.md) | [**Talk**]({{complexTypePrefix}}Talk.md) | |
+
+#### api_v1_talks_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_talks_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_talks_talk_id_get**
+
+> Talk api_v1_talks_talk_id_get(talk_id)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import talk_api
+from openapi_client.model.talk import Talk
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = talk_api.TalkApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'talkId': "talkId_example",
+ }
+ try:
+ api_response = api_instance.api_v1_talks_talk_id_get(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling TalkApi->api_v1_talks_talk_id_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+path_params | RequestPathParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+talkId | TalkIdSchema | |
+
+# TalkIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_talks_talk_id_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_talks_talk_id_get.ApiResponseFor400) | Invalid params supplied
+404 | [ApiResponseFor404](#api_v1_talks_talk_id_get.ApiResponseFor404) | Talk not found
+
+#### api_v1_talks_talk_id_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**Talk**](../../models/Talk.md) | |
+
+
+#### api_v1_talks_talk_id_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_talks_talk_id_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_talks_talk_id_put**
+
+> api_v1_talks_talk_id_put(talk_id)
+
+Put Talk
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import talk_api
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = talk_api.TalkApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'talkId': "talkId_example",
+ }
+ try:
+ # Put Talk
+ api_response = api_instance.api_v1_talks_talk_id_put(
+ path_params=path_params,
+ )
+ except openapi_client.ApiException as e:
+ print("Exception when calling TalkApi->api_v1_talks_talk_id_put: %s\n" % e)
+
+ # example passing only optional values
+ path_params = {
+ 'talkId': "talkId_example",
+ }
+ body = dict(
+ on_air=True,
+ )
+ try:
+ # Put Talk
+ api_response = api_instance.api_v1_talks_talk_id_put(
+ path_params=path_params,
+ body=body,
+ )
+ except openapi_client.ApiException as e:
+ print("Exception when calling TalkApi->api_v1_talks_talk_id_put: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+body | typing.Union[SchemaForRequestBodyApplicationJson, Unset] | optional, default is unset |
+path_params | RequestPathParams | |
+content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### body
+
+# SchemaForRequestBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**on_air** | bool, | BoolClass, | | [optional]
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+talkId | TalkIdSchema | |
+
+# TalkIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/apis/tags/TrackApi.md b/dreamkast_api/docs/apis/tags/TrackApi.md
new file mode 100644
index 0000000..c0c1d37
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/TrackApi.md
@@ -0,0 +1,324 @@
+
+# openapi_client.apis.tags.track_api.TrackApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_tracks_get**](#api_v1_tracks_get) | **get** /api/v1/tracks |
+[**api_v1_tracks_track_id_get**](#api_v1_tracks_track_id_get) | **get** /api/v1/tracks/{trackId} |
+[**api_v1_tracks_track_id_viewer_count_get**](#api_v1_tracks_track_id_viewer_count_get) | **get** /api/v1/tracks/{trackId}/viewer_count |
+
+# **api_v1_tracks_get**
+
+> [Track] api_v1_tracks_get(event_abbr)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import track_api
+from openapi_client.model.track import Track
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = track_api.TrackApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ query_params = {
+ 'eventAbbr': "eventAbbr_example",
+ }
+ try:
+ api_response = api_instance.api_v1_tracks_get(
+ query_params=query_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling TrackApi->api_v1_tracks_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+query_params | RequestQueryParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### query_params
+#### RequestQueryParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+eventAbbr | EventAbbrSchema | |
+
+
+# EventAbbrSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_tracks_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_tracks_get.ApiResponseFor400) | Invalid [eventAbbr] supplied
+404 | [ApiResponseFor404](#api_v1_tracks_get.ApiResponseFor404) | Event not found
+
+#### api_v1_tracks_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[**Track**]({{complexTypePrefix}}Track.md) | [**Track**]({{complexTypePrefix}}Track.md) | [**Track**]({{complexTypePrefix}}Track.md) | |
+
+#### api_v1_tracks_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_tracks_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_tracks_track_id_get**
+
+> Track api_v1_tracks_track_id_get(track_id)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import track_api
+from openapi_client.model.track import Track
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = track_api.TrackApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'trackId': "trackId_example",
+ }
+ try:
+ api_response = api_instance.api_v1_tracks_track_id_get(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling TrackApi->api_v1_tracks_track_id_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+path_params | RequestPathParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+trackId | TrackIdSchema | |
+
+# TrackIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_tracks_track_id_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_tracks_track_id_get.ApiResponseFor400) | Invalid params supplied
+404 | [ApiResponseFor404](#api_v1_tracks_track_id_get.ApiResponseFor404) | Track not found
+
+#### api_v1_tracks_track_id_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**Track**](../../models/Track.md) | |
+
+
+#### api_v1_tracks_track_id_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_tracks_track_id_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_tracks_track_id_viewer_count_get**
+
+> ViewerCount api_v1_tracks_track_id_viewer_count_get(track_id)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import track_api
+from openapi_client.model.viewer_count import ViewerCount
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = track_api.TrackApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'trackId': "trackId_example",
+ }
+ try:
+ api_response = api_instance.api_v1_tracks_track_id_viewer_count_get(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling TrackApi->api_v1_tracks_track_id_viewer_count_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+path_params | RequestPathParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+trackId | TrackIdSchema | |
+
+# TrackIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_tracks_track_id_viewer_count_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_tracks_track_id_viewer_count_get.ApiResponseFor400) | Invalid params supplied
+404 | [ApiResponseFor404](#api_v1_tracks_track_id_viewer_count_get.ApiResponseFor404) | Track not found
+
+#### api_v1_tracks_track_id_viewer_count_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**ViewerCount**](../../models/ViewerCount.md) | |
+
+
+#### api_v1_tracks_track_id_viewer_count_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_tracks_track_id_viewer_count_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/apis/tags/VideoRegistrationApi.md b/dreamkast_api/docs/apis/tags/VideoRegistrationApi.md
new file mode 100644
index 0000000..cb26534
--- /dev/null
+++ b/dreamkast_api/docs/apis/tags/VideoRegistrationApi.md
@@ -0,0 +1,253 @@
+
+# openapi_client.apis.tags.video_registration_api.VideoRegistrationApi
+
+All URIs are relative to *http://localhost:8080*
+
+Method | HTTP request | Description
+------------- | ------------- | -------------
+[**api_v1_talks_talk_id_video_registration_get**](#api_v1_talks_talk_id_video_registration_get) | **get** /api/v1/talks/{talkId}/video_registration |
+[**api_v1_talks_talk_id_video_registration_put**](#api_v1_talks_talk_id_video_registration_put) | **put** /api/v1/talks/{talkId}/video_registration | Put VideoRegistration
+
+# **api_v1_talks_talk_id_video_registration_get**
+
+> VideoRegistration api_v1_talks_talk_id_video_registration_get(talk_id)
+
+
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import video_registration_api
+from openapi_client.model.video_registration import VideoRegistration
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = video_registration_api.VideoRegistrationApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'talkId': "talkId_example",
+ }
+ try:
+ api_response = api_instance.api_v1_talks_talk_id_video_registration_get(
+ path_params=path_params,
+ )
+ pprint(api_response)
+ except openapi_client.ApiException as e:
+ print("Exception when calling VideoRegistrationApi->api_v1_talks_talk_id_video_registration_get: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+path_params | RequestPathParams | |
+accept_content_types | typing.Tuple[str] | default is ('application/json', ) | Tells the server the content type(s) that are accepted by the client
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+talkId | TalkIdSchema | |
+
+# TalkIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_talks_talk_id_video_registration_get.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_talks_talk_id_video_registration_get.ApiResponseFor400) | Invalid params supplied
+401 | [ApiResponseFor401](#api_v1_talks_talk_id_video_registration_get.ApiResponseFor401) | Unauthorized
+404 | [ApiResponseFor404](#api_v1_talks_talk_id_video_registration_get.ApiResponseFor404) | Talk not found
+
+#### api_v1_talks_talk_id_video_registration_get.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | typing.Union[SchemaFor200ResponseBodyApplicationJson, ] | |
+headers | Unset | headers were not defined |
+
+# SchemaFor200ResponseBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**VideoRegistration**](../../models/VideoRegistration.md) | |
+
+
+#### api_v1_talks_talk_id_video_registration_get.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_talks_talk_id_video_registration_get.ApiResponseFor401
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_talks_talk_id_video_registration_get.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
+# **api_v1_talks_talk_id_video_registration_put**
+
+> api_v1_talks_talk_id_video_registration_put(talk_id)
+
+Put VideoRegistration
+
+### Example
+
+```python
+import openapi_client
+from openapi_client.apis.tags import video_registration_api
+from openapi_client.model.video_registration import VideoRegistration
+from pprint import pprint
+# Defining the host is optional and defaults to http://localhost:8080
+# See configuration.py for a list of all supported configuration parameters.
+configuration = openapi_client.Configuration(
+ host = "http://localhost:8080"
+)
+
+# Enter a context with an instance of the API client
+with openapi_client.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = video_registration_api.VideoRegistrationApi(api_client)
+
+ # example passing only required values which don't have defaults set
+ path_params = {
+ 'talkId': "talkId_example",
+ }
+ try:
+ # Put VideoRegistration
+ api_response = api_instance.api_v1_talks_talk_id_video_registration_put(
+ path_params=path_params,
+ )
+ except openapi_client.ApiException as e:
+ print("Exception when calling VideoRegistrationApi->api_v1_talks_talk_id_video_registration_put: %s\n" % e)
+
+ # example passing only optional values
+ path_params = {
+ 'talkId': "talkId_example",
+ }
+ body = VideoRegistration(
+ url="url_example",
+ status="unsubmitted",
+ statistics=dict(),
+ created_at="created_at_example",
+ updated_at="updated_at_example",
+ )
+ try:
+ # Put VideoRegistration
+ api_response = api_instance.api_v1_talks_talk_id_video_registration_put(
+ path_params=path_params,
+ body=body,
+ )
+ except openapi_client.ApiException as e:
+ print("Exception when calling VideoRegistrationApi->api_v1_talks_talk_id_video_registration_put: %s\n" % e)
+```
+### Parameters
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+body | typing.Union[SchemaForRequestBodyApplicationJson, Unset] | optional, default is unset |
+path_params | RequestPathParams | |
+content_type | str | optional, default is 'application/json' | Selects the schema and serialization of the request body
+stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
+timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
+skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
+
+### body
+
+# SchemaForRequestBodyApplicationJson
+Type | Description | Notes
+------------- | ------------- | -------------
+[**VideoRegistration**](../../models/VideoRegistration.md) | |
+
+
+### path_params
+#### RequestPathParams
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+talkId | TalkIdSchema | |
+
+# TalkIdSchema
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+str, | str, | |
+
+### Return Types, Responses
+
+Code | Class | Description
+------------- | ------------- | -------------
+n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
+200 | [ApiResponseFor200](#api_v1_talks_talk_id_video_registration_put.ApiResponseFor200) | OK
+400 | [ApiResponseFor400](#api_v1_talks_talk_id_video_registration_put.ApiResponseFor400) | Invalid params supplied
+401 | [ApiResponseFor401](#api_v1_talks_talk_id_video_registration_put.ApiResponseFor401) | Unauthorized
+404 | [ApiResponseFor404](#api_v1_talks_talk_id_video_registration_put.ApiResponseFor404) | Talk not found
+
+#### api_v1_talks_talk_id_video_registration_put.ApiResponseFor200
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_talks_talk_id_video_registration_put.ApiResponseFor400
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_talks_talk_id_video_registration_put.ApiResponseFor401
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+#### api_v1_talks_talk_id_video_registration_put.ApiResponseFor404
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+response | urllib3.HTTPResponse | Raw response |
+body | Unset | body was not defined |
+headers | Unset | headers were not defined |
+
+### Authorization
+
+No authorization required
+
+[[Back to top]](#__pageTop) [[Back to API list]](../../../README.md#documentation-for-api-endpoints) [[Back to Model list]](../../../README.md#documentation-for-models) [[Back to README]](../../../README.md)
+
diff --git a/dreamkast_api/docs/models/Booth.md b/dreamkast_api/docs/models/Booth.md
new file mode 100644
index 0000000..b923dea
--- /dev/null
+++ b/dreamkast_api/docs/models/Booth.md
@@ -0,0 +1,64 @@
+# openapi_client.model.booth.Booth
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**[pdfUrls](#pdfUrls)** | list, tuple, | tuple, | |
+**sponsorId** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**vimeoUrl** | str, | str, | |
+**miroUrl** | str, | str, | |
+**sponsorName** | str, | str, | |
+**description** | str, | str, | |
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**published** | bool, | BoolClass, | |
+**text** | str, | str, | |
+**abbr** | str, | str, | |
+**[keyImageUrls](#keyImageUrls)** | list, tuple, | tuple, | |
+**logoUrl** | str, | str, | |
+**url** | str, | str, | | [optional]
+
+# pdfUrls
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[items](#items) | dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+# items
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**url** | str, | str, | | [optional]
+**title** | str, | str, | | [optional]
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+# keyImageUrls
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+items | str, | str, | |
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/ChatMessage.md b/dreamkast_api/docs/models/ChatMessage.md
new file mode 100644
index 0000000..c1163f8
--- /dev/null
+++ b/dreamkast_api/docs/models/ChatMessage.md
@@ -0,0 +1,22 @@
+# openapi_client.model.chat_message.ChatMessage
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**messageType** |
+**body** |
+**roomId** |
+
+### Composed Schemas (allOf/anyOf/oneOf/not)
+#### allOf
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[ChatMessageProperties](ChatMessageProperties.md) | [**ChatMessageProperties**](ChatMessageProperties.md) | [**ChatMessageProperties**](ChatMessageProperties.md) | |
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/ChatMessageProperties.md b/dreamkast_api/docs/models/ChatMessageProperties.md
new file mode 100644
index 0000000..e0f09ef
--- /dev/null
+++ b/dreamkast_api/docs/models/ChatMessageProperties.md
@@ -0,0 +1,24 @@
+# openapi_client.model.chat_message_properties.ChatMessageProperties
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**profileId** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**speakerId** | None, decimal.Decimal, int, float, | NoneClass, decimal.Decimal, | | [optional]
+**eventAbbr** | str, | str, | | [optional]
+**roomId** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**roomType** | str, | str, | | [optional]
+**body** | str, | str, | | [optional]
+**createdAt** | str, | str, | | [optional]
+**messageType** | str, | str, | | [optional] must be one of ["chat", "qa", ]
+**replyTo** | None, decimal.Decimal, int, float, | NoneClass, decimal.Decimal, | | [optional]
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/Event.md b/dreamkast_api/docs/models/Event.md
new file mode 100644
index 0000000..5a4709d
--- /dev/null
+++ b/dreamkast_api/docs/models/Event.md
@@ -0,0 +1,51 @@
+# openapi_client.model.event.Event
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**copyright** | str, | str, | |
+**coc** | str, | str, | |
+**privacy_policy** | str, | str, | |
+**about** | str, | str, | |
+**name** | str, | str, | |
+**theme** | str, | str, | |
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**abbr** | str, | str, | |
+**privacy_policy_for_speaker** | str, | str, | |
+**status** | str, | str, | |
+**[conferenceDays](#conferenceDays)** | list, tuple, | tuple, | | [optional]
+
+# conferenceDays
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[items](#items) | dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+# items
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**date** | str, | str, | | [optional]
+**internal** | bool, | BoolClass, | | [optional]
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/Profile.md b/dreamkast_api/docs/models/Profile.md
new file mode 100644
index 0000000..049d76f
--- /dev/null
+++ b/dreamkast_api/docs/models/Profile.md
@@ -0,0 +1,16 @@
+# openapi_client.model.profile.Profile
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**name** | str, | str, | |
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/Sponsor.md b/dreamkast_api/docs/models/Sponsor.md
new file mode 100644
index 0000000..bd7cc0c
--- /dev/null
+++ b/dreamkast_api/docs/models/Sponsor.md
@@ -0,0 +1,47 @@
+# openapi_client.model.sponsor.Sponsor
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**logo_url** | str, | str, | |
+**name** | str, | str, | |
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**abbr** | str, | str, | |
+**eventAbbr** | str, | str, | |
+**url** | str, | str, | |
+**[sponsorType](#sponsorType)** | list, tuple, | tuple, | | [optional]
+**[booth](#booth)** | dict, frozendict.frozendict, | frozendict.frozendict, | | [optional]
+
+# sponsorType
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+items | str, | str, | |
+
+# booth
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**opened** | bool, | BoolClass, | | [optional]
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/Talk.md b/dreamkast_api/docs/models/Talk.md
new file mode 100644
index 0000000..ea4b6ec
--- /dev/null
+++ b/dreamkast_api/docs/models/Talk.md
@@ -0,0 +1,65 @@
+# openapi_client.model.talk.Talk
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**trackId** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**videoId** | str, | str, | |
+**abstract** | str, | str, | |
+**talkDifficulty** | str, | str, | |
+**title** | str, | str, | |
+**talkCategory** | str, | str, | |
+**showOnTimetable** | bool, | BoolClass, | |
+**[speakers](#speakers)** | list, tuple, | tuple, | array of speakers name |
+**dayId** | None, decimal.Decimal, int, float, | NoneClass, decimal.Decimal, | |
+**startTime** | str, | str, | |
+**endTime** | str, | str, | |
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**talkDuration** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**conferenceId** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**videoPlatform** | str, | str, | | [optional]
+**onAir** | bool, | BoolClass, | | [optional]
+**documentUrl** | str, | str, | | [optional]
+**conferenceDayId** | None, decimal.Decimal, int, float, | NoneClass, decimal.Decimal, | | [optional]
+**conferenceDayDate** | None, str, date, | NoneClass, str, | | [optional] value must conform to RFC-3339 full-date YYYY-MM-DD
+**startOffset** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**endOffset** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**actualStartTime** | str, | str, | | [optional]
+**actualEndTime** | str, | str, | | [optional]
+**presentationMethod** | None, str, | NoneClass, str, | | [optional]
+
+# speakers
+
+array of speakers name
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+list, tuple, | tuple, | array of speakers name |
+
+### Tuple Items
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[items](#items) | dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+# items
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**name** | str, | str, | | [optional]
+**any_string_name** | dict, frozendict.frozendict, str, date, datetime, int, float, bool, decimal.Decimal, None, list, tuple, bytes, io.FileIO, io.BufferedReader | frozendict.frozendict, str, BoolClass, decimal.Decimal, NoneClass, tuple, bytes, FileIO | any string name can be used but the value must be the correct type | [optional]
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/Track.md b/dreamkast_api/docs/models/Track.md
new file mode 100644
index 0000000..2a02706
--- /dev/null
+++ b/dreamkast_api/docs/models/Track.md
@@ -0,0 +1,26 @@
+# openapi_client.model.track.Track
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**name** | str, | str, | |
+**id** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**videoPlatform** | None, str, | NoneClass, str, | | [optional]
+**videoId** | None, str, | NoneClass, str, | | [optional]
+**channelArn** | None, str, | NoneClass, str, | | [optional]
+**[onAirTalk](#onAirTalk)** | dict, frozendict.frozendict, None, | frozendict.frozendict, NoneClass, | | [optional]
+
+# onAirTalk
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, None, | frozendict.frozendict, NoneClass, | |
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/UpdateChatMessage.md b/dreamkast_api/docs/models/UpdateChatMessage.md
new file mode 100644
index 0000000..ddc8c66
--- /dev/null
+++ b/dreamkast_api/docs/models/UpdateChatMessage.md
@@ -0,0 +1,20 @@
+# openapi_client.model.update_chat_message.UpdateChatMessage
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**body** |
+
+### Composed Schemas (allOf/anyOf/oneOf/not)
+#### allOf
+Class Name | Input Type | Accessed Type | Description | Notes
+------------- | ------------- | ------------- | ------------- | -------------
+[ChatMessageProperties](ChatMessageProperties.md) | [**ChatMessageProperties**](ChatMessageProperties.md) | [**ChatMessageProperties**](ChatMessageProperties.md) | |
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/VideoRegistration.md b/dreamkast_api/docs/models/VideoRegistration.md
new file mode 100644
index 0000000..8ff9863
--- /dev/null
+++ b/dreamkast_api/docs/models/VideoRegistration.md
@@ -0,0 +1,25 @@
+# openapi_client.model.video_registration.VideoRegistration
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**status** | str, | str, | | must be one of ["unsubmitted", "submitted", "confirmed", "invalid_format", ]
+**url** | str, | str, | | [optional]
+**[statistics](#statistics)** | dict, frozendict.frozendict, | frozendict.frozendict, | | [optional]
+**createdAt** | str, | str, | | [optional]
+**updatedAt** | str, | str, | | [optional]
+
+# statistics
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/docs/models/ViewerCount.md b/dreamkast_api/docs/models/ViewerCount.md
new file mode 100644
index 0000000..676e557
--- /dev/null
+++ b/dreamkast_api/docs/models/ViewerCount.md
@@ -0,0 +1,17 @@
+# openapi_client.model.viewer_count.ViewerCount
+
+## Model Type Info
+Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+dict, frozendict.frozendict, | frozendict.frozendict, | |
+
+### Dictionary Keys
+Key | Input Type | Accessed Type | Description | Notes
+------------ | ------------- | ------------- | ------------- | -------------
+**track_id** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**viewer_count** | decimal.Decimal, int, float, | decimal.Decimal, | |
+**conference_id** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+**talk_id** | decimal.Decimal, int, float, | decimal.Decimal, | | [optional]
+
+[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
+
diff --git a/dreamkast_api/git_push.sh b/dreamkast_api/git_push.sh
new file mode 100644
index 0000000..ced3be2
--- /dev/null
+++ b/dreamkast_api/git_push.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+# ref: https://help.github.com/articles/adding-an-existing-project-to-github-using-the-command-line/
+#
+# Usage example: /bin/sh ./git_push.sh wing328 openapi-pestore-perl "minor update" "gitlab.com"
+
+git_user_id=$1
+git_repo_id=$2
+release_note=$3
+git_host=$4
+
+if [ "$git_host" = "" ]; then
+ git_host="github.com"
+ echo "[INFO] No command line input provided. Set \$git_host to $git_host"
+fi
+
+if [ "$git_user_id" = "" ]; then
+ git_user_id="GIT_USER_ID"
+ echo "[INFO] No command line input provided. Set \$git_user_id to $git_user_id"
+fi
+
+if [ "$git_repo_id" = "" ]; then
+ git_repo_id="GIT_REPO_ID"
+ echo "[INFO] No command line input provided. Set \$git_repo_id to $git_repo_id"
+fi
+
+if [ "$release_note" = "" ]; then
+ release_note="Minor update"
+ echo "[INFO] No command line input provided. Set \$release_note to $release_note"
+fi
+
+# Initialize the local directory as a Git repository
+git init
+
+# Adds the files in the local repository and stages them for commit.
+git add .
+
+# Commits the tracked changes and prepares them to be pushed to a remote repository.
+git commit -m "$release_note"
+
+# Sets the new remote
+git_remote=`git remote`
+if [ "$git_remote" = "" ]; then # git remote not defined
+
+ if [ "$GIT_TOKEN" = "" ]; then
+ echo "[INFO] \$GIT_TOKEN (environment variable) is not set. Using the git credential in your environment."
+ git remote add origin https://${git_host}/${git_user_id}/${git_repo_id}.git
+ else
+ git remote add origin https://${git_user_id}:${GIT_TOKEN}@${git_host}/${git_user_id}/${git_repo_id}.git
+ fi
+
+fi
+
+git pull origin master
+
+# Pushes (Forces) the changes in the local repository up to the remote repository
+echo "Git pushing to https://${git_host}/${git_user_id}/${git_repo_id}.git"
+git push origin master 2>&1 | grep -v 'To https'
+
diff --git a/dreamkast_api/openapi_client/__init__.py b/dreamkast_api/openapi_client/__init__.py
new file mode 100644
index 0000000..a0cc061
--- /dev/null
+++ b/dreamkast_api/openapi_client/__init__.py
@@ -0,0 +1,28 @@
+# coding: utf-8
+
+# flake8: noqa
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+__version__ = "1.0.0"
+
+# import ApiClient
+from openapi_client.api_client import ApiClient
+
+# import Configuration
+from openapi_client.configuration import Configuration
+
+# import exceptions
+from openapi_client.exceptions import OpenApiException
+from openapi_client.exceptions import ApiAttributeError
+from openapi_client.exceptions import ApiTypeError
+from openapi_client.exceptions import ApiValueError
+from openapi_client.exceptions import ApiKeyError
+from openapi_client.exceptions import ApiException
diff --git a/dreamkast_api/openapi_client/api_client.py b/dreamkast_api/openapi_client/api_client.py
new file mode 100644
index 0000000..45e8860
--- /dev/null
+++ b/dreamkast_api/openapi_client/api_client.py
@@ -0,0 +1,1489 @@
+# coding: utf-8
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+from decimal import Decimal
+import enum
+import email
+import json
+import os
+import io
+import atexit
+from multiprocessing.pool import ThreadPool
+import re
+import tempfile
+import typing
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+from urllib.parse import urlparse, quote
+from urllib3.fields import RequestField as RequestFieldBase
+
+import frozendict
+
+from openapi_client import rest
+from openapi_client.configuration import Configuration
+from openapi_client.exceptions import ApiTypeError, ApiValueError
+from openapi_client.schemas import (
+ NoneClass,
+ BoolClass,
+ Schema,
+ FileIO,
+ BinarySchema,
+ date,
+ datetime,
+ none_type,
+ Unset,
+ unset,
+)
+
+
+class RequestField(RequestFieldBase):
+ def __eq__(self, other):
+ if not isinstance(other, RequestField):
+ return False
+ return self.__dict__ == other.__dict__
+
+
+class JSONEncoder(json.JSONEncoder):
+ def default(self, obj):
+ if isinstance(obj, str):
+ return str(obj)
+ elif isinstance(obj, float):
+ return float(obj)
+ elif isinstance(obj, int):
+ return int(obj)
+ elif isinstance(obj, Decimal):
+ if obj.as_tuple().exponent >= 0:
+ return int(obj)
+ return float(obj)
+ elif isinstance(obj, NoneClass):
+ return None
+ elif isinstance(obj, BoolClass):
+ return bool(obj)
+ elif isinstance(obj, (dict, frozendict.frozendict)):
+ return {key: self.default(val) for key, val in obj.items()}
+ elif isinstance(obj, (list, tuple)):
+ return [self.default(item) for item in obj]
+ raise ApiValueError('Unable to prepare type {} for serialization'.format(obj.__class__.__name__))
+
+
+class ParameterInType(enum.Enum):
+ QUERY = 'query'
+ HEADER = 'header'
+ PATH = 'path'
+ COOKIE = 'cookie'
+
+
+class ParameterStyle(enum.Enum):
+ MATRIX = 'matrix'
+ LABEL = 'label'
+ FORM = 'form'
+ SIMPLE = 'simple'
+ SPACE_DELIMITED = 'spaceDelimited'
+ PIPE_DELIMITED = 'pipeDelimited'
+ DEEP_OBJECT = 'deepObject'
+
+
+class PrefixSeparatorIterator:
+ # A class to store prefixes and separators for rfc6570 expansions
+
+ def __init__(self, prefix: str, separator: str):
+ self.prefix = prefix
+ self.separator = separator
+ self.first = True
+ if separator in {'.', '|', '%20'}:
+ item_separator = separator
+ else:
+ item_separator = ','
+ self.item_separator = item_separator
+
+ def __iter__(self):
+ return self
+
+ def __next__(self):
+ if self.first:
+ self.first = False
+ return self.prefix
+ return self.separator
+
+
+class ParameterSerializerBase:
+ @classmethod
+ def _get_default_explode(cls, style: ParameterStyle) -> bool:
+ return False
+
+ @staticmethod
+ def __ref6570_item_value(in_data: typing.Any, percent_encode: bool):
+ """
+ Get representation if str/float/int/None/items in list/ values in dict
+ None is returned if an item is undefined, use cases are value=
+ - None
+ - []
+ - {}
+ - [None, None None]
+ - {'a': None, 'b': None}
+ """
+ if type(in_data) in {str, float, int}:
+ if percent_encode:
+ return quote(str(in_data))
+ return str(in_data)
+ elif isinstance(in_data, none_type):
+ # ignored by the expansion process https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.1
+ return None
+ elif isinstance(in_data, list) and not in_data:
+ # ignored by the expansion process https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.1
+ return None
+ elif isinstance(in_data, dict) and not in_data:
+ # ignored by the expansion process https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.1
+ return None
+ raise ApiValueError('Unable to generate a ref6570 item representation of {}'.format(in_data))
+
+ @staticmethod
+ def _to_dict(name: str, value: str):
+ return {name: value}
+
+ @classmethod
+ def __ref6570_str_float_int_expansion(
+ cls,
+ variable_name: str,
+ in_data: typing.Any,
+ explode: bool,
+ percent_encode: bool,
+ prefix_separator_iterator: PrefixSeparatorIterator,
+ var_name_piece: str,
+ named_parameter_expansion: bool
+ ) -> str:
+ item_value = cls.__ref6570_item_value(in_data, percent_encode)
+ if item_value is None or (item_value == '' and prefix_separator_iterator.separator == ';'):
+ return next(prefix_separator_iterator) + var_name_piece
+ value_pair_equals = '=' if named_parameter_expansion else ''
+ return next(prefix_separator_iterator) + var_name_piece + value_pair_equals + item_value
+
+ @classmethod
+ def __ref6570_list_expansion(
+ cls,
+ variable_name: str,
+ in_data: typing.Any,
+ explode: bool,
+ percent_encode: bool,
+ prefix_separator_iterator: PrefixSeparatorIterator,
+ var_name_piece: str,
+ named_parameter_expansion: bool
+ ) -> str:
+ item_values = [cls.__ref6570_item_value(v, percent_encode) for v in in_data]
+ item_values = [v for v in item_values if v is not None]
+ if not item_values:
+ # ignored by the expansion process https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.1
+ return ""
+ value_pair_equals = '=' if named_parameter_expansion else ''
+ if not explode:
+ return (
+ next(prefix_separator_iterator) +
+ var_name_piece +
+ value_pair_equals +
+ prefix_separator_iterator.item_separator.join(item_values)
+ )
+ # exploded
+ return next(prefix_separator_iterator) + next(prefix_separator_iterator).join(
+ [var_name_piece + value_pair_equals + val for val in item_values]
+ )
+
+ @classmethod
+ def __ref6570_dict_expansion(
+ cls,
+ variable_name: str,
+ in_data: typing.Any,
+ explode: bool,
+ percent_encode: bool,
+ prefix_separator_iterator: PrefixSeparatorIterator,
+ var_name_piece: str,
+ named_parameter_expansion: bool
+ ) -> str:
+ in_data_transformed = {key: cls.__ref6570_item_value(val, percent_encode) for key, val in in_data.items()}
+ in_data_transformed = {key: val for key, val in in_data_transformed.items() if val is not None}
+ if not in_data_transformed:
+ # ignored by the expansion process https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.1
+ return ""
+ value_pair_equals = '=' if named_parameter_expansion else ''
+ if not explode:
+ return (
+ next(prefix_separator_iterator) +
+ var_name_piece + value_pair_equals +
+ prefix_separator_iterator.item_separator.join(
+ prefix_separator_iterator.item_separator.join(
+ item_pair
+ ) for item_pair in in_data_transformed.items()
+ )
+ )
+ # exploded
+ return next(prefix_separator_iterator) + next(prefix_separator_iterator).join(
+ [key + '=' + val for key, val in in_data_transformed.items()]
+ )
+
+ @classmethod
+ def _ref6570_expansion(
+ cls,
+ variable_name: str,
+ in_data: typing.Any,
+ explode: bool,
+ percent_encode: bool,
+ prefix_separator_iterator: PrefixSeparatorIterator
+ ) -> str:
+ """
+ Separator is for separate variables like dict with explode true, not for array item separation
+ """
+ named_parameter_expansion = prefix_separator_iterator.separator in {'&', ';'}
+ var_name_piece = variable_name if named_parameter_expansion else ''
+ if type(in_data) in {str, float, int}:
+ return cls.__ref6570_str_float_int_expansion(
+ variable_name,
+ in_data,
+ explode,
+ percent_encode,
+ prefix_separator_iterator,
+ var_name_piece,
+ named_parameter_expansion
+ )
+ elif isinstance(in_data, none_type):
+ # ignored by the expansion process https://datatracker.ietf.org/doc/html/rfc6570#section-3.2.1
+ return ""
+ elif isinstance(in_data, list):
+ return cls.__ref6570_list_expansion(
+ variable_name,
+ in_data,
+ explode,
+ percent_encode,
+ prefix_separator_iterator,
+ var_name_piece,
+ named_parameter_expansion
+ )
+ elif isinstance(in_data, dict):
+ return cls.__ref6570_dict_expansion(
+ variable_name,
+ in_data,
+ explode,
+ percent_encode,
+ prefix_separator_iterator,
+ var_name_piece,
+ named_parameter_expansion
+ )
+ # bool, bytes, etc
+ raise ApiValueError('Unable to generate a ref6570 representation of {}'.format(in_data))
+
+
+class StyleFormSerializer(ParameterSerializerBase):
+ @classmethod
+ def _get_default_explode(cls, style: ParameterStyle) -> bool:
+ if style is ParameterStyle.FORM:
+ return True
+ return super()._get_default_explode(style)
+
+ def _serialize_form(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list],
+ name: str,
+ explode: bool,
+ percent_encode: bool,
+ prefix_separator_iterator: typing.Optional[PrefixSeparatorIterator] = None
+ ) -> str:
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = PrefixSeparatorIterator('?', '&')
+ return self._ref6570_expansion(
+ variable_name=name,
+ in_data=in_data,
+ explode=explode,
+ percent_encode=percent_encode,
+ prefix_separator_iterator=prefix_separator_iterator
+ )
+
+
+class StyleSimpleSerializer(ParameterSerializerBase):
+
+ def _serialize_simple(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list],
+ name: str,
+ explode: bool,
+ percent_encode: bool
+ ) -> str:
+ prefix_separator_iterator = PrefixSeparatorIterator('', ',')
+ return self._ref6570_expansion(
+ variable_name=name,
+ in_data=in_data,
+ explode=explode,
+ percent_encode=percent_encode,
+ prefix_separator_iterator=prefix_separator_iterator
+ )
+
+
+@dataclass
+class ParameterBase:
+ name: str
+ in_type: ParameterInType
+ required: bool
+ style: typing.Optional[ParameterStyle]
+ explode: typing.Optional[bool]
+ allow_reserved: typing.Optional[bool]
+ schema: typing.Optional[typing.Type[Schema]]
+ content: typing.Optional[typing.Dict[str, typing.Type[Schema]]]
+
+ __style_to_in_type = {
+ ParameterStyle.MATRIX: {ParameterInType.PATH},
+ ParameterStyle.LABEL: {ParameterInType.PATH},
+ ParameterStyle.FORM: {ParameterInType.QUERY, ParameterInType.COOKIE},
+ ParameterStyle.SIMPLE: {ParameterInType.PATH, ParameterInType.HEADER},
+ ParameterStyle.SPACE_DELIMITED: {ParameterInType.QUERY},
+ ParameterStyle.PIPE_DELIMITED: {ParameterInType.QUERY},
+ ParameterStyle.DEEP_OBJECT: {ParameterInType.QUERY},
+ }
+ __in_type_to_default_style = {
+ ParameterInType.QUERY: ParameterStyle.FORM,
+ ParameterInType.PATH: ParameterStyle.SIMPLE,
+ ParameterInType.HEADER: ParameterStyle.SIMPLE,
+ ParameterInType.COOKIE: ParameterStyle.FORM,
+ }
+ __disallowed_header_names = {'Accept', 'Content-Type', 'Authorization'}
+ _json_encoder = JSONEncoder()
+ _json_content_type = 'application/json'
+
+ @classmethod
+ def __verify_style_to_in_type(cls, style: typing.Optional[ParameterStyle], in_type: ParameterInType):
+ if style is None:
+ return
+ in_type_set = cls.__style_to_in_type[style]
+ if in_type not in in_type_set:
+ raise ValueError(
+ 'Invalid style and in_type combination. For style={} only in_type={} are allowed'.format(
+ style, in_type_set
+ )
+ )
+
+ def __init__(
+ self,
+ name: str,
+ in_type: ParameterInType,
+ required: bool = False,
+ style: typing.Optional[ParameterStyle] = None,
+ explode: bool = False,
+ allow_reserved: typing.Optional[bool] = None,
+ schema: typing.Optional[typing.Type[Schema]] = None,
+ content: typing.Optional[typing.Dict[str, typing.Type[Schema]]] = None
+ ):
+ if schema is None and content is None:
+ raise ValueError('Value missing; Pass in either schema or content')
+ if schema and content:
+ raise ValueError('Too many values provided. Both schema and content were provided. Only one may be input')
+ if name in self.__disallowed_header_names and in_type is ParameterInType.HEADER:
+ raise ValueError('Invalid name, name may not be one of {}'.format(self.__disallowed_header_names))
+ self.__verify_style_to_in_type(style, in_type)
+ if content is None and style is None:
+ style = self.__in_type_to_default_style[in_type]
+ if content is not None and in_type in self.__in_type_to_default_style and len(content) != 1:
+ raise ValueError('Invalid content length, content length must equal 1')
+ self.in_type = in_type
+ self.name = name
+ self.required = required
+ self.style = style
+ self.explode = explode
+ self.allow_reserved = allow_reserved
+ self.schema = schema
+ self.content = content
+
+ def _serialize_json(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list]
+ ) -> str:
+ return json.dumps(in_data)
+
+
+class PathParameter(ParameterBase, StyleSimpleSerializer):
+
+ def __init__(
+ self,
+ name: str,
+ required: bool = False,
+ style: typing.Optional[ParameterStyle] = None,
+ explode: bool = False,
+ allow_reserved: typing.Optional[bool] = None,
+ schema: typing.Optional[typing.Type[Schema]] = None,
+ content: typing.Optional[typing.Dict[str, typing.Type[Schema]]] = None
+ ):
+ super().__init__(
+ name,
+ in_type=ParameterInType.PATH,
+ required=required,
+ style=style,
+ explode=explode,
+ allow_reserved=allow_reserved,
+ schema=schema,
+ content=content
+ )
+
+ def __serialize_label(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list]
+ ) -> typing.Dict[str, str]:
+ prefix_separator_iterator = PrefixSeparatorIterator('.', '.')
+ value = self._ref6570_expansion(
+ variable_name=self.name,
+ in_data=in_data,
+ explode=self.explode,
+ percent_encode=True,
+ prefix_separator_iterator=prefix_separator_iterator
+ )
+ return self._to_dict(self.name, value)
+
+ def __serialize_matrix(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list]
+ ) -> typing.Dict[str, str]:
+ prefix_separator_iterator = PrefixSeparatorIterator(';', ';')
+ value = self._ref6570_expansion(
+ variable_name=self.name,
+ in_data=in_data,
+ explode=self.explode,
+ percent_encode=True,
+ prefix_separator_iterator=prefix_separator_iterator
+ )
+ return self._to_dict(self.name, value)
+
+ def __serialize_simple(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list],
+ ) -> typing.Dict[str, str]:
+ value = self._serialize_simple(
+ in_data=in_data,
+ name=self.name,
+ explode=self.explode,
+ percent_encode=True
+ )
+ return self._to_dict(self.name, value)
+
+ def serialize(
+ self,
+ in_data: typing.Union[
+ Schema, Decimal, int, float, str, date, datetime, None, bool, list, tuple, dict, frozendict.frozendict]
+ ) -> typing.Dict[str, str]:
+ if self.schema:
+ cast_in_data = self.schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ """
+ simple -> path
+ path:
+ returns path_params: dict
+ label -> path
+ returns path_params
+ matrix -> path
+ returns path_params
+ """
+ if self.style:
+ if self.style is ParameterStyle.SIMPLE:
+ return self.__serialize_simple(cast_in_data)
+ elif self.style is ParameterStyle.LABEL:
+ return self.__serialize_label(cast_in_data)
+ elif self.style is ParameterStyle.MATRIX:
+ return self.__serialize_matrix(cast_in_data)
+ # self.content will be length one
+ for content_type, schema in self.content.items():
+ cast_in_data = schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ if content_type == self._json_content_type:
+ value = self._serialize_json(cast_in_data)
+ return self._to_dict(self.name, value)
+ raise NotImplementedError('Serialization of {} has not yet been implemented'.format(content_type))
+
+
+class QueryParameter(ParameterBase, StyleFormSerializer):
+
+ def __init__(
+ self,
+ name: str,
+ required: bool = False,
+ style: typing.Optional[ParameterStyle] = None,
+ explode: typing.Optional[bool] = None,
+ allow_reserved: typing.Optional[bool] = None,
+ schema: typing.Optional[typing.Type[Schema]] = None,
+ content: typing.Optional[typing.Dict[str, typing.Type[Schema]]] = None
+ ):
+ used_style = ParameterStyle.FORM if style is None and content is None and schema else style
+ used_explode = self._get_default_explode(used_style) if explode is None else explode
+
+ super().__init__(
+ name,
+ in_type=ParameterInType.QUERY,
+ required=required,
+ style=used_style,
+ explode=used_explode,
+ allow_reserved=allow_reserved,
+ schema=schema,
+ content=content
+ )
+
+ def __serialize_space_delimited(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list],
+ prefix_separator_iterator: typing.Optional[PrefixSeparatorIterator]
+ ) -> typing.Dict[str, str]:
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = self.get_prefix_separator_iterator()
+ value = self._ref6570_expansion(
+ variable_name=self.name,
+ in_data=in_data,
+ explode=self.explode,
+ percent_encode=True,
+ prefix_separator_iterator=prefix_separator_iterator
+ )
+ return self._to_dict(self.name, value)
+
+ def __serialize_pipe_delimited(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list],
+ prefix_separator_iterator: typing.Optional[PrefixSeparatorIterator]
+ ) -> typing.Dict[str, str]:
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = self.get_prefix_separator_iterator()
+ value = self._ref6570_expansion(
+ variable_name=self.name,
+ in_data=in_data,
+ explode=self.explode,
+ percent_encode=True,
+ prefix_separator_iterator=prefix_separator_iterator
+ )
+ return self._to_dict(self.name, value)
+
+ def __serialize_form(
+ self,
+ in_data: typing.Union[None, int, float, str, bool, dict, list],
+ prefix_separator_iterator: typing.Optional[PrefixSeparatorIterator]
+ ) -> typing.Dict[str, str]:
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = self.get_prefix_separator_iterator()
+ value = self._serialize_form(
+ in_data,
+ name=self.name,
+ explode=self.explode,
+ percent_encode=True,
+ prefix_separator_iterator=prefix_separator_iterator
+ )
+ return self._to_dict(self.name, value)
+
+ def get_prefix_separator_iterator(self) -> typing.Optional[PrefixSeparatorIterator]:
+ if not self.schema:
+ return None
+ if self.style is ParameterStyle.FORM:
+ return PrefixSeparatorIterator('?', '&')
+ elif self.style is ParameterStyle.SPACE_DELIMITED:
+ return PrefixSeparatorIterator('', '%20')
+ elif self.style is ParameterStyle.PIPE_DELIMITED:
+ return PrefixSeparatorIterator('', '|')
+
+ def serialize(
+ self,
+ in_data: typing.Union[
+ Schema, Decimal, int, float, str, date, datetime, None, bool, list, tuple, dict, frozendict.frozendict],
+ prefix_separator_iterator: typing.Optional[PrefixSeparatorIterator] = None
+ ) -> typing.Dict[str, str]:
+ if self.schema:
+ cast_in_data = self.schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ """
+ form -> query
+ query:
+ - GET/HEAD/DELETE: could use fields
+ - PUT/POST: must use urlencode to send parameters
+ returns fields: tuple
+ spaceDelimited -> query
+ returns fields
+ pipeDelimited -> query
+ returns fields
+ deepObject -> query, https://github.com/OAI/OpenAPI-Specification/issues/1706
+ returns fields
+ """
+ if self.style:
+ # TODO update query ones to omit setting values when [] {} or None is input
+ if self.style is ParameterStyle.FORM:
+ return self.__serialize_form(cast_in_data, prefix_separator_iterator)
+ elif self.style is ParameterStyle.SPACE_DELIMITED:
+ return self.__serialize_space_delimited(cast_in_data, prefix_separator_iterator)
+ elif self.style is ParameterStyle.PIPE_DELIMITED:
+ return self.__serialize_pipe_delimited(cast_in_data, prefix_separator_iterator)
+ # self.content will be length one
+ for content_type, schema in self.content.items():
+ cast_in_data = schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ if content_type == self._json_content_type:
+ value = self._serialize_json(cast_in_data)
+ return self._to_dict(self.name, value)
+ raise NotImplementedError('Serialization of {} has not yet been implemented'.format(content_type))
+
+
+class CookieParameter(ParameterBase, StyleFormSerializer):
+
+ def __init__(
+ self,
+ name: str,
+ required: bool = False,
+ style: typing.Optional[ParameterStyle] = None,
+ explode: typing.Optional[bool] = None,
+ allow_reserved: typing.Optional[bool] = None,
+ schema: typing.Optional[typing.Type[Schema]] = None,
+ content: typing.Optional[typing.Dict[str, typing.Type[Schema]]] = None
+ ):
+ used_style = ParameterStyle.FORM if style is None and content is None and schema else style
+ used_explode = self._get_default_explode(used_style) if explode is None else explode
+
+ super().__init__(
+ name,
+ in_type=ParameterInType.COOKIE,
+ required=required,
+ style=used_style,
+ explode=used_explode,
+ allow_reserved=allow_reserved,
+ schema=schema,
+ content=content
+ )
+
+ def serialize(
+ self,
+ in_data: typing.Union[
+ Schema, Decimal, int, float, str, date, datetime, None, bool, list, tuple, dict, frozendict.frozendict]
+ ) -> typing.Dict[str, str]:
+ if self.schema:
+ cast_in_data = self.schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ """
+ form -> cookie
+ returns fields: tuple
+ """
+ if self.style:
+ """
+ TODO add escaping of comma, space, equals
+ or turn encoding on
+ """
+ value = self._serialize_form(
+ cast_in_data,
+ explode=self.explode,
+ name=self.name,
+ percent_encode=False,
+ prefix_separator_iterator=PrefixSeparatorIterator('', '&')
+ )
+ return self._to_dict(self.name, value)
+ # self.content will be length one
+ for content_type, schema in self.content.items():
+ cast_in_data = schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ if content_type == self._json_content_type:
+ value = self._serialize_json(cast_in_data)
+ return self._to_dict(self.name, value)
+ raise NotImplementedError('Serialization of {} has not yet been implemented'.format(content_type))
+
+
+class HeaderParameter(ParameterBase, StyleSimpleSerializer):
+ def __init__(
+ self,
+ name: str,
+ required: bool = False,
+ style: typing.Optional[ParameterStyle] = None,
+ explode: bool = False,
+ allow_reserved: typing.Optional[bool] = None,
+ schema: typing.Optional[typing.Type[Schema]] = None,
+ content: typing.Optional[typing.Dict[str, typing.Type[Schema]]] = None
+ ):
+ super().__init__(
+ name,
+ in_type=ParameterInType.HEADER,
+ required=required,
+ style=style,
+ explode=explode,
+ allow_reserved=allow_reserved,
+ schema=schema,
+ content=content
+ )
+
+ @staticmethod
+ def __to_headers(in_data: typing.Tuple[typing.Tuple[str, str], ...]) -> HTTPHeaderDict:
+ data = tuple(t for t in in_data if t)
+ headers = HTTPHeaderDict()
+ if not data:
+ return headers
+ headers.extend(data)
+ return headers
+
+ def serialize(
+ self,
+ in_data: typing.Union[
+ Schema, Decimal, int, float, str, date, datetime, None, bool, list, tuple, dict, frozendict.frozendict]
+ ) -> HTTPHeaderDict:
+ if self.schema:
+ cast_in_data = self.schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ """
+ simple -> header
+ headers: PoolManager needs a mapping, tuple is close
+ returns headers: dict
+ """
+ if self.style:
+ value = self._serialize_simple(cast_in_data, self.name, self.explode, False)
+ return self.__to_headers(((self.name, value),))
+ # self.content will be length one
+ for content_type, schema in self.content.items():
+ cast_in_data = schema(in_data)
+ cast_in_data = self._json_encoder.default(cast_in_data)
+ if content_type == self._json_content_type:
+ value = self._serialize_json(cast_in_data)
+ return self.__to_headers(((self.name, value),))
+ raise NotImplementedError('Serialization of {} has not yet been implemented'.format(content_type))
+
+
+class Encoding:
+ def __init__(
+ self,
+ content_type: str,
+ headers: typing.Optional[typing.Dict[str, HeaderParameter]] = None,
+ style: typing.Optional[ParameterStyle] = None,
+ explode: bool = False,
+ allow_reserved: bool = False,
+ ):
+ self.content_type = content_type
+ self.headers = headers
+ self.style = style
+ self.explode = explode
+ self.allow_reserved = allow_reserved
+
+
+@dataclass
+class MediaType:
+ """
+ Used to store request and response body schema information
+ encoding:
+ A map between a property name and its encoding information.
+ The key, being the property name, MUST exist in the schema as a property.
+ The encoding object SHALL only apply to requestBody objects when the media type is
+ multipart or application/x-www-form-urlencoded.
+ """
+ schema: typing.Optional[typing.Type[Schema]] = None
+ encoding: typing.Optional[typing.Dict[str, Encoding]] = None
+
+
+@dataclass
+class ApiResponse:
+ response: urllib3.HTTPResponse
+ body: typing.Union[Unset, Schema]
+ headers: typing.Union[Unset, typing.List[HeaderParameter]]
+
+ def __init__(
+ self,
+ response: urllib3.HTTPResponse,
+ body: typing.Union[Unset, typing.Type[Schema]],
+ headers: typing.Union[Unset, typing.List[HeaderParameter]]
+ ):
+ """
+ pycharm needs this to prevent 'Unexpected argument' warnings
+ """
+ self.response = response
+ self.body = body
+ self.headers = headers
+
+
+@dataclass
+class ApiResponseWithoutDeserialization(ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[Unset, typing.Type[Schema]] = unset
+ headers: typing.Union[Unset, typing.List[HeaderParameter]] = unset
+
+
+class JSONDetector:
+ """
+ Works for:
+ application/json
+ application/json; charset=UTF-8
+ application/json-patch+json
+ application/geo+json
+ """
+ __json_content_type_pattern = re.compile("application/[^+]*[+]?(json);?.*")
+
+ @classmethod
+ def _content_type_is_json(cls, content_type: str) -> bool:
+ if cls.__json_content_type_pattern.match(content_type):
+ return True
+ return False
+
+
+class OpenApiResponse(JSONDetector):
+ __filename_content_disposition_pattern = re.compile('filename="(.+?)"')
+
+ def __init__(
+ self,
+ response_cls: typing.Type[ApiResponse] = ApiResponse,
+ content: typing.Optional[typing.Dict[str, MediaType]] = None,
+ headers: typing.Optional[typing.List[HeaderParameter]] = None,
+ ):
+ self.headers = headers
+ if content is not None and len(content) == 0:
+ raise ValueError('Invalid value for content, the content dict must have >= 1 entry')
+ self.content = content
+ self.response_cls = response_cls
+
+ @staticmethod
+ def __deserialize_json(response: urllib3.HTTPResponse) -> typing.Any:
+ # python must be >= 3.9 so we can pass in bytes into json.loads
+ return json.loads(response.data)
+
+ @staticmethod
+ def __file_name_from_response_url(response_url: typing.Optional[str]) -> typing.Optional[str]:
+ if response_url is None:
+ return None
+ url_path = urlparse(response_url).path
+ if url_path:
+ path_basename = os.path.basename(url_path)
+ if path_basename:
+ _filename, ext = os.path.splitext(path_basename)
+ if ext:
+ return path_basename
+ return None
+
+ @classmethod
+ def __file_name_from_content_disposition(cls, content_disposition: typing.Optional[str]) -> typing.Optional[str]:
+ if content_disposition is None:
+ return None
+ match = cls.__filename_content_disposition_pattern.search(content_disposition)
+ if not match:
+ return None
+ return match.group(1)
+
+ def __deserialize_application_octet_stream(
+ self, response: urllib3.HTTPResponse
+ ) -> typing.Union[bytes, io.BufferedReader]:
+ """
+ urllib3 use cases:
+ 1. when preload_content=True (stream=False) then supports_chunked_reads is False and bytes are returned
+ 2. when preload_content=False (stream=True) then supports_chunked_reads is True and
+ a file will be written and returned
+ """
+ if response.supports_chunked_reads():
+ file_name = (
+ self.__file_name_from_content_disposition(response.headers.get('content-disposition'))
+ or self.__file_name_from_response_url(response.geturl())
+ )
+
+ if file_name is None:
+ _fd, path = tempfile.mkstemp()
+ else:
+ path = os.path.join(tempfile.gettempdir(), file_name)
+
+ with open(path, 'wb') as new_file:
+ chunk_size = 1024
+ while True:
+ data = response.read(chunk_size)
+ if not data:
+ break
+ new_file.write(data)
+ # release_conn is needed for streaming connections only
+ response.release_conn()
+ new_file = open(path, 'rb')
+ return new_file
+ else:
+ return response.data
+
+ @staticmethod
+ def __deserialize_multipart_form_data(
+ response: urllib3.HTTPResponse
+ ) -> typing.Dict[str, typing.Any]:
+ msg = email.message_from_bytes(response.data)
+ return {
+ part.get_param("name", header="Content-Disposition"): part.get_payload(
+ decode=True
+ ).decode(part.get_content_charset())
+ if part.get_content_charset()
+ else part.get_payload()
+ for part in msg.get_payload()
+ }
+
+ def deserialize(self, response: urllib3.HTTPResponse, configuration: Configuration) -> ApiResponse:
+ content_type = response.getheader('content-type')
+ deserialized_body = unset
+ streamed = response.supports_chunked_reads()
+
+ deserialized_headers = unset
+ if self.headers is not None:
+ # TODO add header deserialiation here
+ pass
+
+ if self.content is not None:
+ if content_type not in self.content:
+ raise ApiValueError(
+ f"Invalid content_type returned. Content_type='{content_type}' was returned "
+ f"when only {str(set(self.content))} are defined for status_code={str(response.status)}"
+ )
+ body_schema = self.content[content_type].schema
+ if body_schema is None:
+ # some specs do not define response content media type schemas
+ return self.response_cls(
+ response=response,
+ headers=deserialized_headers,
+ body=unset
+ )
+
+ if self._content_type_is_json(content_type):
+ body_data = self.__deserialize_json(response)
+ elif content_type == 'application/octet-stream':
+ body_data = self.__deserialize_application_octet_stream(response)
+ elif content_type.startswith('multipart/form-data'):
+ body_data = self.__deserialize_multipart_form_data(response)
+ content_type = 'multipart/form-data'
+ else:
+ raise NotImplementedError('Deserialization of {} has not yet been implemented'.format(content_type))
+ deserialized_body = body_schema.from_openapi_data_oapg(
+ body_data, _configuration=configuration)
+ elif streamed:
+ response.release_conn()
+
+ return self.response_cls(
+ response=response,
+ headers=deserialized_headers,
+ body=deserialized_body
+ )
+
+
+class ApiClient:
+ """Generic API client for OpenAPI client library builds.
+
+ OpenAPI generic API client. This client handles the client-
+ server communication, and is invariant across implementations. Specifics of
+ the methods and models for each application are generated from the OpenAPI
+ templates.
+
+ NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+ Do not edit the class manually.
+
+ :param configuration: .Configuration object for this client
+ :param header_name: a header to pass when making calls to the API.
+ :param header_value: a header value to pass when making calls to
+ the API.
+ :param cookie: a cookie to include in the header when making calls
+ to the API
+ :param pool_threads: The number of threads to use for async requests
+ to the API. More threads means more concurrent API requests.
+ """
+
+ _pool = None
+
+ def __init__(
+ self,
+ configuration: typing.Optional[Configuration] = None,
+ header_name: typing.Optional[str] = None,
+ header_value: typing.Optional[str] = None,
+ cookie: typing.Optional[str] = None,
+ pool_threads: int = 1
+ ):
+ if configuration is None:
+ configuration = Configuration()
+ self.configuration = configuration
+ self.pool_threads = pool_threads
+
+ self.rest_client = rest.RESTClientObject(configuration)
+ self.default_headers = {}
+ if header_name is not None:
+ self.default_headers[header_name] = header_value
+ self.cookie = cookie
+ # Set default User-Agent.
+ self.user_agent = 'OpenAPI-Generator/1.0.0/python'
+
+ def __enter__(self):
+ return self
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ self.close()
+
+ def close(self):
+ if self._pool:
+ self._pool.close()
+ self._pool.join()
+ self._pool = None
+ if hasattr(atexit, 'unregister'):
+ atexit.unregister(self.close)
+
+ @property
+ def pool(self):
+ """Create thread pool on first request
+ avoids instantiating unused threadpool for blocking clients.
+ """
+ if self._pool is None:
+ atexit.register(self.close)
+ self._pool = ThreadPool(self.pool_threads)
+ return self._pool
+
+ @property
+ def user_agent(self):
+ """User agent for this API client"""
+ return self.default_headers['User-Agent']
+
+ @user_agent.setter
+ def user_agent(self, value):
+ self.default_headers['User-Agent'] = value
+
+ def set_default_header(self, header_name, header_value):
+ self.default_headers[header_name] = header_value
+
+ def __call_api(
+ self,
+ resource_path: str,
+ method: str,
+ headers: typing.Optional[HTTPHeaderDict] = None,
+ body: typing.Optional[typing.Union[str, bytes]] = None,
+ fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
+ auth_settings: typing.Optional[typing.List[str]] = None,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ host: typing.Optional[str] = None,
+ ) -> urllib3.HTTPResponse:
+
+ # header parameters
+ headers = headers or {}
+ headers.update(self.default_headers)
+ if self.cookie:
+ headers['Cookie'] = self.cookie
+
+ # auth setting
+ self.update_params_for_auth(headers,
+ auth_settings, resource_path, method, body)
+
+ # request url
+ if host is None:
+ url = self.configuration.host + resource_path
+ else:
+ # use server/host defined in path or operation instead
+ url = host + resource_path
+
+ # perform request and return response
+ response = self.request(
+ method,
+ url,
+ headers=headers,
+ fields=fields,
+ body=body,
+ stream=stream,
+ timeout=timeout,
+ )
+ return response
+
+ def call_api(
+ self,
+ resource_path: str,
+ method: str,
+ headers: typing.Optional[HTTPHeaderDict] = None,
+ body: typing.Optional[typing.Union[str, bytes]] = None,
+ fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
+ auth_settings: typing.Optional[typing.List[str]] = None,
+ async_req: typing.Optional[bool] = None,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ host: typing.Optional[str] = None,
+ ) -> urllib3.HTTPResponse:
+ """Makes the HTTP request (synchronous) and returns deserialized data.
+
+ To make an async_req request, set the async_req parameter.
+
+ :param resource_path: Path to method endpoint.
+ :param method: Method to call.
+ :param headers: Header parameters to be
+ placed in the request header.
+ :param body: Request body.
+ :param fields: Request post form parameters,
+ for `application/x-www-form-urlencoded`, `multipart/form-data`.
+ :param auth_settings: Auth Settings names for the request.
+ :param async_req: execute request asynchronously
+ :type async_req: bool, optional TODO remove, unused
+ :param stream: if True, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Also when True, if the openapi spec describes a file download,
+ the data will be written to a local filesystme file and the BinarySchema
+ instance will also inherit from FileSchema and FileIO
+ Default is False.
+ :type stream: bool, optional
+ :param timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :param host: api endpoint host
+ :return:
+ If async_req parameter is True,
+ the request will be called asynchronously.
+ The method will return the request thread.
+ If parameter async_req is False or missing,
+ then the method will return the response directly.
+ """
+
+ if not async_req:
+ return self.__call_api(
+ resource_path,
+ method,
+ headers,
+ body,
+ fields,
+ auth_settings,
+ stream,
+ timeout,
+ host,
+ )
+
+ return self.pool.apply_async(
+ self.__call_api,
+ (
+ resource_path,
+ method,
+ headers,
+ body,
+ json,
+ fields,
+ auth_settings,
+ stream,
+ timeout,
+ host,
+ )
+ )
+
+ def request(
+ self,
+ method: str,
+ url: str,
+ headers: typing.Optional[HTTPHeaderDict] = None,
+ fields: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
+ body: typing.Optional[typing.Union[str, bytes]] = None,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ ) -> urllib3.HTTPResponse:
+ """Makes the HTTP request using RESTClient."""
+ if method == "GET":
+ return self.rest_client.GET(url,
+ stream=stream,
+ timeout=timeout,
+ headers=headers)
+ elif method == "HEAD":
+ return self.rest_client.HEAD(url,
+ stream=stream,
+ timeout=timeout,
+ headers=headers)
+ elif method == "OPTIONS":
+ return self.rest_client.OPTIONS(url,
+ headers=headers,
+ fields=fields,
+ stream=stream,
+ timeout=timeout,
+ body=body)
+ elif method == "POST":
+ return self.rest_client.POST(url,
+ headers=headers,
+ fields=fields,
+ stream=stream,
+ timeout=timeout,
+ body=body)
+ elif method == "PUT":
+ return self.rest_client.PUT(url,
+ headers=headers,
+ fields=fields,
+ stream=stream,
+ timeout=timeout,
+ body=body)
+ elif method == "PATCH":
+ return self.rest_client.PATCH(url,
+ headers=headers,
+ fields=fields,
+ stream=stream,
+ timeout=timeout,
+ body=body)
+ elif method == "DELETE":
+ return self.rest_client.DELETE(url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ body=body)
+ else:
+ raise ApiValueError(
+ "http method must be `GET`, `HEAD`, `OPTIONS`,"
+ " `POST`, `PATCH`, `PUT` or `DELETE`."
+ )
+
+ def update_params_for_auth(self, headers, auth_settings,
+ resource_path, method, body):
+ """Updates header and query params based on authentication setting.
+
+ :param headers: Header parameters dict to be updated.
+ :param auth_settings: Authentication setting identifiers list.
+ :param resource_path: A string representation of the HTTP request resource path.
+ :param method: A string representation of the HTTP request method.
+ :param body: A object representing the body of the HTTP request.
+ The object type is the return value of _encoder.default().
+ """
+ if not auth_settings:
+ return
+
+ for auth in auth_settings:
+ auth_setting = self.configuration.auth_settings().get(auth)
+ if not auth_setting:
+ continue
+ if auth_setting['in'] == 'cookie':
+ headers.add('Cookie', auth_setting['value'])
+ elif auth_setting['in'] == 'header':
+ if auth_setting['type'] != 'http-signature':
+ headers.add(auth_setting['key'], auth_setting['value'])
+ elif auth_setting['in'] == 'query':
+ """ TODO implement auth in query
+ need to pass in prefix_separator_iterator
+ and need to output resource_path with query params added
+ """
+ raise ApiValueError("Auth in query not yet implemented")
+ else:
+ raise ApiValueError(
+ 'Authentication token must be in `query` or `header`'
+ )
+
+
+class Api:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client: typing.Optional[ApiClient] = None):
+ if api_client is None:
+ api_client = ApiClient()
+ self.api_client = api_client
+
+ @staticmethod
+ def _verify_typed_dict_inputs_oapg(cls: typing.Type[typing_extensions.TypedDict], data: typing.Dict[str, typing.Any]):
+ """
+ Ensures that:
+ - required keys are present
+ - additional properties are not input
+ - value stored under required keys do not have the value unset
+ Note: detailed value checking is done in schema classes
+ """
+ missing_required_keys = []
+ required_keys_with_unset_values = []
+ for required_key in cls.__required_keys__:
+ if required_key not in data:
+ missing_required_keys.append(required_key)
+ continue
+ value = data[required_key]
+ if value is unset:
+ required_keys_with_unset_values.append(required_key)
+ if missing_required_keys:
+ raise ApiTypeError(
+ '{} missing {} required arguments: {}'.format(
+ cls.__name__, len(missing_required_keys), missing_required_keys
+ )
+ )
+ if required_keys_with_unset_values:
+ raise ApiValueError(
+ '{} contains invalid unset values for {} required keys: {}'.format(
+ cls.__name__, len(required_keys_with_unset_values), required_keys_with_unset_values
+ )
+ )
+
+ disallowed_additional_keys = []
+ for key in data:
+ if key in cls.__required_keys__ or key in cls.__optional_keys__:
+ continue
+ disallowed_additional_keys.append(key)
+ if disallowed_additional_keys:
+ raise ApiTypeError(
+ '{} got {} unexpected keyword arguments: {}'.format(
+ cls.__name__, len(disallowed_additional_keys), disallowed_additional_keys
+ )
+ )
+
+ def _get_host_oapg(
+ self,
+ operation_id: str,
+ servers: typing.Tuple[typing.Dict[str, str], ...] = tuple(),
+ host_index: typing.Optional[int] = None
+ ) -> typing.Optional[str]:
+ configuration = self.api_client.configuration
+ try:
+ if host_index is None:
+ index = configuration.server_operation_index.get(
+ operation_id, configuration.server_index
+ )
+ else:
+ index = host_index
+ server_variables = configuration.server_operation_variables.get(
+ operation_id, configuration.server_variables
+ )
+ host = configuration.get_host_from_settings(
+ index, variables=server_variables, servers=servers
+ )
+ except IndexError:
+ if servers:
+ raise ApiValueError(
+ "Invalid host index. Must be 0 <= index < %s" %
+ len(servers)
+ )
+ host = None
+ return host
+
+
+class SerializedRequestBody(typing_extensions.TypedDict, total=False):
+ body: typing.Union[str, bytes]
+ fields: typing.Tuple[typing.Union[RequestField, typing.Tuple[str, str]], ...]
+
+
+class RequestBody(StyleFormSerializer, JSONDetector):
+ """
+ A request body parameter
+ content: content_type to MediaType Schema info
+ """
+ __json_encoder = JSONEncoder()
+
+ def __init__(
+ self,
+ content: typing.Dict[str, MediaType],
+ required: bool = False,
+ ):
+ self.required = required
+ if len(content) == 0:
+ raise ValueError('Invalid value for content, the content dict must have >= 1 entry')
+ self.content = content
+
+ def __serialize_json(
+ self,
+ in_data: typing.Any
+ ) -> typing.Dict[str, bytes]:
+ in_data = self.__json_encoder.default(in_data)
+ json_str = json.dumps(in_data, separators=(",", ":"), ensure_ascii=False).encode(
+ "utf-8"
+ )
+ return dict(body=json_str)
+
+ @staticmethod
+ def __serialize_text_plain(in_data: typing.Any) -> typing.Dict[str, str]:
+ if isinstance(in_data, frozendict.frozendict):
+ raise ValueError('Unable to serialize type frozendict.frozendict to text/plain')
+ elif isinstance(in_data, tuple):
+ raise ValueError('Unable to serialize type tuple to text/plain')
+ elif isinstance(in_data, NoneClass):
+ raise ValueError('Unable to serialize type NoneClass to text/plain')
+ elif isinstance(in_data, BoolClass):
+ raise ValueError('Unable to serialize type BoolClass to text/plain')
+ return dict(body=str(in_data))
+
+ def __multipart_json_item(self, key: str, value: Schema) -> RequestField:
+ json_value = self.__json_encoder.default(value)
+ return RequestField(name=key, data=json.dumps(json_value), headers={'Content-Type': 'application/json'})
+
+ def __multipart_form_item(self, key: str, value: Schema) -> RequestField:
+ if isinstance(value, str):
+ return RequestField(name=key, data=str(value), headers={'Content-Type': 'text/plain'})
+ elif isinstance(value, bytes):
+ return RequestField(name=key, data=value, headers={'Content-Type': 'application/octet-stream'})
+ elif isinstance(value, FileIO):
+ request_field = RequestField(
+ name=key,
+ data=value.read(),
+ filename=os.path.basename(value.name),
+ headers={'Content-Type': 'application/octet-stream'}
+ )
+ value.close()
+ return request_field
+ else:
+ return self.__multipart_json_item(key=key, value=value)
+
+ def __serialize_multipart_form_data(
+ self, in_data: Schema
+ ) -> typing.Dict[str, typing.Tuple[RequestField, ...]]:
+ if not isinstance(in_data, frozendict.frozendict):
+ raise ValueError(f'Unable to serialize {in_data} to multipart/form-data because it is not a dict of data')
+ """
+ In a multipart/form-data request body, each schema property, or each element of a schema array property,
+ takes a section in the payload with an internal header as defined by RFC7578. The serialization strategy
+ for each property of a multipart/form-data request body can be specified in an associated Encoding Object.
+
+ When passing in multipart types, boundaries MAY be used to separate sections of the content being
+ transferred – thus, the following default Content-Types are defined for multipart:
+
+ If the (object) property is a primitive, or an array of primitive values, the default Content-Type is text/plain
+ If the property is complex, or an array of complex values, the default Content-Type is application/json
+ Question: how is the array of primitives encoded?
+ If the property is a type: string with a contentEncoding, the default Content-Type is application/octet-stream
+ """
+ fields = []
+ for key, value in in_data.items():
+ if isinstance(value, tuple):
+ if value:
+ # values use explode = True, so the code makes a RequestField for each item with name=key
+ for item in value:
+ request_field = self.__multipart_form_item(key=key, value=item)
+ fields.append(request_field)
+ else:
+ # send an empty array as json because exploding will not send it
+ request_field = self.__multipart_json_item(key=key, value=value)
+ fields.append(request_field)
+ else:
+ request_field = self.__multipart_form_item(key=key, value=value)
+ fields.append(request_field)
+
+ return dict(fields=tuple(fields))
+
+ def __serialize_application_octet_stream(self, in_data: BinarySchema) -> typing.Dict[str, bytes]:
+ if isinstance(in_data, bytes):
+ return dict(body=in_data)
+ # FileIO type
+ result = dict(body=in_data.read())
+ in_data.close()
+ return result
+
+ def __serialize_application_x_www_form_data(
+ self, in_data: typing.Any
+ ) -> SerializedRequestBody:
+ """
+ POST submission of form data in body
+ """
+ if not isinstance(in_data, frozendict.frozendict):
+ raise ValueError(
+ f'Unable to serialize {in_data} to application/x-www-form-urlencoded because it is not a dict of data')
+ cast_in_data = self.__json_encoder.default(in_data)
+ value = self._serialize_form(cast_in_data, name='', explode=True, percent_encode=False)
+ return dict(body=value)
+
+ def serialize(
+ self, in_data: typing.Any, content_type: str
+ ) -> SerializedRequestBody:
+ """
+ If a str is returned then the result will be assigned to data when making the request
+ If a tuple is returned then the result will be used as fields input in encode_multipart_formdata
+ Return a tuple of
+
+ The key of the return dict is
+ - body for application/json
+ - encode_multipart and fields for multipart/form-data
+ """
+ media_type = self.content[content_type]
+ if isinstance(in_data, media_type.schema):
+ cast_in_data = in_data
+ elif isinstance(in_data, (dict, frozendict.frozendict)) and in_data:
+ cast_in_data = media_type.schema(**in_data)
+ else:
+ cast_in_data = media_type.schema(in_data)
+ # TODO check for and use encoding if it exists
+ # and content_type is multipart or application/x-www-form-urlencoded
+ if self._content_type_is_json(content_type):
+ return self.__serialize_json(cast_in_data)
+ elif content_type == 'text/plain':
+ return self.__serialize_text_plain(cast_in_data)
+ elif content_type == 'multipart/form-data':
+ return self.__serialize_multipart_form_data(cast_in_data)
+ elif content_type == 'application/x-www-form-urlencoded':
+ return self.__serialize_application_x_www_form_data(cast_in_data)
+ elif content_type == 'application/octet-stream':
+ return self.__serialize_application_octet_stream(cast_in_data)
+ raise NotImplementedError('Serialization has not yet been implemented for {}'.format(content_type))
diff --git a/dreamkast_api/openapi_client/apis/__init__.py b/dreamkast_api/openapi_client/apis/__init__.py
new file mode 100644
index 0000000..7840f77
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/__init__.py
@@ -0,0 +1,3 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints then import them from
+# tags, paths, or path_to_api, or tag_to_api
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/apis/path_to_api.py b/dreamkast_api/openapi_client/apis/path_to_api.py
new file mode 100644
index 0000000..08b1ab8
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/path_to_api.py
@@ -0,0 +1,53 @@
+import typing_extensions
+
+from openapi_client.paths import PathValues
+from openapi_client.apis.paths.api_v1_event_abbr_my_profile import ApiV1EventAbbrMyProfile
+from openapi_client.apis.paths.api_v1_events import ApiV1Events
+from openapi_client.apis.paths.api_v1_events_event_abbr import ApiV1EventsEventAbbr
+from openapi_client.apis.paths.api_v1_tracks import ApiV1Tracks
+from openapi_client.apis.paths.api_v1_tracks_track_id import ApiV1TracksTrackId
+from openapi_client.apis.paths.api_v1_tracks_track_id_viewer_count import ApiV1TracksTrackIdViewerCount
+from openapi_client.apis.paths.api_v1_talks import ApiV1Talks
+from openapi_client.apis.paths.api_v1_talks_talk_id import ApiV1TalksTalkId
+from openapi_client.apis.paths.api_v1_talks_talk_id_video_registration import ApiV1TalksTalkIdVideoRegistration
+from openapi_client.apis.paths.api_v1_chat_messages import ApiV1ChatMessages
+from openapi_client.apis.paths.api_v1_chat_messages_message_id import ApiV1ChatMessagesMessageId
+from openapi_client.apis.paths.api_v1_sponsors import ApiV1Sponsors
+from openapi_client.apis.paths.api_v1_booths_booth_id import ApiV1BoothsBoothId
+
+PathToApi = typing_extensions.TypedDict(
+ 'PathToApi',
+ {
+ PathValues.API_V1_EVENT_ABBR_MY_PROFILE: ApiV1EventAbbrMyProfile,
+ PathValues.API_V1_EVENTS: ApiV1Events,
+ PathValues.API_V1_EVENTS_EVENT_ABBR: ApiV1EventsEventAbbr,
+ PathValues.API_V1_TRACKS: ApiV1Tracks,
+ PathValues.API_V1_TRACKS_TRACK_ID: ApiV1TracksTrackId,
+ PathValues.API_V1_TRACKS_TRACK_ID_VIEWER_COUNT: ApiV1TracksTrackIdViewerCount,
+ PathValues.API_V1_TALKS: ApiV1Talks,
+ PathValues.API_V1_TALKS_TALK_ID: ApiV1TalksTalkId,
+ PathValues.API_V1_TALKS_TALK_ID_VIDEO_REGISTRATION: ApiV1TalksTalkIdVideoRegistration,
+ PathValues.API_V1_CHAT_MESSAGES: ApiV1ChatMessages,
+ PathValues.API_V1_CHAT_MESSAGES_MESSAGE_ID: ApiV1ChatMessagesMessageId,
+ PathValues.API_V1_SPONSORS: ApiV1Sponsors,
+ PathValues.API_V1_BOOTHS_BOOTH_ID: ApiV1BoothsBoothId,
+ }
+)
+
+path_to_api = PathToApi(
+ {
+ PathValues.API_V1_EVENT_ABBR_MY_PROFILE: ApiV1EventAbbrMyProfile,
+ PathValues.API_V1_EVENTS: ApiV1Events,
+ PathValues.API_V1_EVENTS_EVENT_ABBR: ApiV1EventsEventAbbr,
+ PathValues.API_V1_TRACKS: ApiV1Tracks,
+ PathValues.API_V1_TRACKS_TRACK_ID: ApiV1TracksTrackId,
+ PathValues.API_V1_TRACKS_TRACK_ID_VIEWER_COUNT: ApiV1TracksTrackIdViewerCount,
+ PathValues.API_V1_TALKS: ApiV1Talks,
+ PathValues.API_V1_TALKS_TALK_ID: ApiV1TalksTalkId,
+ PathValues.API_V1_TALKS_TALK_ID_VIDEO_REGISTRATION: ApiV1TalksTalkIdVideoRegistration,
+ PathValues.API_V1_CHAT_MESSAGES: ApiV1ChatMessages,
+ PathValues.API_V1_CHAT_MESSAGES_MESSAGE_ID: ApiV1ChatMessagesMessageId,
+ PathValues.API_V1_SPONSORS: ApiV1Sponsors,
+ PathValues.API_V1_BOOTHS_BOOTH_ID: ApiV1BoothsBoothId,
+ }
+)
diff --git a/dreamkast_api/openapi_client/apis/paths/__init__.py b/dreamkast_api/openapi_client/apis/paths/__init__.py
new file mode 100644
index 0000000..e459647
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/__init__.py
@@ -0,0 +1,3 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.apis.path_to_api import path_to_api
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_booths_booth_id.py b/dreamkast_api/openapi_client/apis/paths/api_v1_booths_booth_id.py
new file mode 100644
index 0000000..7fec44a
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_booths_booth_id.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_booths_booth_id.get import ApiForget
+
+
+class ApiV1BoothsBoothId(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages.py b/dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages.py
new file mode 100644
index 0000000..3d6e420
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages.py
@@ -0,0 +1,9 @@
+from openapi_client.paths.api_v1_chat_messages.get import ApiForget
+from openapi_client.paths.api_v1_chat_messages.post import ApiForpost
+
+
+class ApiV1ChatMessages(
+ ApiForget,
+ ApiForpost,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages_message_id.py b/dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages_message_id.py
new file mode 100644
index 0000000..39fa1ea
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_chat_messages_message_id.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_chat_messages_message_id.put import ApiForput
+
+
+class ApiV1ChatMessagesMessageId(
+ ApiForput,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_event_abbr_my_profile.py b/dreamkast_api/openapi_client/apis/paths/api_v1_event_abbr_my_profile.py
new file mode 100644
index 0000000..a6ccd2c
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_event_abbr_my_profile.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_event_abbr_my_profile.get import ApiForget
+
+
+class ApiV1EventAbbrMyProfile(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_events.py b/dreamkast_api/openapi_client/apis/paths/api_v1_events.py
new file mode 100644
index 0000000..f3d7305
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_events.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_events.get import ApiForget
+
+
+class ApiV1Events(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_events_event_abbr.py b/dreamkast_api/openapi_client/apis/paths/api_v1_events_event_abbr.py
new file mode 100644
index 0000000..59aab98
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_events_event_abbr.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_events_event_abbr.get import ApiForget
+
+
+class ApiV1EventsEventAbbr(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_sponsors.py b/dreamkast_api/openapi_client/apis/paths/api_v1_sponsors.py
new file mode 100644
index 0000000..e00bfec
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_sponsors.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_sponsors.get import ApiForget
+
+
+class ApiV1Sponsors(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_talks.py b/dreamkast_api/openapi_client/apis/paths/api_v1_talks.py
new file mode 100644
index 0000000..5c69016
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_talks.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_talks.get import ApiForget
+
+
+class ApiV1Talks(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id.py b/dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id.py
new file mode 100644
index 0000000..8b7ffcb
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id.py
@@ -0,0 +1,9 @@
+from openapi_client.paths.api_v1_talks_talk_id.get import ApiForget
+from openapi_client.paths.api_v1_talks_talk_id.put import ApiForput
+
+
+class ApiV1TalksTalkId(
+ ApiForget,
+ ApiForput,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id_video_registration.py b/dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id_video_registration.py
new file mode 100644
index 0000000..719599c
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_talks_talk_id_video_registration.py
@@ -0,0 +1,9 @@
+from openapi_client.paths.api_v1_talks_talk_id_video_registration.get import ApiForget
+from openapi_client.paths.api_v1_talks_talk_id_video_registration.put import ApiForput
+
+
+class ApiV1TalksTalkIdVideoRegistration(
+ ApiForget,
+ ApiForput,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_tracks.py b/dreamkast_api/openapi_client/apis/paths/api_v1_tracks.py
new file mode 100644
index 0000000..2bb55c0
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_tracks.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_tracks.get import ApiForget
+
+
+class ApiV1Tracks(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id.py b/dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id.py
new file mode 100644
index 0000000..e558962
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_tracks_track_id.get import ApiForget
+
+
+class ApiV1TracksTrackId(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id_viewer_count.py b/dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id_viewer_count.py
new file mode 100644
index 0000000..f5f3fc0
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/paths/api_v1_tracks_track_id_viewer_count.py
@@ -0,0 +1,7 @@
+from openapi_client.paths.api_v1_tracks_track_id_viewer_count.get import ApiForget
+
+
+class ApiV1TracksTrackIdViewerCount(
+ ApiForget,
+):
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tag_to_api.py b/dreamkast_api/openapi_client/apis/tag_to_api.py
new file mode 100644
index 0000000..c4fa06c
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tag_to_api.py
@@ -0,0 +1,38 @@
+import typing_extensions
+
+from openapi_client.apis.tags import TagValues
+from openapi_client.apis.tags.booth_api import BoothApi
+from openapi_client.apis.tags.chat_message_api import ChatMessageApi
+from openapi_client.apis.tags.event_api import EventApi
+from openapi_client.apis.tags.profile_api import ProfileApi
+from openapi_client.apis.tags.sponsor_api import SponsorApi
+from openapi_client.apis.tags.talk_api import TalkApi
+from openapi_client.apis.tags.track_api import TrackApi
+from openapi_client.apis.tags.video_registration_api import VideoRegistrationApi
+
+TagToApi = typing_extensions.TypedDict(
+ 'TagToApi',
+ {
+ TagValues.BOOTH: BoothApi,
+ TagValues.CHAT_MESSAGE: ChatMessageApi,
+ TagValues.EVENT: EventApi,
+ TagValues.PROFILE: ProfileApi,
+ TagValues.SPONSOR: SponsorApi,
+ TagValues.TALK: TalkApi,
+ TagValues.TRACK: TrackApi,
+ TagValues.VIDEO_REGISTRATION: VideoRegistrationApi,
+ }
+)
+
+tag_to_api = TagToApi(
+ {
+ TagValues.BOOTH: BoothApi,
+ TagValues.CHAT_MESSAGE: ChatMessageApi,
+ TagValues.EVENT: EventApi,
+ TagValues.PROFILE: ProfileApi,
+ TagValues.SPONSOR: SponsorApi,
+ TagValues.TALK: TalkApi,
+ TagValues.TRACK: TrackApi,
+ TagValues.VIDEO_REGISTRATION: VideoRegistrationApi,
+ }
+)
diff --git a/dreamkast_api/openapi_client/apis/tags/__init__.py b/dreamkast_api/openapi_client/apis/tags/__init__.py
new file mode 100644
index 0000000..eb3f9d9
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/__init__.py
@@ -0,0 +1,16 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.apis.tag_to_api import tag_to_api
+
+import enum
+
+
+class TagValues(str, enum.Enum):
+ BOOTH = "Booth"
+ CHAT_MESSAGE = "ChatMessage"
+ EVENT = "Event"
+ PROFILE = "Profile"
+ SPONSOR = "Sponsor"
+ TALK = "Talk"
+ TRACK = "Track"
+ VIDEO_REGISTRATION = "VideoRegistration"
diff --git a/dreamkast_api/openapi_client/apis/tags/booth_api.py b/dreamkast_api/openapi_client/apis/tags/booth_api.py
new file mode 100644
index 0000000..71ea81c
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/booth_api.py
@@ -0,0 +1,23 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_booths_booth_id.get import ApiV1BoothsBoothIdGet
+
+
+class BoothApi(
+ ApiV1BoothsBoothIdGet,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tags/chat_message_api.py b/dreamkast_api/openapi_client/apis/tags/chat_message_api.py
new file mode 100644
index 0000000..eb65dc8
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/chat_message_api.py
@@ -0,0 +1,27 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_chat_messages.get import ApiV1ChatMessagesGet
+from openapi_client.paths.api_v1_chat_messages_message_id.put import ApiV1ChatMessagesMessageIdPut
+from openapi_client.paths.api_v1_chat_messages.post import ApiV1ChatMessagesPost
+
+
+class ChatMessageApi(
+ ApiV1ChatMessagesGet,
+ ApiV1ChatMessagesMessageIdPut,
+ ApiV1ChatMessagesPost,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tags/event_api.py b/dreamkast_api/openapi_client/apis/tags/event_api.py
new file mode 100644
index 0000000..fb15845
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/event_api.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_events_event_abbr.get import ApiV1EventsEventAbbrGet
+from openapi_client.paths.api_v1_events.get import ApiV1EventsGet
+
+
+class EventApi(
+ ApiV1EventsEventAbbrGet,
+ ApiV1EventsGet,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tags/profile_api.py b/dreamkast_api/openapi_client/apis/tags/profile_api.py
new file mode 100644
index 0000000..10e030d
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/profile_api.py
@@ -0,0 +1,23 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_event_abbr_my_profile.get import ApiV1EventAbbrMyProfileGet
+
+
+class ProfileApi(
+ ApiV1EventAbbrMyProfileGet,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tags/sponsor_api.py b/dreamkast_api/openapi_client/apis/tags/sponsor_api.py
new file mode 100644
index 0000000..73799a6
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/sponsor_api.py
@@ -0,0 +1,23 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_sponsors.get import ApiV1SponsorsGet
+
+
+class SponsorApi(
+ ApiV1SponsorsGet,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tags/talk_api.py b/dreamkast_api/openapi_client/apis/tags/talk_api.py
new file mode 100644
index 0000000..18785d8
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/talk_api.py
@@ -0,0 +1,27 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_talks.get import ApiV1TalksGet
+from openapi_client.paths.api_v1_talks_talk_id.get import ApiV1TalksTalkIdGet
+from openapi_client.paths.api_v1_talks_talk_id.put import ApiV1TalksTalkIdPut
+
+
+class TalkApi(
+ ApiV1TalksGet,
+ ApiV1TalksTalkIdGet,
+ ApiV1TalksTalkIdPut,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tags/track_api.py b/dreamkast_api/openapi_client/apis/tags/track_api.py
new file mode 100644
index 0000000..6423b17
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/track_api.py
@@ -0,0 +1,27 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_tracks.get import ApiV1TracksGet
+from openapi_client.paths.api_v1_tracks_track_id.get import ApiV1TracksTrackIdGet
+from openapi_client.paths.api_v1_tracks_track_id_viewer_count.get import ApiV1TracksTrackIdViewerCountGet
+
+
+class TrackApi(
+ ApiV1TracksGet,
+ ApiV1TracksTrackIdGet,
+ ApiV1TracksTrackIdViewerCountGet,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/apis/tags/video_registration_api.py b/dreamkast_api/openapi_client/apis/tags/video_registration_api.py
new file mode 100644
index 0000000..a79d795
--- /dev/null
+++ b/dreamkast_api/openapi_client/apis/tags/video_registration_api.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from openapi_client.paths.api_v1_talks_talk_id_video_registration.get import ApiV1TalksTalkIdVideoRegistrationGet
+from openapi_client.paths.api_v1_talks_talk_id_video_registration.put import ApiV1TalksTalkIdVideoRegistrationPut
+
+
+class VideoRegistrationApi(
+ ApiV1TalksTalkIdVideoRegistrationGet,
+ ApiV1TalksTalkIdVideoRegistrationPut,
+):
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+ pass
diff --git a/dreamkast_api/openapi_client/configuration.py b/dreamkast_api/openapi_client/configuration.py
new file mode 100644
index 0000000..85bde7c
--- /dev/null
+++ b/dreamkast_api/openapi_client/configuration.py
@@ -0,0 +1,448 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import copy
+import logging
+import multiprocessing
+import sys
+import urllib3
+
+from http import client as http_client
+from openapi_client.exceptions import ApiValueError
+
+
+JSON_SCHEMA_VALIDATION_KEYWORDS = {
+ 'multipleOf', 'maximum', 'exclusiveMaximum',
+ 'minimum', 'exclusiveMinimum', 'maxLength',
+ 'minLength', 'pattern', 'maxItems', 'minItems',
+ 'uniqueItems', 'maxProperties', 'minProperties',
+}
+
+class Configuration(object):
+ """NOTE: This class is auto generated by OpenAPI Generator
+
+ Ref: https://openapi-generator.tech
+ Do not edit the class manually.
+
+ :param host: Base url
+ :param api_key: Dict to store API key(s).
+ Each entry in the dict specifies an API key.
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is the API key secret.
+ :param api_key_prefix: Dict to store API prefix (e.g. Bearer)
+ The dict key is the name of the security scheme in the OAS specification.
+ The dict value is an API key prefix when generating the auth data.
+ :param username: Username for HTTP basic authentication
+ :param password: Password for HTTP basic authentication
+ :param discard_unknown_keys: Boolean value indicating whether to discard
+ unknown properties. A server may send a response that includes additional
+ properties that are not known by the client in the following scenarios:
+ 1. The OpenAPI document is incomplete, i.e. it does not match the server
+ implementation.
+ 2. The client was generated using an older version of the OpenAPI document
+ and the server has been upgraded since then.
+ If a schema in the OpenAPI document defines the additionalProperties attribute,
+ then all undeclared properties received by the server are injected into the
+ additional properties map. In that case, there are undeclared properties, and
+ nothing to discard.
+ :param disabled_client_side_validations (string): Comma-separated list of
+ JSON schema validation keywords to disable JSON schema structural validation
+ rules. The following keywords may be specified: multipleOf, maximum,
+ exclusiveMaximum, minimum, exclusiveMinimum, maxLength, minLength, pattern,
+ maxItems, minItems.
+ By default, the validation is performed for data generated locally by the client
+ and data received from the server, independent of any validation performed by
+ the server side. If the input data does not satisfy the JSON schema validation
+ rules specified in the OpenAPI document, an exception is raised.
+ If disabled_client_side_validations is set, structural validation is
+ disabled. This can be useful to troubleshoot data validation problem, such as
+ when the OpenAPI document validation rules do not match the actual API data
+ received by the server.
+ :param server_index: Index to servers configuration.
+ :param server_variables: Mapping with string values to replace variables in
+ templated server configuration. The validation of enums is performed for
+ variables with defined enum values before.
+ :param server_operation_index: Mapping from operation ID to an index to server
+ configuration.
+ :param server_operation_variables: Mapping from operation ID to a mapping with
+ string values to replace variables in templated server configuration.
+ The validation of enums is performed for variables with defined enum values before.
+
+ """
+
+ _default = None
+
+ def __init__(self, host=None,
+ api_key=None, api_key_prefix=None,
+ username=None, password=None,
+ discard_unknown_keys=False,
+ disabled_client_side_validations="",
+ server_index=None, server_variables=None,
+ server_operation_index=None, server_operation_variables=None,
+ ):
+ """Constructor
+ """
+ self._base_path = "http://localhost:8080" if host is None else host
+ """Default Base url
+ """
+ self.server_index = 0 if server_index is None and host is None else server_index
+ self.server_operation_index = server_operation_index or {}
+ """Default server index
+ """
+ self.server_variables = server_variables or {}
+ self.server_operation_variables = server_operation_variables or {}
+ """Default server variables
+ """
+ self.temp_folder_path = None
+ """Temp file folder for downloading files
+ """
+ # Authentication Settings
+ self.api_key = {}
+ if api_key:
+ self.api_key = api_key
+ """dict to store API key(s)
+ """
+ self.api_key_prefix = {}
+ if api_key_prefix:
+ self.api_key_prefix = api_key_prefix
+ """dict to store API prefix (e.g. Bearer)
+ """
+ self.refresh_api_key_hook = None
+ """function hook to refresh API key if expired
+ """
+ self.username = username
+ """Username for HTTP basic authentication
+ """
+ self.password = password
+ """Password for HTTP basic authentication
+ """
+ self.discard_unknown_keys = discard_unknown_keys
+ self.disabled_client_side_validations = disabled_client_side_validations
+ self.logger = {}
+ """Logging Settings
+ """
+ self.logger["package_logger"] = logging.getLogger("openapi_client")
+ self.logger["urllib3_logger"] = logging.getLogger("urllib3")
+ self.logger_format = '%(asctime)s %(levelname)s %(message)s'
+ """Log format
+ """
+ self.logger_stream_handler = None
+ """Log stream handler
+ """
+ self.logger_file_handler = None
+ """Log file handler
+ """
+ self.logger_file = None
+ """Debug file location
+ """
+ self.debug = False
+ """Debug switch
+ """
+
+ self.verify_ssl = True
+ """SSL/TLS verification
+ Set this to false to skip verifying SSL certificate when calling API
+ from https server.
+ """
+ self.ssl_ca_cert = None
+ """Set this to customize the certificate file to verify the peer.
+ """
+ self.cert_file = None
+ """client certificate file
+ """
+ self.key_file = None
+ """client key file
+ """
+ self.assert_hostname = None
+ """Set this to True/False to enable/disable SSL hostname verification.
+ """
+
+ self.connection_pool_maxsize = multiprocessing.cpu_count() * 5
+ """urllib3 connection pool's maximum number of connections saved
+ per pool. urllib3 uses 1 connection as default value, but this is
+ not the best value when you are making a lot of possibly parallel
+ requests to the same host, which is often the case here.
+ cpu_count * 5 is used as default value to increase performance.
+ """
+
+ self.proxy = None
+ """Proxy URL
+ """
+ self.proxy_headers = None
+ """Proxy headers
+ """
+ self.safe_chars_for_path_param = ''
+ """Safe chars for path_param
+ """
+ self.retries = None
+ """Adding retries to override urllib3 default value 3
+ """
+ # Enable client side validation
+ self.client_side_validation = True
+
+ # Options to pass down to the underlying urllib3 socket
+ self.socket_options = None
+
+ def __deepcopy__(self, memo):
+ cls = self.__class__
+ result = cls.__new__(cls)
+ memo[id(self)] = result
+ for k, v in self.__dict__.items():
+ if k not in ('logger', 'logger_file_handler'):
+ setattr(result, k, copy.deepcopy(v, memo))
+ # shallow copy of loggers
+ result.logger = copy.copy(self.logger)
+ # use setters to configure loggers
+ result.logger_file = self.logger_file
+ result.debug = self.debug
+ return result
+
+ def __setattr__(self, name, value):
+ object.__setattr__(self, name, value)
+ if name == 'disabled_client_side_validations':
+ s = set(filter(None, value.split(',')))
+ for v in s:
+ if v not in JSON_SCHEMA_VALIDATION_KEYWORDS:
+ raise ApiValueError(
+ "Invalid keyword: '{0}''".format(v))
+ self._disabled_client_side_validations = s
+
+ @classmethod
+ def set_default(cls, default):
+ """Set default instance of configuration.
+
+ It stores default configuration, which can be
+ returned by get_default_copy method.
+
+ :param default: object of Configuration
+ """
+ cls._default = copy.deepcopy(default)
+
+ @classmethod
+ def get_default_copy(cls):
+ """Return new instance of configuration.
+
+ This method returns newly created, based on default constructor,
+ object of Configuration class or returns a copy of default
+ configuration passed by the set_default method.
+
+ :return: The configuration object.
+ """
+ if cls._default is not None:
+ return copy.deepcopy(cls._default)
+ return Configuration()
+
+ @property
+ def logger_file(self):
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ return self.__logger_file
+
+ @logger_file.setter
+ def logger_file(self, value):
+ """The logger file.
+
+ If the logger_file is None, then add stream handler and remove file
+ handler. Otherwise, add file handler and remove stream handler.
+
+ :param value: The logger_file path.
+ :type: str
+ """
+ self.__logger_file = value
+ if self.__logger_file:
+ # If set logging file,
+ # then add file handler and remove stream handler.
+ self.logger_file_handler = logging.FileHandler(self.__logger_file)
+ self.logger_file_handler.setFormatter(self.logger_formatter)
+ for _, logger in self.logger.items():
+ logger.addHandler(self.logger_file_handler)
+
+ @property
+ def debug(self):
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ return self.__debug
+
+ @debug.setter
+ def debug(self, value):
+ """Debug status
+
+ :param value: The debug status, True or False.
+ :type: bool
+ """
+ self.__debug = value
+ if self.__debug:
+ # if debug status is True, turn on debug logging
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.DEBUG)
+ # turn on http_client debug
+ http_client.HTTPConnection.debuglevel = 1
+ else:
+ # if debug status is False, turn off debug logging,
+ # setting log level to default `logging.WARNING`
+ for _, logger in self.logger.items():
+ logger.setLevel(logging.WARNING)
+ # turn off http_client debug
+ http_client.HTTPConnection.debuglevel = 0
+
+ @property
+ def logger_format(self):
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ return self.__logger_format
+
+ @logger_format.setter
+ def logger_format(self, value):
+ """The logger format.
+
+ The logger_formatter will be updated when sets logger_format.
+
+ :param value: The format string.
+ :type: str
+ """
+ self.__logger_format = value
+ self.logger_formatter = logging.Formatter(self.__logger_format)
+
+ def get_api_key_with_prefix(self, identifier, alias=None):
+ """Gets API key (with prefix if set).
+
+ :param identifier: The identifier of apiKey.
+ :param alias: The alternative identifier of apiKey.
+ :return: The token for api key authentication.
+ """
+ if self.refresh_api_key_hook is not None:
+ self.refresh_api_key_hook(self)
+ key = self.api_key.get(identifier, self.api_key.get(alias) if alias is not None else None)
+ if key:
+ prefix = self.api_key_prefix.get(identifier)
+ if prefix:
+ return "%s %s" % (prefix, key)
+ else:
+ return key
+
+ def get_basic_auth_token(self):
+ """Gets HTTP basic authentication header (string).
+
+ :return: The token for basic HTTP authentication.
+ """
+ username = ""
+ if self.username is not None:
+ username = self.username
+ password = ""
+ if self.password is not None:
+ password = self.password
+ return urllib3.util.make_headers(
+ basic_auth=username + ':' + password
+ ).get('authorization')
+
+ def auth_settings(self):
+ """Gets Auth Settings dict for api client.
+
+ :return: The Auth Settings information dict.
+ """
+ auth = {}
+ return auth
+
+ def to_debug_report(self):
+ """Gets the essential information for debugging.
+
+ :return: The report for debugging.
+ """
+ return "Python SDK Debug Report:\n"\
+ "OS: {env}\n"\
+ "Python Version: {pyversion}\n"\
+ "Version of the API: 1.0.0\n"\
+ "SDK Package Version: 1.0.0".\
+ format(env=sys.platform, pyversion=sys.version)
+
+ def get_host_settings(self):
+ """Gets an array of host settings
+
+ :return: An array of host settings
+ """
+ return [
+ {
+ 'url': "http://localhost:8080",
+ 'description': "No description provided",
+ },
+ {
+ 'url': "http://api-mock.dev.cloudnativedays.jp",
+ 'description': "No description provided",
+ },
+ {
+ 'url': "http://dreamkast-api-mock.udcp.info",
+ 'description': "No description provided",
+ }
+ ]
+
+ def get_host_from_settings(self, index, variables=None, servers=None):
+ """Gets host URL based on the index and variables
+ :param index: array index of the host settings
+ :param variables: hash of variable and the corresponding value
+ :param servers: an array of host settings or None
+ :return: URL based on host settings
+ """
+ if index is None:
+ return self._base_path
+
+ variables = {} if variables is None else variables
+ servers = self.get_host_settings() if servers is None else servers
+
+ try:
+ server = servers[index]
+ except IndexError:
+ raise ValueError(
+ "Invalid index {0} when selecting the host settings. "
+ "Must be less than {1}".format(index, len(servers)))
+
+ url = server['url']
+
+ # go through variables and replace placeholders
+ for variable_name, variable in server.get('variables', {}).items():
+ used_value = variables.get(
+ variable_name, variable['default_value'])
+
+ if 'enum_values' in variable \
+ and used_value not in variable['enum_values']:
+ raise ValueError(
+ "The variable `{0}` in the host URL has invalid value "
+ "{1}. Must be {2}.".format(
+ variable_name, variables[variable_name],
+ variable['enum_values']))
+
+ url = url.replace("{" + variable_name + "}", used_value)
+
+ return url
+
+ @property
+ def host(self):
+ """Return generated host."""
+ return self.get_host_from_settings(self.server_index, variables=self.server_variables)
+
+ @host.setter
+ def host(self, value):
+ """Fix base path."""
+ self._base_path = value
+ self.server_index = None
diff --git a/dreamkast_api/openapi_client/exceptions.py b/dreamkast_api/openapi_client/exceptions.py
new file mode 100644
index 0000000..f939965
--- /dev/null
+++ b/dreamkast_api/openapi_client/exceptions.py
@@ -0,0 +1,136 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+
+class OpenApiException(Exception):
+ """The base exception class for all OpenAPIExceptions"""
+
+
+class ApiTypeError(OpenApiException, TypeError):
+ def __init__(self, msg, path_to_item=None, valid_classes=None,
+ key_type=None):
+ """ Raises an exception for TypeErrors
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list): a list of keys an indices to get to the
+ current_item
+ None if unset
+ valid_classes (tuple): the primitive classes that current item
+ should be an instance of
+ None if unset
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a list
+ None if unset
+ """
+ self.path_to_item = path_to_item
+ self.valid_classes = valid_classes
+ self.key_type = key_type
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiTypeError, self).__init__(full_msg)
+
+
+class ApiValueError(OpenApiException, ValueError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (list) the path to the exception in the
+ received_data dict. None if unset
+ """
+
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiValueError, self).__init__(full_msg)
+
+
+class ApiAttributeError(OpenApiException, AttributeError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Raised when an attribute reference or assignment fails.
+
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiAttributeError, self).__init__(full_msg)
+
+
+class ApiKeyError(OpenApiException, KeyError):
+ def __init__(self, msg, path_to_item=None):
+ """
+ Args:
+ msg (str): the exception message
+
+ Keyword Args:
+ path_to_item (None/list) the path to the exception in the
+ received_data dict
+ """
+ self.path_to_item = path_to_item
+ full_msg = msg
+ if path_to_item:
+ full_msg = "{0} at {1}".format(msg, render_path(path_to_item))
+ super(ApiKeyError, self).__init__(full_msg)
+
+
+class ApiException(OpenApiException):
+
+ def __init__(self, status=None, reason=None, api_response: 'openapi_client.api_client.ApiResponse' = None):
+ if api_response:
+ self.status = api_response.response.status
+ self.reason = api_response.response.reason
+ self.body = api_response.response.data
+ self.headers = api_response.response.getheaders()
+ else:
+ self.status = status
+ self.reason = reason
+ self.body = None
+ self.headers = None
+
+ def __str__(self):
+ """Custom error messages for exception"""
+ error_message = "({0})\n"\
+ "Reason: {1}\n".format(self.status, self.reason)
+ if self.headers:
+ error_message += "HTTP response headers: {0}\n".format(
+ self.headers)
+
+ if self.body:
+ error_message += "HTTP response body: {0}\n".format(self.body)
+
+ return error_message
+
+
+def render_path(path_to_item):
+ """Returns a string representation of a path"""
+ result = ""
+ for pth in path_to_item:
+ if isinstance(pth, int):
+ result += "[{0}]".format(pth)
+ else:
+ result += "['{0}']".format(pth)
+ return result
diff --git a/dreamkast_api/openapi_client/model/__init__.py b/dreamkast_api/openapi_client/model/__init__.py
new file mode 100644
index 0000000..b9db195
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/__init__.py
@@ -0,0 +1,5 @@
+# we can not import model classes here because that would create a circular
+# reference which would not work in python2
+# do not import all models into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all models from one package, import them with
+# from openapi_client.models import ModelA, ModelB
diff --git a/dreamkast_api/openapi_client/model/booth.py b/dreamkast_api/openapi_client/model/booth.py
new file mode 100644
index 0000000..c73d520
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/booth.py
@@ -0,0 +1,319 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Booth(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "pdfUrls",
+ "sponsorId",
+ "vimeoUrl",
+ "miroUrl",
+ "sponsorName",
+ "description",
+ "id",
+ "published",
+ "text",
+ "abbr",
+ "keyImageUrls",
+ "logoUrl",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ sponsorId = schemas.NumberSchema
+ sponsorName = schemas.StrSchema
+ published = schemas.BoolSchema
+ description = schemas.StrSchema
+ abbr = schemas.StrSchema
+ text = schemas.StrSchema
+ logoUrl = schemas.StrSchema
+ vimeoUrl = schemas.StrSchema
+ miroUrl = schemas.StrSchema
+
+
+ class pdfUrls(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+
+
+ class items(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ url = schemas.StrSchema
+ title = schemas.StrSchema
+ __annotations__ = {
+ "url": url,
+ "title": title,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["title"]) -> MetaOapg.properties.title: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["url", "title", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> typing.Union[MetaOapg.properties.url, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["title"]) -> typing.Union[MetaOapg.properties.title, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["url", "title", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ url: typing.Union[MetaOapg.properties.url, str, schemas.Unset] = schemas.unset,
+ title: typing.Union[MetaOapg.properties.title, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'items':
+ return super().__new__(
+ cls,
+ *args,
+ url=url,
+ title=title,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'pdfUrls':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+
+
+ class keyImageUrls(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+ items = schemas.StrSchema
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, ]], typing.List[typing.Union[MetaOapg.items, str, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'keyImageUrls':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+ url = schemas.StrSchema
+ __annotations__ = {
+ "id": id,
+ "sponsorId": sponsorId,
+ "sponsorName": sponsorName,
+ "published": published,
+ "description": description,
+ "abbr": abbr,
+ "text": text,
+ "logoUrl": logoUrl,
+ "vimeoUrl": vimeoUrl,
+ "miroUrl": miroUrl,
+ "pdfUrls": pdfUrls,
+ "keyImageUrls": keyImageUrls,
+ "url": url,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ pdfUrls: MetaOapg.properties.pdfUrls
+ sponsorId: MetaOapg.properties.sponsorId
+ vimeoUrl: MetaOapg.properties.vimeoUrl
+ miroUrl: MetaOapg.properties.miroUrl
+ sponsorName: MetaOapg.properties.sponsorName
+ description: MetaOapg.properties.description
+ id: MetaOapg.properties.id
+ published: MetaOapg.properties.published
+ text: MetaOapg.properties.text
+ abbr: MetaOapg.properties.abbr
+ keyImageUrls: MetaOapg.properties.keyImageUrls
+ logoUrl: MetaOapg.properties.logoUrl
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["pdfUrls"]) -> MetaOapg.properties.pdfUrls: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["sponsorId"]) -> MetaOapg.properties.sponsorId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["vimeoUrl"]) -> MetaOapg.properties.vimeoUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["miroUrl"]) -> MetaOapg.properties.miroUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["sponsorName"]) -> MetaOapg.properties.sponsorName: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["description"]) -> MetaOapg.properties.description: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["published"]) -> MetaOapg.properties.published: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["text"]) -> MetaOapg.properties.text: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["keyImageUrls"]) -> MetaOapg.properties.keyImageUrls: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["logoUrl"]) -> MetaOapg.properties.logoUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["pdfUrls"], typing_extensions.Literal["sponsorId"], typing_extensions.Literal["vimeoUrl"], typing_extensions.Literal["miroUrl"], typing_extensions.Literal["sponsorName"], typing_extensions.Literal["description"], typing_extensions.Literal["id"], typing_extensions.Literal["published"], typing_extensions.Literal["text"], typing_extensions.Literal["abbr"], typing_extensions.Literal["keyImageUrls"], typing_extensions.Literal["logoUrl"], typing_extensions.Literal["url"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["pdfUrls"]) -> MetaOapg.properties.pdfUrls: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["sponsorId"]) -> MetaOapg.properties.sponsorId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["vimeoUrl"]) -> MetaOapg.properties.vimeoUrl: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["miroUrl"]) -> MetaOapg.properties.miroUrl: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["sponsorName"]) -> MetaOapg.properties.sponsorName: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["description"]) -> MetaOapg.properties.description: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["published"]) -> MetaOapg.properties.published: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["text"]) -> MetaOapg.properties.text: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["keyImageUrls"]) -> MetaOapg.properties.keyImageUrls: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["logoUrl"]) -> MetaOapg.properties.logoUrl: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> typing.Union[MetaOapg.properties.url, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["pdfUrls"], typing_extensions.Literal["sponsorId"], typing_extensions.Literal["vimeoUrl"], typing_extensions.Literal["miroUrl"], typing_extensions.Literal["sponsorName"], typing_extensions.Literal["description"], typing_extensions.Literal["id"], typing_extensions.Literal["published"], typing_extensions.Literal["text"], typing_extensions.Literal["abbr"], typing_extensions.Literal["keyImageUrls"], typing_extensions.Literal["logoUrl"], typing_extensions.Literal["url"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ pdfUrls: typing.Union[MetaOapg.properties.pdfUrls, list, tuple, ],
+ sponsorId: typing.Union[MetaOapg.properties.sponsorId, decimal.Decimal, int, float, ],
+ vimeoUrl: typing.Union[MetaOapg.properties.vimeoUrl, str, ],
+ miroUrl: typing.Union[MetaOapg.properties.miroUrl, str, ],
+ sponsorName: typing.Union[MetaOapg.properties.sponsorName, str, ],
+ description: typing.Union[MetaOapg.properties.description, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ published: typing.Union[MetaOapg.properties.published, bool, ],
+ text: typing.Union[MetaOapg.properties.text, str, ],
+ abbr: typing.Union[MetaOapg.properties.abbr, str, ],
+ keyImageUrls: typing.Union[MetaOapg.properties.keyImageUrls, list, tuple, ],
+ logoUrl: typing.Union[MetaOapg.properties.logoUrl, str, ],
+ url: typing.Union[MetaOapg.properties.url, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Booth':
+ return super().__new__(
+ cls,
+ *args,
+ pdfUrls=pdfUrls,
+ sponsorId=sponsorId,
+ vimeoUrl=vimeoUrl,
+ miroUrl=miroUrl,
+ sponsorName=sponsorName,
+ description=description,
+ id=id,
+ published=published,
+ text=text,
+ abbr=abbr,
+ keyImageUrls=keyImageUrls,
+ logoUrl=logoUrl,
+ url=url,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/booth.pyi b/dreamkast_api/openapi_client/model/booth.pyi
new file mode 100644
index 0000000..c73d520
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/booth.pyi
@@ -0,0 +1,319 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Booth(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "pdfUrls",
+ "sponsorId",
+ "vimeoUrl",
+ "miroUrl",
+ "sponsorName",
+ "description",
+ "id",
+ "published",
+ "text",
+ "abbr",
+ "keyImageUrls",
+ "logoUrl",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ sponsorId = schemas.NumberSchema
+ sponsorName = schemas.StrSchema
+ published = schemas.BoolSchema
+ description = schemas.StrSchema
+ abbr = schemas.StrSchema
+ text = schemas.StrSchema
+ logoUrl = schemas.StrSchema
+ vimeoUrl = schemas.StrSchema
+ miroUrl = schemas.StrSchema
+
+
+ class pdfUrls(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+
+
+ class items(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ url = schemas.StrSchema
+ title = schemas.StrSchema
+ __annotations__ = {
+ "url": url,
+ "title": title,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["title"]) -> MetaOapg.properties.title: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["url", "title", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> typing.Union[MetaOapg.properties.url, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["title"]) -> typing.Union[MetaOapg.properties.title, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["url", "title", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ url: typing.Union[MetaOapg.properties.url, str, schemas.Unset] = schemas.unset,
+ title: typing.Union[MetaOapg.properties.title, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'items':
+ return super().__new__(
+ cls,
+ *args,
+ url=url,
+ title=title,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'pdfUrls':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+
+
+ class keyImageUrls(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+ items = schemas.StrSchema
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, ]], typing.List[typing.Union[MetaOapg.items, str, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'keyImageUrls':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+ url = schemas.StrSchema
+ __annotations__ = {
+ "id": id,
+ "sponsorId": sponsorId,
+ "sponsorName": sponsorName,
+ "published": published,
+ "description": description,
+ "abbr": abbr,
+ "text": text,
+ "logoUrl": logoUrl,
+ "vimeoUrl": vimeoUrl,
+ "miroUrl": miroUrl,
+ "pdfUrls": pdfUrls,
+ "keyImageUrls": keyImageUrls,
+ "url": url,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ pdfUrls: MetaOapg.properties.pdfUrls
+ sponsorId: MetaOapg.properties.sponsorId
+ vimeoUrl: MetaOapg.properties.vimeoUrl
+ miroUrl: MetaOapg.properties.miroUrl
+ sponsorName: MetaOapg.properties.sponsorName
+ description: MetaOapg.properties.description
+ id: MetaOapg.properties.id
+ published: MetaOapg.properties.published
+ text: MetaOapg.properties.text
+ abbr: MetaOapg.properties.abbr
+ keyImageUrls: MetaOapg.properties.keyImageUrls
+ logoUrl: MetaOapg.properties.logoUrl
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["pdfUrls"]) -> MetaOapg.properties.pdfUrls: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["sponsorId"]) -> MetaOapg.properties.sponsorId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["vimeoUrl"]) -> MetaOapg.properties.vimeoUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["miroUrl"]) -> MetaOapg.properties.miroUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["sponsorName"]) -> MetaOapg.properties.sponsorName: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["description"]) -> MetaOapg.properties.description: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["published"]) -> MetaOapg.properties.published: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["text"]) -> MetaOapg.properties.text: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["keyImageUrls"]) -> MetaOapg.properties.keyImageUrls: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["logoUrl"]) -> MetaOapg.properties.logoUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["pdfUrls"], typing_extensions.Literal["sponsorId"], typing_extensions.Literal["vimeoUrl"], typing_extensions.Literal["miroUrl"], typing_extensions.Literal["sponsorName"], typing_extensions.Literal["description"], typing_extensions.Literal["id"], typing_extensions.Literal["published"], typing_extensions.Literal["text"], typing_extensions.Literal["abbr"], typing_extensions.Literal["keyImageUrls"], typing_extensions.Literal["logoUrl"], typing_extensions.Literal["url"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["pdfUrls"]) -> MetaOapg.properties.pdfUrls: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["sponsorId"]) -> MetaOapg.properties.sponsorId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["vimeoUrl"]) -> MetaOapg.properties.vimeoUrl: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["miroUrl"]) -> MetaOapg.properties.miroUrl: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["sponsorName"]) -> MetaOapg.properties.sponsorName: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["description"]) -> MetaOapg.properties.description: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["published"]) -> MetaOapg.properties.published: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["text"]) -> MetaOapg.properties.text: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["keyImageUrls"]) -> MetaOapg.properties.keyImageUrls: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["logoUrl"]) -> MetaOapg.properties.logoUrl: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> typing.Union[MetaOapg.properties.url, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["pdfUrls"], typing_extensions.Literal["sponsorId"], typing_extensions.Literal["vimeoUrl"], typing_extensions.Literal["miroUrl"], typing_extensions.Literal["sponsorName"], typing_extensions.Literal["description"], typing_extensions.Literal["id"], typing_extensions.Literal["published"], typing_extensions.Literal["text"], typing_extensions.Literal["abbr"], typing_extensions.Literal["keyImageUrls"], typing_extensions.Literal["logoUrl"], typing_extensions.Literal["url"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ pdfUrls: typing.Union[MetaOapg.properties.pdfUrls, list, tuple, ],
+ sponsorId: typing.Union[MetaOapg.properties.sponsorId, decimal.Decimal, int, float, ],
+ vimeoUrl: typing.Union[MetaOapg.properties.vimeoUrl, str, ],
+ miroUrl: typing.Union[MetaOapg.properties.miroUrl, str, ],
+ sponsorName: typing.Union[MetaOapg.properties.sponsorName, str, ],
+ description: typing.Union[MetaOapg.properties.description, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ published: typing.Union[MetaOapg.properties.published, bool, ],
+ text: typing.Union[MetaOapg.properties.text, str, ],
+ abbr: typing.Union[MetaOapg.properties.abbr, str, ],
+ keyImageUrls: typing.Union[MetaOapg.properties.keyImageUrls, list, tuple, ],
+ logoUrl: typing.Union[MetaOapg.properties.logoUrl, str, ],
+ url: typing.Union[MetaOapg.properties.url, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Booth':
+ return super().__new__(
+ cls,
+ *args,
+ pdfUrls=pdfUrls,
+ sponsorId=sponsorId,
+ vimeoUrl=vimeoUrl,
+ miroUrl=miroUrl,
+ sponsorName=sponsorName,
+ description=description,
+ id=id,
+ published=published,
+ text=text,
+ abbr=abbr,
+ keyImageUrls=keyImageUrls,
+ logoUrl=logoUrl,
+ url=url,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/chat_message.py b/dreamkast_api/openapi_client/model/chat_message.py
new file mode 100644
index 0000000..7183fe2
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/chat_message.py
@@ -0,0 +1,79 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class ChatMessage(
+ schemas.ComposedBase,
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "messageType",
+ "body",
+ "roomId",
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ @classmethod
+ @functools.lru_cache()
+ def all_of(cls):
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error because the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ return [
+ ChatMessageProperties,
+ ]
+
+
+
+ def __getitem__(self, name: typing.Union[]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ def get_item_oapg(self, name: typing.Union[]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'ChatMessage':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+from openapi_client.model.chat_message_properties import ChatMessageProperties
diff --git a/dreamkast_api/openapi_client/model/chat_message.pyi b/dreamkast_api/openapi_client/model/chat_message.pyi
new file mode 100644
index 0000000..7183fe2
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/chat_message.pyi
@@ -0,0 +1,79 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class ChatMessage(
+ schemas.ComposedBase,
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "messageType",
+ "body",
+ "roomId",
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ @classmethod
+ @functools.lru_cache()
+ def all_of(cls):
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error because the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ return [
+ ChatMessageProperties,
+ ]
+
+
+
+ def __getitem__(self, name: typing.Union[]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ def get_item_oapg(self, name: typing.Union[]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'ChatMessage':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+from openapi_client.model.chat_message_properties import ChatMessageProperties
diff --git a/dreamkast_api/openapi_client/model/chat_message_properties.py b/dreamkast_api/openapi_client/model/chat_message_properties.py
new file mode 100644
index 0000000..8208af6
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/chat_message_properties.py
@@ -0,0 +1,226 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class ChatMessageProperties(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ profileId = schemas.NumberSchema
+
+
+ class speakerId(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'speakerId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ eventAbbr = schemas.StrSchema
+ roomId = schemas.NumberSchema
+ roomType = schemas.StrSchema
+ body = schemas.StrSchema
+ createdAt = schemas.StrSchema
+
+
+ class messageType(
+ schemas.EnumBase,
+ schemas.StrSchema
+ ):
+
+
+ class MetaOapg:
+ enum_value_to_name = {
+ "chat": "CHAT",
+ "qa": "QA",
+ }
+
+ @schemas.classproperty
+ def CHAT(cls):
+ return cls("chat")
+
+ @schemas.classproperty
+ def QA(cls):
+ return cls("qa")
+
+
+ class replyTo(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'replyTo':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ __annotations__ = {
+ "id": id,
+ "profileId": profileId,
+ "speakerId": speakerId,
+ "eventAbbr": eventAbbr,
+ "roomId": roomId,
+ "roomType": roomType,
+ "body": body,
+ "createdAt": createdAt,
+ "messageType": messageType,
+ "replyTo": replyTo,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["profileId"]) -> MetaOapg.properties.profileId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["speakerId"]) -> MetaOapg.properties.speakerId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["eventAbbr"]) -> MetaOapg.properties.eventAbbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["roomId"]) -> MetaOapg.properties.roomId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["roomType"]) -> MetaOapg.properties.roomType: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["body"]) -> MetaOapg.properties.body: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["createdAt"]) -> MetaOapg.properties.createdAt: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["messageType"]) -> MetaOapg.properties.messageType: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["replyTo"]) -> MetaOapg.properties.replyTo: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "profileId", "speakerId", "eventAbbr", "roomId", "roomType", "body", "createdAt", "messageType", "replyTo", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["profileId"]) -> typing.Union[MetaOapg.properties.profileId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["speakerId"]) -> typing.Union[MetaOapg.properties.speakerId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["eventAbbr"]) -> typing.Union[MetaOapg.properties.eventAbbr, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["roomId"]) -> typing.Union[MetaOapg.properties.roomId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["roomType"]) -> typing.Union[MetaOapg.properties.roomType, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["body"]) -> typing.Union[MetaOapg.properties.body, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["createdAt"]) -> typing.Union[MetaOapg.properties.createdAt, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["messageType"]) -> typing.Union[MetaOapg.properties.messageType, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["replyTo"]) -> typing.Union[MetaOapg.properties.replyTo, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "profileId", "speakerId", "eventAbbr", "roomId", "roomType", "body", "createdAt", "messageType", "replyTo", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ profileId: typing.Union[MetaOapg.properties.profileId, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ speakerId: typing.Union[MetaOapg.properties.speakerId, None, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ eventAbbr: typing.Union[MetaOapg.properties.eventAbbr, str, schemas.Unset] = schemas.unset,
+ roomId: typing.Union[MetaOapg.properties.roomId, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ roomType: typing.Union[MetaOapg.properties.roomType, str, schemas.Unset] = schemas.unset,
+ body: typing.Union[MetaOapg.properties.body, str, schemas.Unset] = schemas.unset,
+ createdAt: typing.Union[MetaOapg.properties.createdAt, str, schemas.Unset] = schemas.unset,
+ messageType: typing.Union[MetaOapg.properties.messageType, str, schemas.Unset] = schemas.unset,
+ replyTo: typing.Union[MetaOapg.properties.replyTo, None, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'ChatMessageProperties':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ profileId=profileId,
+ speakerId=speakerId,
+ eventAbbr=eventAbbr,
+ roomId=roomId,
+ roomType=roomType,
+ body=body,
+ createdAt=createdAt,
+ messageType=messageType,
+ replyTo=replyTo,
+ _configuration=_configuration,
+ **kwargs,
+ )
diff --git a/dreamkast_api/openapi_client/model/chat_message_properties.pyi b/dreamkast_api/openapi_client/model/chat_message_properties.pyi
new file mode 100644
index 0000000..a0e0c21
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/chat_message_properties.pyi
@@ -0,0 +1,219 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class ChatMessageProperties(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ profileId = schemas.NumberSchema
+
+
+ class speakerId(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'speakerId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ eventAbbr = schemas.StrSchema
+ roomId = schemas.NumberSchema
+ roomType = schemas.StrSchema
+ body = schemas.StrSchema
+ createdAt = schemas.StrSchema
+
+
+ class messageType(
+ schemas.EnumBase,
+ schemas.StrSchema
+ ):
+
+ @schemas.classproperty
+ def CHAT(cls):
+ return cls("chat")
+
+ @schemas.classproperty
+ def QA(cls):
+ return cls("qa")
+
+
+ class replyTo(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'replyTo':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ __annotations__ = {
+ "id": id,
+ "profileId": profileId,
+ "speakerId": speakerId,
+ "eventAbbr": eventAbbr,
+ "roomId": roomId,
+ "roomType": roomType,
+ "body": body,
+ "createdAt": createdAt,
+ "messageType": messageType,
+ "replyTo": replyTo,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["profileId"]) -> MetaOapg.properties.profileId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["speakerId"]) -> MetaOapg.properties.speakerId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["eventAbbr"]) -> MetaOapg.properties.eventAbbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["roomId"]) -> MetaOapg.properties.roomId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["roomType"]) -> MetaOapg.properties.roomType: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["body"]) -> MetaOapg.properties.body: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["createdAt"]) -> MetaOapg.properties.createdAt: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["messageType"]) -> MetaOapg.properties.messageType: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["replyTo"]) -> MetaOapg.properties.replyTo: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "profileId", "speakerId", "eventAbbr", "roomId", "roomType", "body", "createdAt", "messageType", "replyTo", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["profileId"]) -> typing.Union[MetaOapg.properties.profileId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["speakerId"]) -> typing.Union[MetaOapg.properties.speakerId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["eventAbbr"]) -> typing.Union[MetaOapg.properties.eventAbbr, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["roomId"]) -> typing.Union[MetaOapg.properties.roomId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["roomType"]) -> typing.Union[MetaOapg.properties.roomType, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["body"]) -> typing.Union[MetaOapg.properties.body, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["createdAt"]) -> typing.Union[MetaOapg.properties.createdAt, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["messageType"]) -> typing.Union[MetaOapg.properties.messageType, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["replyTo"]) -> typing.Union[MetaOapg.properties.replyTo, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "profileId", "speakerId", "eventAbbr", "roomId", "roomType", "body", "createdAt", "messageType", "replyTo", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ profileId: typing.Union[MetaOapg.properties.profileId, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ speakerId: typing.Union[MetaOapg.properties.speakerId, None, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ eventAbbr: typing.Union[MetaOapg.properties.eventAbbr, str, schemas.Unset] = schemas.unset,
+ roomId: typing.Union[MetaOapg.properties.roomId, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ roomType: typing.Union[MetaOapg.properties.roomType, str, schemas.Unset] = schemas.unset,
+ body: typing.Union[MetaOapg.properties.body, str, schemas.Unset] = schemas.unset,
+ createdAt: typing.Union[MetaOapg.properties.createdAt, str, schemas.Unset] = schemas.unset,
+ messageType: typing.Union[MetaOapg.properties.messageType, str, schemas.Unset] = schemas.unset,
+ replyTo: typing.Union[MetaOapg.properties.replyTo, None, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'ChatMessageProperties':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ profileId=profileId,
+ speakerId=speakerId,
+ eventAbbr=eventAbbr,
+ roomId=roomId,
+ roomType=roomType,
+ body=body,
+ createdAt=createdAt,
+ messageType=messageType,
+ replyTo=replyTo,
+ _configuration=_configuration,
+ **kwargs,
+ )
diff --git a/dreamkast_api/openapi_client/model/event.py b/dreamkast_api/openapi_client/model/event.py
new file mode 100644
index 0000000..5a7c24c
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/event.py
@@ -0,0 +1,283 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Event(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "copyright",
+ "coc",
+ "privacy_policy",
+ "about",
+ "name",
+ "theme",
+ "id",
+ "abbr",
+ "privacy_policy_for_speaker",
+ "status",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+ abbr = schemas.StrSchema
+ status = schemas.StrSchema
+ theme = schemas.StrSchema
+ about = schemas.StrSchema
+ privacy_policy = schemas.StrSchema
+ privacy_policy_for_speaker = schemas.StrSchema
+ copyright = schemas.StrSchema
+ coc = schemas.StrSchema
+
+
+ class conferenceDays(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+
+
+ class items(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ date = schemas.StrSchema
+ internal = schemas.BoolSchema
+ __annotations__ = {
+ "id": id,
+ "date": date,
+ "internal": internal,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["date"]) -> MetaOapg.properties.date: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["internal"]) -> MetaOapg.properties.internal: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "date", "internal", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["date"]) -> typing.Union[MetaOapg.properties.date, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["internal"]) -> typing.Union[MetaOapg.properties.internal, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "date", "internal", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ date: typing.Union[MetaOapg.properties.date, str, schemas.Unset] = schemas.unset,
+ internal: typing.Union[MetaOapg.properties.internal, bool, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'items':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ date=date,
+ internal=internal,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'conferenceDays':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ "abbr": abbr,
+ "status": status,
+ "theme": theme,
+ "about": about,
+ "privacy_policy": privacy_policy,
+ "privacy_policy_for_speaker": privacy_policy_for_speaker,
+ "copyright": copyright,
+ "coc": coc,
+ "conferenceDays": conferenceDays,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ copyright: MetaOapg.properties.copyright
+ coc: MetaOapg.properties.coc
+ privacy_policy: MetaOapg.properties.privacy_policy
+ about: MetaOapg.properties.about
+ name: MetaOapg.properties.name
+ theme: MetaOapg.properties.theme
+ id: MetaOapg.properties.id
+ abbr: MetaOapg.properties.abbr
+ privacy_policy_for_speaker: MetaOapg.properties.privacy_policy_for_speaker
+ status: MetaOapg.properties.status
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["copyright"]) -> MetaOapg.properties.copyright: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["coc"]) -> MetaOapg.properties.coc: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["privacy_policy"]) -> MetaOapg.properties.privacy_policy: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["about"]) -> MetaOapg.properties.about: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["theme"]) -> MetaOapg.properties.theme: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["privacy_policy_for_speaker"]) -> MetaOapg.properties.privacy_policy_for_speaker: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceDays"]) -> MetaOapg.properties.conferenceDays: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["copyright"], typing_extensions.Literal["coc"], typing_extensions.Literal["privacy_policy"], typing_extensions.Literal["about"], typing_extensions.Literal["name"], typing_extensions.Literal["theme"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["privacy_policy_for_speaker"], typing_extensions.Literal["status"], typing_extensions.Literal["conferenceDays"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["copyright"]) -> MetaOapg.properties.copyright: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["coc"]) -> MetaOapg.properties.coc: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["privacy_policy"]) -> MetaOapg.properties.privacy_policy: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["about"]) -> MetaOapg.properties.about: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["theme"]) -> MetaOapg.properties.theme: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["privacy_policy_for_speaker"]) -> MetaOapg.properties.privacy_policy_for_speaker: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceDays"]) -> typing.Union[MetaOapg.properties.conferenceDays, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["copyright"], typing_extensions.Literal["coc"], typing_extensions.Literal["privacy_policy"], typing_extensions.Literal["about"], typing_extensions.Literal["name"], typing_extensions.Literal["theme"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["privacy_policy_for_speaker"], typing_extensions.Literal["status"], typing_extensions.Literal["conferenceDays"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ copyright: typing.Union[MetaOapg.properties.copyright, str, ],
+ coc: typing.Union[MetaOapg.properties.coc, str, ],
+ privacy_policy: typing.Union[MetaOapg.properties.privacy_policy, str, ],
+ about: typing.Union[MetaOapg.properties.about, str, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ theme: typing.Union[MetaOapg.properties.theme, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ abbr: typing.Union[MetaOapg.properties.abbr, str, ],
+ privacy_policy_for_speaker: typing.Union[MetaOapg.properties.privacy_policy_for_speaker, str, ],
+ status: typing.Union[MetaOapg.properties.status, str, ],
+ conferenceDays: typing.Union[MetaOapg.properties.conferenceDays, list, tuple, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Event':
+ return super().__new__(
+ cls,
+ *args,
+ copyright=copyright,
+ coc=coc,
+ privacy_policy=privacy_policy,
+ about=about,
+ name=name,
+ theme=theme,
+ id=id,
+ abbr=abbr,
+ privacy_policy_for_speaker=privacy_policy_for_speaker,
+ status=status,
+ conferenceDays=conferenceDays,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/event.pyi b/dreamkast_api/openapi_client/model/event.pyi
new file mode 100644
index 0000000..5a7c24c
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/event.pyi
@@ -0,0 +1,283 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Event(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "copyright",
+ "coc",
+ "privacy_policy",
+ "about",
+ "name",
+ "theme",
+ "id",
+ "abbr",
+ "privacy_policy_for_speaker",
+ "status",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+ abbr = schemas.StrSchema
+ status = schemas.StrSchema
+ theme = schemas.StrSchema
+ about = schemas.StrSchema
+ privacy_policy = schemas.StrSchema
+ privacy_policy_for_speaker = schemas.StrSchema
+ copyright = schemas.StrSchema
+ coc = schemas.StrSchema
+
+
+ class conferenceDays(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+
+
+ class items(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ date = schemas.StrSchema
+ internal = schemas.BoolSchema
+ __annotations__ = {
+ "id": id,
+ "date": date,
+ "internal": internal,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["date"]) -> MetaOapg.properties.date: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["internal"]) -> MetaOapg.properties.internal: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "date", "internal", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["date"]) -> typing.Union[MetaOapg.properties.date, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["internal"]) -> typing.Union[MetaOapg.properties.internal, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "date", "internal", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ date: typing.Union[MetaOapg.properties.date, str, schemas.Unset] = schemas.unset,
+ internal: typing.Union[MetaOapg.properties.internal, bool, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'items':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ date=date,
+ internal=internal,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'conferenceDays':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ "abbr": abbr,
+ "status": status,
+ "theme": theme,
+ "about": about,
+ "privacy_policy": privacy_policy,
+ "privacy_policy_for_speaker": privacy_policy_for_speaker,
+ "copyright": copyright,
+ "coc": coc,
+ "conferenceDays": conferenceDays,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ copyright: MetaOapg.properties.copyright
+ coc: MetaOapg.properties.coc
+ privacy_policy: MetaOapg.properties.privacy_policy
+ about: MetaOapg.properties.about
+ name: MetaOapg.properties.name
+ theme: MetaOapg.properties.theme
+ id: MetaOapg.properties.id
+ abbr: MetaOapg.properties.abbr
+ privacy_policy_for_speaker: MetaOapg.properties.privacy_policy_for_speaker
+ status: MetaOapg.properties.status
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["copyright"]) -> MetaOapg.properties.copyright: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["coc"]) -> MetaOapg.properties.coc: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["privacy_policy"]) -> MetaOapg.properties.privacy_policy: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["about"]) -> MetaOapg.properties.about: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["theme"]) -> MetaOapg.properties.theme: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["privacy_policy_for_speaker"]) -> MetaOapg.properties.privacy_policy_for_speaker: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceDays"]) -> MetaOapg.properties.conferenceDays: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["copyright"], typing_extensions.Literal["coc"], typing_extensions.Literal["privacy_policy"], typing_extensions.Literal["about"], typing_extensions.Literal["name"], typing_extensions.Literal["theme"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["privacy_policy_for_speaker"], typing_extensions.Literal["status"], typing_extensions.Literal["conferenceDays"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["copyright"]) -> MetaOapg.properties.copyright: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["coc"]) -> MetaOapg.properties.coc: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["privacy_policy"]) -> MetaOapg.properties.privacy_policy: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["about"]) -> MetaOapg.properties.about: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["theme"]) -> MetaOapg.properties.theme: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["privacy_policy_for_speaker"]) -> MetaOapg.properties.privacy_policy_for_speaker: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceDays"]) -> typing.Union[MetaOapg.properties.conferenceDays, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["copyright"], typing_extensions.Literal["coc"], typing_extensions.Literal["privacy_policy"], typing_extensions.Literal["about"], typing_extensions.Literal["name"], typing_extensions.Literal["theme"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["privacy_policy_for_speaker"], typing_extensions.Literal["status"], typing_extensions.Literal["conferenceDays"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ copyright: typing.Union[MetaOapg.properties.copyright, str, ],
+ coc: typing.Union[MetaOapg.properties.coc, str, ],
+ privacy_policy: typing.Union[MetaOapg.properties.privacy_policy, str, ],
+ about: typing.Union[MetaOapg.properties.about, str, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ theme: typing.Union[MetaOapg.properties.theme, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ abbr: typing.Union[MetaOapg.properties.abbr, str, ],
+ privacy_policy_for_speaker: typing.Union[MetaOapg.properties.privacy_policy_for_speaker, str, ],
+ status: typing.Union[MetaOapg.properties.status, str, ],
+ conferenceDays: typing.Union[MetaOapg.properties.conferenceDays, list, tuple, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Event':
+ return super().__new__(
+ cls,
+ *args,
+ copyright=copyright,
+ coc=coc,
+ privacy_policy=privacy_policy,
+ about=about,
+ name=name,
+ theme=theme,
+ id=id,
+ abbr=abbr,
+ privacy_policy_for_speaker=privacy_policy_for_speaker,
+ status=status,
+ conferenceDays=conferenceDays,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/profile.py b/dreamkast_api/openapi_client/model/profile.py
new file mode 100644
index 0000000..c8dcd71
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/profile.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Profile(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "name",
+ "id",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ }
+
+ name: MetaOapg.properties.name
+ id: MetaOapg.properties.id
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'Profile':
+ return super().__new__(
+ cls,
+ *args,
+ name=name,
+ id=id,
+ _configuration=_configuration,
+ **kwargs,
+ )
diff --git a/dreamkast_api/openapi_client/model/profile.pyi b/dreamkast_api/openapi_client/model/profile.pyi
new file mode 100644
index 0000000..c8dcd71
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/profile.pyi
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Profile(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "name",
+ "id",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ }
+
+ name: MetaOapg.properties.name
+ id: MetaOapg.properties.id
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'Profile':
+ return super().__new__(
+ cls,
+ *args,
+ name=name,
+ id=id,
+ _configuration=_configuration,
+ **kwargs,
+ )
diff --git a/dreamkast_api/openapi_client/model/sponsor.py b/dreamkast_api/openapi_client/model/sponsor.py
new file mode 100644
index 0000000..db70e0c
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/sponsor.py
@@ -0,0 +1,235 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Sponsor(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "logo_url",
+ "name",
+ "id",
+ "abbr",
+ "eventAbbr",
+ "url",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ eventAbbr = schemas.StrSchema
+ name = schemas.StrSchema
+ abbr = schemas.StrSchema
+ url = schemas.StrSchema
+ logo_url = schemas.StrSchema
+
+
+ class sponsorType(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+ items = schemas.StrSchema
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, ]], typing.List[typing.Union[MetaOapg.items, str, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'sponsorType':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+
+
+ class booth(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ opened = schemas.BoolSchema
+ __annotations__ = {
+ "id": id,
+ "opened": opened,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["opened"]) -> MetaOapg.properties.opened: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "opened", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["opened"]) -> typing.Union[MetaOapg.properties.opened, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "opened", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ opened: typing.Union[MetaOapg.properties.opened, bool, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'booth':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ opened=opened,
+ _configuration=_configuration,
+ **kwargs,
+ )
+ __annotations__ = {
+ "id": id,
+ "eventAbbr": eventAbbr,
+ "name": name,
+ "abbr": abbr,
+ "url": url,
+ "logo_url": logo_url,
+ "sponsorType": sponsorType,
+ "booth": booth,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ logo_url: MetaOapg.properties.logo_url
+ name: MetaOapg.properties.name
+ id: MetaOapg.properties.id
+ abbr: MetaOapg.properties.abbr
+ eventAbbr: MetaOapg.properties.eventAbbr
+ url: MetaOapg.properties.url
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["logo_url"]) -> MetaOapg.properties.logo_url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["eventAbbr"]) -> MetaOapg.properties.eventAbbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["sponsorType"]) -> MetaOapg.properties.sponsorType: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["booth"]) -> MetaOapg.properties.booth: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["logo_url"], typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["eventAbbr"], typing_extensions.Literal["url"], typing_extensions.Literal["sponsorType"], typing_extensions.Literal["booth"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["logo_url"]) -> MetaOapg.properties.logo_url: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["eventAbbr"]) -> MetaOapg.properties.eventAbbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["sponsorType"]) -> typing.Union[MetaOapg.properties.sponsorType, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["booth"]) -> typing.Union[MetaOapg.properties.booth, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["logo_url"], typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["eventAbbr"], typing_extensions.Literal["url"], typing_extensions.Literal["sponsorType"], typing_extensions.Literal["booth"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ logo_url: typing.Union[MetaOapg.properties.logo_url, str, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ abbr: typing.Union[MetaOapg.properties.abbr, str, ],
+ eventAbbr: typing.Union[MetaOapg.properties.eventAbbr, str, ],
+ url: typing.Union[MetaOapg.properties.url, str, ],
+ sponsorType: typing.Union[MetaOapg.properties.sponsorType, list, tuple, schemas.Unset] = schemas.unset,
+ booth: typing.Union[MetaOapg.properties.booth, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Sponsor':
+ return super().__new__(
+ cls,
+ *args,
+ logo_url=logo_url,
+ name=name,
+ id=id,
+ abbr=abbr,
+ eventAbbr=eventAbbr,
+ url=url,
+ sponsorType=sponsorType,
+ booth=booth,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/sponsor.pyi b/dreamkast_api/openapi_client/model/sponsor.pyi
new file mode 100644
index 0000000..db70e0c
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/sponsor.pyi
@@ -0,0 +1,235 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Sponsor(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "logo_url",
+ "name",
+ "id",
+ "abbr",
+ "eventAbbr",
+ "url",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ eventAbbr = schemas.StrSchema
+ name = schemas.StrSchema
+ abbr = schemas.StrSchema
+ url = schemas.StrSchema
+ logo_url = schemas.StrSchema
+
+
+ class sponsorType(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+ items = schemas.StrSchema
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, str, ]], typing.List[typing.Union[MetaOapg.items, str, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'sponsorType':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+
+
+ class booth(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ opened = schemas.BoolSchema
+ __annotations__ = {
+ "id": id,
+ "opened": opened,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["opened"]) -> MetaOapg.properties.opened: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "opened", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["opened"]) -> typing.Union[MetaOapg.properties.opened, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "opened", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ opened: typing.Union[MetaOapg.properties.opened, bool, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'booth':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ opened=opened,
+ _configuration=_configuration,
+ **kwargs,
+ )
+ __annotations__ = {
+ "id": id,
+ "eventAbbr": eventAbbr,
+ "name": name,
+ "abbr": abbr,
+ "url": url,
+ "logo_url": logo_url,
+ "sponsorType": sponsorType,
+ "booth": booth,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ logo_url: MetaOapg.properties.logo_url
+ name: MetaOapg.properties.name
+ id: MetaOapg.properties.id
+ abbr: MetaOapg.properties.abbr
+ eventAbbr: MetaOapg.properties.eventAbbr
+ url: MetaOapg.properties.url
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["logo_url"]) -> MetaOapg.properties.logo_url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["eventAbbr"]) -> MetaOapg.properties.eventAbbr: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["sponsorType"]) -> MetaOapg.properties.sponsorType: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["booth"]) -> MetaOapg.properties.booth: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["logo_url"], typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["eventAbbr"], typing_extensions.Literal["url"], typing_extensions.Literal["sponsorType"], typing_extensions.Literal["booth"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["logo_url"]) -> MetaOapg.properties.logo_url: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abbr"]) -> MetaOapg.properties.abbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["eventAbbr"]) -> MetaOapg.properties.eventAbbr: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["sponsorType"]) -> typing.Union[MetaOapg.properties.sponsorType, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["booth"]) -> typing.Union[MetaOapg.properties.booth, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["logo_url"], typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["abbr"], typing_extensions.Literal["eventAbbr"], typing_extensions.Literal["url"], typing_extensions.Literal["sponsorType"], typing_extensions.Literal["booth"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ logo_url: typing.Union[MetaOapg.properties.logo_url, str, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ abbr: typing.Union[MetaOapg.properties.abbr, str, ],
+ eventAbbr: typing.Union[MetaOapg.properties.eventAbbr, str, ],
+ url: typing.Union[MetaOapg.properties.url, str, ],
+ sponsorType: typing.Union[MetaOapg.properties.sponsorType, list, tuple, schemas.Unset] = schemas.unset,
+ booth: typing.Union[MetaOapg.properties.booth, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Sponsor':
+ return super().__new__(
+ cls,
+ *args,
+ logo_url=logo_url,
+ name=name,
+ id=id,
+ abbr=abbr,
+ eventAbbr=eventAbbr,
+ url=url,
+ sponsorType=sponsorType,
+ booth=booth,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/talk.py b/dreamkast_api/openapi_client/model/talk.py
new file mode 100644
index 0000000..dac2cee
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/talk.py
@@ -0,0 +1,490 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Talk(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "trackId",
+ "videoId",
+ "abstract",
+ "talkDifficulty",
+ "title",
+ "talkCategory",
+ "showOnTimetable",
+ "speakers",
+ "dayId",
+ "startTime",
+ "endTime",
+ "id",
+ "talkDuration",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ trackId = schemas.NumberSchema
+ videoId = schemas.StrSchema
+ title = schemas.StrSchema
+ abstract = schemas.StrSchema
+
+
+ class speakers(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+
+
+ class items(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> typing.Union[MetaOapg.properties.name, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ name: typing.Union[MetaOapg.properties.name, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'items':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ name=name,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'speakers':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+
+
+ class dayId(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'dayId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ showOnTimetable = schemas.BoolSchema
+ startTime = schemas.StrSchema
+ endTime = schemas.StrSchema
+ talkDuration = schemas.NumberSchema
+ talkDifficulty = schemas.StrSchema
+ talkCategory = schemas.StrSchema
+ conferenceId = schemas.NumberSchema
+ videoPlatform = schemas.StrSchema
+ onAir = schemas.BoolSchema
+ documentUrl = schemas.StrSchema
+
+
+ class conferenceDayId(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'conferenceDayId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class conferenceDayDate(
+ schemas.DateBase,
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ class MetaOapg:
+ format = 'date'
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, date, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'conferenceDayDate':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ startOffset = schemas.NumberSchema
+ endOffset = schemas.NumberSchema
+ actualStartTime = schemas.StrSchema
+ actualEndTime = schemas.StrSchema
+
+
+ class presentationMethod(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'presentationMethod':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ __annotations__ = {
+ "id": id,
+ "trackId": trackId,
+ "videoId": videoId,
+ "title": title,
+ "abstract": abstract,
+ "speakers": speakers,
+ "dayId": dayId,
+ "showOnTimetable": showOnTimetable,
+ "startTime": startTime,
+ "endTime": endTime,
+ "talkDuration": talkDuration,
+ "talkDifficulty": talkDifficulty,
+ "talkCategory": talkCategory,
+ "conferenceId": conferenceId,
+ "videoPlatform": videoPlatform,
+ "onAir": onAir,
+ "documentUrl": documentUrl,
+ "conferenceDayId": conferenceDayId,
+ "conferenceDayDate": conferenceDayDate,
+ "startOffset": startOffset,
+ "endOffset": endOffset,
+ "actualStartTime": actualStartTime,
+ "actualEndTime": actualEndTime,
+ "presentationMethod": presentationMethod,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ trackId: MetaOapg.properties.trackId
+ videoId: MetaOapg.properties.videoId
+ abstract: MetaOapg.properties.abstract
+ talkDifficulty: MetaOapg.properties.talkDifficulty
+ title: MetaOapg.properties.title
+ talkCategory: MetaOapg.properties.talkCategory
+ showOnTimetable: MetaOapg.properties.showOnTimetable
+ speakers: MetaOapg.properties.speakers
+ dayId: MetaOapg.properties.dayId
+ startTime: MetaOapg.properties.startTime
+ endTime: MetaOapg.properties.endTime
+ id: MetaOapg.properties.id
+ talkDuration: MetaOapg.properties.talkDuration
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["trackId"]) -> MetaOapg.properties.trackId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoId"]) -> MetaOapg.properties.videoId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abstract"]) -> MetaOapg.properties.abstract: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talkDifficulty"]) -> MetaOapg.properties.talkDifficulty: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["title"]) -> MetaOapg.properties.title: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talkCategory"]) -> MetaOapg.properties.talkCategory: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["showOnTimetable"]) -> MetaOapg.properties.showOnTimetable: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["speakers"]) -> MetaOapg.properties.speakers: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["dayId"]) -> MetaOapg.properties.dayId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["startTime"]) -> MetaOapg.properties.startTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["endTime"]) -> MetaOapg.properties.endTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talkDuration"]) -> MetaOapg.properties.talkDuration: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceId"]) -> MetaOapg.properties.conferenceId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoPlatform"]) -> MetaOapg.properties.videoPlatform: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["onAir"]) -> MetaOapg.properties.onAir: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["documentUrl"]) -> MetaOapg.properties.documentUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceDayId"]) -> MetaOapg.properties.conferenceDayId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceDayDate"]) -> MetaOapg.properties.conferenceDayDate: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["startOffset"]) -> MetaOapg.properties.startOffset: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["endOffset"]) -> MetaOapg.properties.endOffset: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["actualStartTime"]) -> MetaOapg.properties.actualStartTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["actualEndTime"]) -> MetaOapg.properties.actualEndTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["presentationMethod"]) -> MetaOapg.properties.presentationMethod: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["trackId"], typing_extensions.Literal["videoId"], typing_extensions.Literal["abstract"], typing_extensions.Literal["talkDifficulty"], typing_extensions.Literal["title"], typing_extensions.Literal["talkCategory"], typing_extensions.Literal["showOnTimetable"], typing_extensions.Literal["speakers"], typing_extensions.Literal["dayId"], typing_extensions.Literal["startTime"], typing_extensions.Literal["endTime"], typing_extensions.Literal["id"], typing_extensions.Literal["talkDuration"], typing_extensions.Literal["conferenceId"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["onAir"], typing_extensions.Literal["documentUrl"], typing_extensions.Literal["conferenceDayId"], typing_extensions.Literal["conferenceDayDate"], typing_extensions.Literal["startOffset"], typing_extensions.Literal["endOffset"], typing_extensions.Literal["actualStartTime"], typing_extensions.Literal["actualEndTime"], typing_extensions.Literal["presentationMethod"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["trackId"]) -> MetaOapg.properties.trackId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoId"]) -> MetaOapg.properties.videoId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abstract"]) -> MetaOapg.properties.abstract: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talkDifficulty"]) -> MetaOapg.properties.talkDifficulty: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["title"]) -> MetaOapg.properties.title: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talkCategory"]) -> MetaOapg.properties.talkCategory: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["showOnTimetable"]) -> MetaOapg.properties.showOnTimetable: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["speakers"]) -> MetaOapg.properties.speakers: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["dayId"]) -> MetaOapg.properties.dayId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["startTime"]) -> MetaOapg.properties.startTime: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["endTime"]) -> MetaOapg.properties.endTime: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talkDuration"]) -> MetaOapg.properties.talkDuration: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceId"]) -> typing.Union[MetaOapg.properties.conferenceId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoPlatform"]) -> typing.Union[MetaOapg.properties.videoPlatform, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["onAir"]) -> typing.Union[MetaOapg.properties.onAir, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["documentUrl"]) -> typing.Union[MetaOapg.properties.documentUrl, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceDayId"]) -> typing.Union[MetaOapg.properties.conferenceDayId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceDayDate"]) -> typing.Union[MetaOapg.properties.conferenceDayDate, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["startOffset"]) -> typing.Union[MetaOapg.properties.startOffset, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["endOffset"]) -> typing.Union[MetaOapg.properties.endOffset, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["actualStartTime"]) -> typing.Union[MetaOapg.properties.actualStartTime, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["actualEndTime"]) -> typing.Union[MetaOapg.properties.actualEndTime, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["presentationMethod"]) -> typing.Union[MetaOapg.properties.presentationMethod, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["trackId"], typing_extensions.Literal["videoId"], typing_extensions.Literal["abstract"], typing_extensions.Literal["talkDifficulty"], typing_extensions.Literal["title"], typing_extensions.Literal["talkCategory"], typing_extensions.Literal["showOnTimetable"], typing_extensions.Literal["speakers"], typing_extensions.Literal["dayId"], typing_extensions.Literal["startTime"], typing_extensions.Literal["endTime"], typing_extensions.Literal["id"], typing_extensions.Literal["talkDuration"], typing_extensions.Literal["conferenceId"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["onAir"], typing_extensions.Literal["documentUrl"], typing_extensions.Literal["conferenceDayId"], typing_extensions.Literal["conferenceDayDate"], typing_extensions.Literal["startOffset"], typing_extensions.Literal["endOffset"], typing_extensions.Literal["actualStartTime"], typing_extensions.Literal["actualEndTime"], typing_extensions.Literal["presentationMethod"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ trackId: typing.Union[MetaOapg.properties.trackId, decimal.Decimal, int, float, ],
+ videoId: typing.Union[MetaOapg.properties.videoId, str, ],
+ abstract: typing.Union[MetaOapg.properties.abstract, str, ],
+ talkDifficulty: typing.Union[MetaOapg.properties.talkDifficulty, str, ],
+ title: typing.Union[MetaOapg.properties.title, str, ],
+ talkCategory: typing.Union[MetaOapg.properties.talkCategory, str, ],
+ showOnTimetable: typing.Union[MetaOapg.properties.showOnTimetable, bool, ],
+ speakers: typing.Union[MetaOapg.properties.speakers, list, tuple, ],
+ dayId: typing.Union[MetaOapg.properties.dayId, None, decimal.Decimal, int, float, ],
+ startTime: typing.Union[MetaOapg.properties.startTime, str, ],
+ endTime: typing.Union[MetaOapg.properties.endTime, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ talkDuration: typing.Union[MetaOapg.properties.talkDuration, decimal.Decimal, int, float, ],
+ conferenceId: typing.Union[MetaOapg.properties.conferenceId, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ videoPlatform: typing.Union[MetaOapg.properties.videoPlatform, str, schemas.Unset] = schemas.unset,
+ onAir: typing.Union[MetaOapg.properties.onAir, bool, schemas.Unset] = schemas.unset,
+ documentUrl: typing.Union[MetaOapg.properties.documentUrl, str, schemas.Unset] = schemas.unset,
+ conferenceDayId: typing.Union[MetaOapg.properties.conferenceDayId, None, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ conferenceDayDate: typing.Union[MetaOapg.properties.conferenceDayDate, None, str, date, schemas.Unset] = schemas.unset,
+ startOffset: typing.Union[MetaOapg.properties.startOffset, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ endOffset: typing.Union[MetaOapg.properties.endOffset, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ actualStartTime: typing.Union[MetaOapg.properties.actualStartTime, str, schemas.Unset] = schemas.unset,
+ actualEndTime: typing.Union[MetaOapg.properties.actualEndTime, str, schemas.Unset] = schemas.unset,
+ presentationMethod: typing.Union[MetaOapg.properties.presentationMethod, None, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Talk':
+ return super().__new__(
+ cls,
+ *args,
+ trackId=trackId,
+ videoId=videoId,
+ abstract=abstract,
+ talkDifficulty=talkDifficulty,
+ title=title,
+ talkCategory=talkCategory,
+ showOnTimetable=showOnTimetable,
+ speakers=speakers,
+ dayId=dayId,
+ startTime=startTime,
+ endTime=endTime,
+ id=id,
+ talkDuration=talkDuration,
+ conferenceId=conferenceId,
+ videoPlatform=videoPlatform,
+ onAir=onAir,
+ documentUrl=documentUrl,
+ conferenceDayId=conferenceDayId,
+ conferenceDayDate=conferenceDayDate,
+ startOffset=startOffset,
+ endOffset=endOffset,
+ actualStartTime=actualStartTime,
+ actualEndTime=actualEndTime,
+ presentationMethod=presentationMethod,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/talk.pyi b/dreamkast_api/openapi_client/model/talk.pyi
new file mode 100644
index 0000000..dac2cee
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/talk.pyi
@@ -0,0 +1,490 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Talk(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "trackId",
+ "videoId",
+ "abstract",
+ "talkDifficulty",
+ "title",
+ "talkCategory",
+ "showOnTimetable",
+ "speakers",
+ "dayId",
+ "startTime",
+ "endTime",
+ "id",
+ "talkDuration",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ trackId = schemas.NumberSchema
+ videoId = schemas.StrSchema
+ title = schemas.StrSchema
+ abstract = schemas.StrSchema
+
+
+ class speakers(
+ schemas.ListSchema
+ ):
+
+
+ class MetaOapg:
+
+
+ class items(
+ schemas.DictSchema
+ ):
+
+
+ class MetaOapg:
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> typing.Union[MetaOapg.properties.id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> typing.Union[MetaOapg.properties.name, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["id", "name", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ name: typing.Union[MetaOapg.properties.name, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'items':
+ return super().__new__(
+ cls,
+ *args,
+ id=id,
+ name=name,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]], typing.List[typing.Union[MetaOapg.items, dict, frozendict.frozendict, ]]],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'speakers':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> MetaOapg.items:
+ return super().__getitem__(i)
+
+
+ class dayId(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'dayId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ showOnTimetable = schemas.BoolSchema
+ startTime = schemas.StrSchema
+ endTime = schemas.StrSchema
+ talkDuration = schemas.NumberSchema
+ talkDifficulty = schemas.StrSchema
+ talkCategory = schemas.StrSchema
+ conferenceId = schemas.NumberSchema
+ videoPlatform = schemas.StrSchema
+ onAir = schemas.BoolSchema
+ documentUrl = schemas.StrSchema
+
+
+ class conferenceDayId(
+ schemas.NumberBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneDecimalMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, decimal.Decimal, int, float, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'conferenceDayId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class conferenceDayDate(
+ schemas.DateBase,
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ class MetaOapg:
+ format = 'date'
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, date, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'conferenceDayDate':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ startOffset = schemas.NumberSchema
+ endOffset = schemas.NumberSchema
+ actualStartTime = schemas.StrSchema
+ actualEndTime = schemas.StrSchema
+
+
+ class presentationMethod(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'presentationMethod':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+ __annotations__ = {
+ "id": id,
+ "trackId": trackId,
+ "videoId": videoId,
+ "title": title,
+ "abstract": abstract,
+ "speakers": speakers,
+ "dayId": dayId,
+ "showOnTimetable": showOnTimetable,
+ "startTime": startTime,
+ "endTime": endTime,
+ "talkDuration": talkDuration,
+ "talkDifficulty": talkDifficulty,
+ "talkCategory": talkCategory,
+ "conferenceId": conferenceId,
+ "videoPlatform": videoPlatform,
+ "onAir": onAir,
+ "documentUrl": documentUrl,
+ "conferenceDayId": conferenceDayId,
+ "conferenceDayDate": conferenceDayDate,
+ "startOffset": startOffset,
+ "endOffset": endOffset,
+ "actualStartTime": actualStartTime,
+ "actualEndTime": actualEndTime,
+ "presentationMethod": presentationMethod,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ trackId: MetaOapg.properties.trackId
+ videoId: MetaOapg.properties.videoId
+ abstract: MetaOapg.properties.abstract
+ talkDifficulty: MetaOapg.properties.talkDifficulty
+ title: MetaOapg.properties.title
+ talkCategory: MetaOapg.properties.talkCategory
+ showOnTimetable: MetaOapg.properties.showOnTimetable
+ speakers: MetaOapg.properties.speakers
+ dayId: MetaOapg.properties.dayId
+ startTime: MetaOapg.properties.startTime
+ endTime: MetaOapg.properties.endTime
+ id: MetaOapg.properties.id
+ talkDuration: MetaOapg.properties.talkDuration
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["trackId"]) -> MetaOapg.properties.trackId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoId"]) -> MetaOapg.properties.videoId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["abstract"]) -> MetaOapg.properties.abstract: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talkDifficulty"]) -> MetaOapg.properties.talkDifficulty: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["title"]) -> MetaOapg.properties.title: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talkCategory"]) -> MetaOapg.properties.talkCategory: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["showOnTimetable"]) -> MetaOapg.properties.showOnTimetable: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["speakers"]) -> MetaOapg.properties.speakers: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["dayId"]) -> MetaOapg.properties.dayId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["startTime"]) -> MetaOapg.properties.startTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["endTime"]) -> MetaOapg.properties.endTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talkDuration"]) -> MetaOapg.properties.talkDuration: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceId"]) -> MetaOapg.properties.conferenceId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoPlatform"]) -> MetaOapg.properties.videoPlatform: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["onAir"]) -> MetaOapg.properties.onAir: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["documentUrl"]) -> MetaOapg.properties.documentUrl: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceDayId"]) -> MetaOapg.properties.conferenceDayId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conferenceDayDate"]) -> MetaOapg.properties.conferenceDayDate: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["startOffset"]) -> MetaOapg.properties.startOffset: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["endOffset"]) -> MetaOapg.properties.endOffset: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["actualStartTime"]) -> MetaOapg.properties.actualStartTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["actualEndTime"]) -> MetaOapg.properties.actualEndTime: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["presentationMethod"]) -> MetaOapg.properties.presentationMethod: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["trackId"], typing_extensions.Literal["videoId"], typing_extensions.Literal["abstract"], typing_extensions.Literal["talkDifficulty"], typing_extensions.Literal["title"], typing_extensions.Literal["talkCategory"], typing_extensions.Literal["showOnTimetable"], typing_extensions.Literal["speakers"], typing_extensions.Literal["dayId"], typing_extensions.Literal["startTime"], typing_extensions.Literal["endTime"], typing_extensions.Literal["id"], typing_extensions.Literal["talkDuration"], typing_extensions.Literal["conferenceId"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["onAir"], typing_extensions.Literal["documentUrl"], typing_extensions.Literal["conferenceDayId"], typing_extensions.Literal["conferenceDayDate"], typing_extensions.Literal["startOffset"], typing_extensions.Literal["endOffset"], typing_extensions.Literal["actualStartTime"], typing_extensions.Literal["actualEndTime"], typing_extensions.Literal["presentationMethod"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["trackId"]) -> MetaOapg.properties.trackId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoId"]) -> MetaOapg.properties.videoId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["abstract"]) -> MetaOapg.properties.abstract: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talkDifficulty"]) -> MetaOapg.properties.talkDifficulty: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["title"]) -> MetaOapg.properties.title: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talkCategory"]) -> MetaOapg.properties.talkCategory: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["showOnTimetable"]) -> MetaOapg.properties.showOnTimetable: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["speakers"]) -> MetaOapg.properties.speakers: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["dayId"]) -> MetaOapg.properties.dayId: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["startTime"]) -> MetaOapg.properties.startTime: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["endTime"]) -> MetaOapg.properties.endTime: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talkDuration"]) -> MetaOapg.properties.talkDuration: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceId"]) -> typing.Union[MetaOapg.properties.conferenceId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoPlatform"]) -> typing.Union[MetaOapg.properties.videoPlatform, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["onAir"]) -> typing.Union[MetaOapg.properties.onAir, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["documentUrl"]) -> typing.Union[MetaOapg.properties.documentUrl, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceDayId"]) -> typing.Union[MetaOapg.properties.conferenceDayId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conferenceDayDate"]) -> typing.Union[MetaOapg.properties.conferenceDayDate, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["startOffset"]) -> typing.Union[MetaOapg.properties.startOffset, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["endOffset"]) -> typing.Union[MetaOapg.properties.endOffset, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["actualStartTime"]) -> typing.Union[MetaOapg.properties.actualStartTime, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["actualEndTime"]) -> typing.Union[MetaOapg.properties.actualEndTime, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["presentationMethod"]) -> typing.Union[MetaOapg.properties.presentationMethod, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["trackId"], typing_extensions.Literal["videoId"], typing_extensions.Literal["abstract"], typing_extensions.Literal["talkDifficulty"], typing_extensions.Literal["title"], typing_extensions.Literal["talkCategory"], typing_extensions.Literal["showOnTimetable"], typing_extensions.Literal["speakers"], typing_extensions.Literal["dayId"], typing_extensions.Literal["startTime"], typing_extensions.Literal["endTime"], typing_extensions.Literal["id"], typing_extensions.Literal["talkDuration"], typing_extensions.Literal["conferenceId"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["onAir"], typing_extensions.Literal["documentUrl"], typing_extensions.Literal["conferenceDayId"], typing_extensions.Literal["conferenceDayDate"], typing_extensions.Literal["startOffset"], typing_extensions.Literal["endOffset"], typing_extensions.Literal["actualStartTime"], typing_extensions.Literal["actualEndTime"], typing_extensions.Literal["presentationMethod"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ trackId: typing.Union[MetaOapg.properties.trackId, decimal.Decimal, int, float, ],
+ videoId: typing.Union[MetaOapg.properties.videoId, str, ],
+ abstract: typing.Union[MetaOapg.properties.abstract, str, ],
+ talkDifficulty: typing.Union[MetaOapg.properties.talkDifficulty, str, ],
+ title: typing.Union[MetaOapg.properties.title, str, ],
+ talkCategory: typing.Union[MetaOapg.properties.talkCategory, str, ],
+ showOnTimetable: typing.Union[MetaOapg.properties.showOnTimetable, bool, ],
+ speakers: typing.Union[MetaOapg.properties.speakers, list, tuple, ],
+ dayId: typing.Union[MetaOapg.properties.dayId, None, decimal.Decimal, int, float, ],
+ startTime: typing.Union[MetaOapg.properties.startTime, str, ],
+ endTime: typing.Union[MetaOapg.properties.endTime, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ talkDuration: typing.Union[MetaOapg.properties.talkDuration, decimal.Decimal, int, float, ],
+ conferenceId: typing.Union[MetaOapg.properties.conferenceId, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ videoPlatform: typing.Union[MetaOapg.properties.videoPlatform, str, schemas.Unset] = schemas.unset,
+ onAir: typing.Union[MetaOapg.properties.onAir, bool, schemas.Unset] = schemas.unset,
+ documentUrl: typing.Union[MetaOapg.properties.documentUrl, str, schemas.Unset] = schemas.unset,
+ conferenceDayId: typing.Union[MetaOapg.properties.conferenceDayId, None, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ conferenceDayDate: typing.Union[MetaOapg.properties.conferenceDayDate, None, str, date, schemas.Unset] = schemas.unset,
+ startOffset: typing.Union[MetaOapg.properties.startOffset, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ endOffset: typing.Union[MetaOapg.properties.endOffset, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ actualStartTime: typing.Union[MetaOapg.properties.actualStartTime, str, schemas.Unset] = schemas.unset,
+ actualEndTime: typing.Union[MetaOapg.properties.actualEndTime, str, schemas.Unset] = schemas.unset,
+ presentationMethod: typing.Union[MetaOapg.properties.presentationMethod, None, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Talk':
+ return super().__new__(
+ cls,
+ *args,
+ trackId=trackId,
+ videoId=videoId,
+ abstract=abstract,
+ talkDifficulty=talkDifficulty,
+ title=title,
+ talkCategory=talkCategory,
+ showOnTimetable=showOnTimetable,
+ speakers=speakers,
+ dayId=dayId,
+ startTime=startTime,
+ endTime=endTime,
+ id=id,
+ talkDuration=talkDuration,
+ conferenceId=conferenceId,
+ videoPlatform=videoPlatform,
+ onAir=onAir,
+ documentUrl=documentUrl,
+ conferenceDayId=conferenceDayId,
+ conferenceDayDate=conferenceDayDate,
+ startOffset=startOffset,
+ endOffset=endOffset,
+ actualStartTime=actualStartTime,
+ actualEndTime=actualEndTime,
+ presentationMethod=presentationMethod,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/track.py b/dreamkast_api/openapi_client/model/track.py
new file mode 100644
index 0000000..3d2c2bb
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/track.py
@@ -0,0 +1,204 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Track(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "name",
+ "id",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+
+
+ class videoPlatform(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'videoPlatform':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class videoId(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'videoId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class channelArn(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'channelArn':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class onAirTalk(
+ schemas.DictBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneFrozenDictMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, None, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'onAirTalk':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ **kwargs,
+ )
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ "videoPlatform": videoPlatform,
+ "videoId": videoId,
+ "channelArn": channelArn,
+ "onAirTalk": onAirTalk,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ name: MetaOapg.properties.name
+ id: MetaOapg.properties.id
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoPlatform"]) -> MetaOapg.properties.videoPlatform: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoId"]) -> MetaOapg.properties.videoId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["channelArn"]) -> MetaOapg.properties.channelArn: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["onAirTalk"]) -> MetaOapg.properties.onAirTalk: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["videoId"], typing_extensions.Literal["channelArn"], typing_extensions.Literal["onAirTalk"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoPlatform"]) -> typing.Union[MetaOapg.properties.videoPlatform, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoId"]) -> typing.Union[MetaOapg.properties.videoId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["channelArn"]) -> typing.Union[MetaOapg.properties.channelArn, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["onAirTalk"]) -> typing.Union[MetaOapg.properties.onAirTalk, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["videoId"], typing_extensions.Literal["channelArn"], typing_extensions.Literal["onAirTalk"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ videoPlatform: typing.Union[MetaOapg.properties.videoPlatform, None, str, schemas.Unset] = schemas.unset,
+ videoId: typing.Union[MetaOapg.properties.videoId, None, str, schemas.Unset] = schemas.unset,
+ channelArn: typing.Union[MetaOapg.properties.channelArn, None, str, schemas.Unset] = schemas.unset,
+ onAirTalk: typing.Union[MetaOapg.properties.onAirTalk, dict, frozendict.frozendict, None, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Track':
+ return super().__new__(
+ cls,
+ *args,
+ name=name,
+ id=id,
+ videoPlatform=videoPlatform,
+ videoId=videoId,
+ channelArn=channelArn,
+ onAirTalk=onAirTalk,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/track.pyi b/dreamkast_api/openapi_client/model/track.pyi
new file mode 100644
index 0000000..3d2c2bb
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/track.pyi
@@ -0,0 +1,204 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class Track(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "name",
+ "id",
+ }
+
+ class properties:
+ id = schemas.NumberSchema
+ name = schemas.StrSchema
+
+
+ class videoPlatform(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'videoPlatform':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class videoId(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'videoId':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class channelArn(
+ schemas.StrBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneStrMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[None, str, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'channelArn':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+ class onAirTalk(
+ schemas.DictBase,
+ schemas.NoneBase,
+ schemas.Schema,
+ schemas.NoneFrozenDictMixin
+ ):
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, None, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'onAirTalk':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ **kwargs,
+ )
+ __annotations__ = {
+ "id": id,
+ "name": name,
+ "videoPlatform": videoPlatform,
+ "videoId": videoId,
+ "channelArn": channelArn,
+ "onAirTalk": onAirTalk,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ name: MetaOapg.properties.name
+ id: MetaOapg.properties.id
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoPlatform"]) -> MetaOapg.properties.videoPlatform: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["videoId"]) -> MetaOapg.properties.videoId: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["channelArn"]) -> MetaOapg.properties.channelArn: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["onAirTalk"]) -> MetaOapg.properties.onAirTalk: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["videoId"], typing_extensions.Literal["channelArn"], typing_extensions.Literal["onAirTalk"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["name"]) -> MetaOapg.properties.name: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["id"]) -> MetaOapg.properties.id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoPlatform"]) -> typing.Union[MetaOapg.properties.videoPlatform, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["videoId"]) -> typing.Union[MetaOapg.properties.videoId, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["channelArn"]) -> typing.Union[MetaOapg.properties.channelArn, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["onAirTalk"]) -> typing.Union[MetaOapg.properties.onAirTalk, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["name"], typing_extensions.Literal["id"], typing_extensions.Literal["videoPlatform"], typing_extensions.Literal["videoId"], typing_extensions.Literal["channelArn"], typing_extensions.Literal["onAirTalk"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ name: typing.Union[MetaOapg.properties.name, str, ],
+ id: typing.Union[MetaOapg.properties.id, decimal.Decimal, int, float, ],
+ videoPlatform: typing.Union[MetaOapg.properties.videoPlatform, None, str, schemas.Unset] = schemas.unset,
+ videoId: typing.Union[MetaOapg.properties.videoId, None, str, schemas.Unset] = schemas.unset,
+ channelArn: typing.Union[MetaOapg.properties.channelArn, None, str, schemas.Unset] = schemas.unset,
+ onAirTalk: typing.Union[MetaOapg.properties.onAirTalk, dict, frozendict.frozendict, None, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'Track':
+ return super().__new__(
+ cls,
+ *args,
+ name=name,
+ id=id,
+ videoPlatform=videoPlatform,
+ videoId=videoId,
+ channelArn=channelArn,
+ onAirTalk=onAirTalk,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/update_chat_message.py b/dreamkast_api/openapi_client/model/update_chat_message.py
new file mode 100644
index 0000000..64938e9
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/update_chat_message.py
@@ -0,0 +1,77 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class UpdateChatMessage(
+ schemas.ComposedBase,
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "body",
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ @classmethod
+ @functools.lru_cache()
+ def all_of(cls):
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error because the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ return [
+ ChatMessageProperties,
+ ]
+
+
+
+ def __getitem__(self, name: typing.Union[]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ def get_item_oapg(self, name: typing.Union[]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'UpdateChatMessage':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+from openapi_client.model.chat_message_properties import ChatMessageProperties
diff --git a/dreamkast_api/openapi_client/model/update_chat_message.pyi b/dreamkast_api/openapi_client/model/update_chat_message.pyi
new file mode 100644
index 0000000..64938e9
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/update_chat_message.pyi
@@ -0,0 +1,77 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class UpdateChatMessage(
+ schemas.ComposedBase,
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "body",
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ @classmethod
+ @functools.lru_cache()
+ def all_of(cls):
+ # we need this here to make our import statements work
+ # we must store _composed_schemas in here so the code is only run
+ # when we invoke this method. If we kept this at the class
+ # level we would get an error because the class level
+ # code would be run when this module is imported, and these composed
+ # classes don't exist yet because their module has not finished
+ # loading
+ return [
+ ChatMessageProperties,
+ ]
+
+
+
+ def __getitem__(self, name: typing.Union[]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ def get_item_oapg(self, name: typing.Union[]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'UpdateChatMessage':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+from openapi_client.model.chat_message_properties import ChatMessageProperties
diff --git a/dreamkast_api/openapi_client/model/video_registration.py b/dreamkast_api/openapi_client/model/video_registration.py
new file mode 100644
index 0000000..962868d
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/video_registration.py
@@ -0,0 +1,144 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class VideoRegistration(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "status",
+ }
+
+ class properties:
+
+
+ class status(
+ schemas.EnumBase,
+ schemas.StrSchema
+ ):
+
+
+ class MetaOapg:
+ enum_value_to_name = {
+ "unsubmitted": "UNSUBMITTED",
+ "submitted": "SUBMITTED",
+ "confirmed": "CONFIRMED",
+ "invalid_format": "INVALID_FORMAT",
+ }
+
+ @schemas.classproperty
+ def UNSUBMITTED(cls):
+ return cls("unsubmitted")
+
+ @schemas.classproperty
+ def SUBMITTED(cls):
+ return cls("submitted")
+
+ @schemas.classproperty
+ def CONFIRMED(cls):
+ return cls("confirmed")
+
+ @schemas.classproperty
+ def INVALID_FORMAT(cls):
+ return cls("invalid_format")
+ url = schemas.StrSchema
+ statistics = schemas.DictSchema
+ createdAt = schemas.StrSchema
+ updatedAt = schemas.StrSchema
+ __annotations__ = {
+ "status": status,
+ "url": url,
+ "statistics": statistics,
+ "createdAt": createdAt,
+ "updatedAt": updatedAt,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ status: MetaOapg.properties.status
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["statistics"]) -> MetaOapg.properties.statistics: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["createdAt"]) -> MetaOapg.properties.createdAt: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["updatedAt"]) -> MetaOapg.properties.updatedAt: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["status"], typing_extensions.Literal["url"], typing_extensions.Literal["statistics"], typing_extensions.Literal["createdAt"], typing_extensions.Literal["updatedAt"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> typing.Union[MetaOapg.properties.url, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["statistics"]) -> typing.Union[MetaOapg.properties.statistics, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["createdAt"]) -> typing.Union[MetaOapg.properties.createdAt, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["updatedAt"]) -> typing.Union[MetaOapg.properties.updatedAt, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["status"], typing_extensions.Literal["url"], typing_extensions.Literal["statistics"], typing_extensions.Literal["createdAt"], typing_extensions.Literal["updatedAt"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ status: typing.Union[MetaOapg.properties.status, str, ],
+ url: typing.Union[MetaOapg.properties.url, str, schemas.Unset] = schemas.unset,
+ statistics: typing.Union[MetaOapg.properties.statistics, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ createdAt: typing.Union[MetaOapg.properties.createdAt, str, schemas.Unset] = schemas.unset,
+ updatedAt: typing.Union[MetaOapg.properties.updatedAt, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'VideoRegistration':
+ return super().__new__(
+ cls,
+ *args,
+ status=status,
+ url=url,
+ statistics=statistics,
+ createdAt=createdAt,
+ updatedAt=updatedAt,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/video_registration.pyi b/dreamkast_api/openapi_client/model/video_registration.pyi
new file mode 100644
index 0000000..afab6c9
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/video_registration.pyi
@@ -0,0 +1,135 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class VideoRegistration(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "status",
+ }
+
+ class properties:
+
+
+ class status(
+ schemas.EnumBase,
+ schemas.StrSchema
+ ):
+
+ @schemas.classproperty
+ def UNSUBMITTED(cls):
+ return cls("unsubmitted")
+
+ @schemas.classproperty
+ def SUBMITTED(cls):
+ return cls("submitted")
+
+ @schemas.classproperty
+ def CONFIRMED(cls):
+ return cls("confirmed")
+
+ @schemas.classproperty
+ def INVALID_FORMAT(cls):
+ return cls("invalid_format")
+ url = schemas.StrSchema
+ statistics = schemas.DictSchema
+ createdAt = schemas.StrSchema
+ updatedAt = schemas.StrSchema
+ __annotations__ = {
+ "status": status,
+ "url": url,
+ "statistics": statistics,
+ "createdAt": createdAt,
+ "updatedAt": updatedAt,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ status: MetaOapg.properties.status
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["url"]) -> MetaOapg.properties.url: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["statistics"]) -> MetaOapg.properties.statistics: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["createdAt"]) -> MetaOapg.properties.createdAt: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["updatedAt"]) -> MetaOapg.properties.updatedAt: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["status"], typing_extensions.Literal["url"], typing_extensions.Literal["statistics"], typing_extensions.Literal["createdAt"], typing_extensions.Literal["updatedAt"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["status"]) -> MetaOapg.properties.status: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["url"]) -> typing.Union[MetaOapg.properties.url, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["statistics"]) -> typing.Union[MetaOapg.properties.statistics, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["createdAt"]) -> typing.Union[MetaOapg.properties.createdAt, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["updatedAt"]) -> typing.Union[MetaOapg.properties.updatedAt, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["status"], typing_extensions.Literal["url"], typing_extensions.Literal["statistics"], typing_extensions.Literal["createdAt"], typing_extensions.Literal["updatedAt"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ status: typing.Union[MetaOapg.properties.status, str, ],
+ url: typing.Union[MetaOapg.properties.url, str, schemas.Unset] = schemas.unset,
+ statistics: typing.Union[MetaOapg.properties.statistics, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ createdAt: typing.Union[MetaOapg.properties.createdAt, str, schemas.Unset] = schemas.unset,
+ updatedAt: typing.Union[MetaOapg.properties.updatedAt, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'VideoRegistration':
+ return super().__new__(
+ cls,
+ *args,
+ status=status,
+ url=url,
+ statistics=statistics,
+ createdAt=createdAt,
+ updatedAt=updatedAt,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/viewer_count.py b/dreamkast_api/openapi_client/model/viewer_count.py
new file mode 100644
index 0000000..e5c8e89
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/viewer_count.py
@@ -0,0 +1,106 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class ViewerCount(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "track_id",
+ "viewer_count",
+ }
+
+ class properties:
+ track_id = schemas.NumberSchema
+ viewer_count = schemas.NumberSchema
+ conference_id = schemas.NumberSchema
+ talk_id = schemas.NumberSchema
+ __annotations__ = {
+ "track_id": track_id,
+ "viewer_count": viewer_count,
+ "conference_id": conference_id,
+ "talk_id": talk_id,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ track_id: MetaOapg.properties.track_id
+ viewer_count: MetaOapg.properties.viewer_count
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["track_id"]) -> MetaOapg.properties.track_id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["viewer_count"]) -> MetaOapg.properties.viewer_count: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conference_id"]) -> MetaOapg.properties.conference_id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talk_id"]) -> MetaOapg.properties.talk_id: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["track_id"], typing_extensions.Literal["viewer_count"], typing_extensions.Literal["conference_id"], typing_extensions.Literal["talk_id"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["track_id"]) -> MetaOapg.properties.track_id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["viewer_count"]) -> MetaOapg.properties.viewer_count: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conference_id"]) -> typing.Union[MetaOapg.properties.conference_id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talk_id"]) -> typing.Union[MetaOapg.properties.talk_id, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["track_id"], typing_extensions.Literal["viewer_count"], typing_extensions.Literal["conference_id"], typing_extensions.Literal["talk_id"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ track_id: typing.Union[MetaOapg.properties.track_id, decimal.Decimal, int, float, ],
+ viewer_count: typing.Union[MetaOapg.properties.viewer_count, decimal.Decimal, int, float, ],
+ conference_id: typing.Union[MetaOapg.properties.conference_id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ talk_id: typing.Union[MetaOapg.properties.talk_id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'ViewerCount':
+ return super().__new__(
+ cls,
+ *args,
+ track_id=track_id,
+ viewer_count=viewer_count,
+ conference_id=conference_id,
+ talk_id=talk_id,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/model/viewer_count.pyi b/dreamkast_api/openapi_client/model/viewer_count.pyi
new file mode 100644
index 0000000..e5c8e89
--- /dev/null
+++ b/dreamkast_api/openapi_client/model/viewer_count.pyi
@@ -0,0 +1,106 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+
+class ViewerCount(
+ schemas.DictSchema
+):
+ """NOTE: This class is auto generated by OpenAPI Generator.
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+
+ class MetaOapg:
+ required = {
+ "track_id",
+ "viewer_count",
+ }
+
+ class properties:
+ track_id = schemas.NumberSchema
+ viewer_count = schemas.NumberSchema
+ conference_id = schemas.NumberSchema
+ talk_id = schemas.NumberSchema
+ __annotations__ = {
+ "track_id": track_id,
+ "viewer_count": viewer_count,
+ "conference_id": conference_id,
+ "talk_id": talk_id,
+ }
+ additional_properties = schemas.NotAnyTypeSchema
+
+ track_id: MetaOapg.properties.track_id
+ viewer_count: MetaOapg.properties.viewer_count
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["track_id"]) -> MetaOapg.properties.track_id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["viewer_count"]) -> MetaOapg.properties.viewer_count: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["conference_id"]) -> MetaOapg.properties.conference_id: ...
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["talk_id"]) -> MetaOapg.properties.talk_id: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["track_id"], typing_extensions.Literal["viewer_count"], typing_extensions.Literal["conference_id"], typing_extensions.Literal["talk_id"], ]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["track_id"]) -> MetaOapg.properties.track_id: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["viewer_count"]) -> MetaOapg.properties.viewer_count: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["conference_id"]) -> typing.Union[MetaOapg.properties.conference_id, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["talk_id"]) -> typing.Union[MetaOapg.properties.talk_id, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["track_id"], typing_extensions.Literal["viewer_count"], typing_extensions.Literal["conference_id"], typing_extensions.Literal["talk_id"], ]):
+ return super().get_item_oapg(name)
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ track_id: typing.Union[MetaOapg.properties.track_id, decimal.Decimal, int, float, ],
+ viewer_count: typing.Union[MetaOapg.properties.viewer_count, decimal.Decimal, int, float, ],
+ conference_id: typing.Union[MetaOapg.properties.conference_id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ talk_id: typing.Union[MetaOapg.properties.talk_id, decimal.Decimal, int, float, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'ViewerCount':
+ return super().__new__(
+ cls,
+ *args,
+ track_id=track_id,
+ viewer_count=viewer_count,
+ conference_id=conference_id,
+ talk_id=talk_id,
+ _configuration=_configuration,
+ )
diff --git a/dreamkast_api/openapi_client/models/__init__.py b/dreamkast_api/openapi_client/models/__init__.py
new file mode 100644
index 0000000..c3d2d36
--- /dev/null
+++ b/dreamkast_api/openapi_client/models/__init__.py
@@ -0,0 +1,24 @@
+# coding: utf-8
+
+# flake8: noqa
+
+# import all models into this package
+# if you have many models here with many references from one model to another this may
+# raise a RecursionError
+# to avoid this, import only the models that you directly need like:
+# from from openapi_client.model.pet import Pet
+# or import this package, but before doing it, use:
+# import sys
+# sys.setrecursionlimit(n)
+
+from openapi_client.model.booth import Booth
+from openapi_client.model.chat_message import ChatMessage
+from openapi_client.model.chat_message_properties import ChatMessageProperties
+from openapi_client.model.event import Event
+from openapi_client.model.profile import Profile
+from openapi_client.model.sponsor import Sponsor
+from openapi_client.model.talk import Talk
+from openapi_client.model.track import Track
+from openapi_client.model.update_chat_message import UpdateChatMessage
+from openapi_client.model.video_registration import VideoRegistration
+from openapi_client.model.viewer_count import ViewerCount
diff --git a/dreamkast_api/openapi_client/paths/__init__.py b/dreamkast_api/openapi_client/paths/__init__.py
new file mode 100644
index 0000000..4c56684
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/__init__.py
@@ -0,0 +1,21 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.apis.path_to_api import path_to_api
+
+import enum
+
+
+class PathValues(str, enum.Enum):
+ API_V1_EVENT_ABBR_MY_PROFILE = "/api/v1/{eventAbbr}/my_profile"
+ API_V1_EVENTS = "/api/v1/events"
+ API_V1_EVENTS_EVENT_ABBR = "/api/v1/events/{eventAbbr}"
+ API_V1_TRACKS = "/api/v1/tracks"
+ API_V1_TRACKS_TRACK_ID = "/api/v1/tracks/{trackId}"
+ API_V1_TRACKS_TRACK_ID_VIEWER_COUNT = "/api/v1/tracks/{trackId}/viewer_count"
+ API_V1_TALKS = "/api/v1/talks"
+ API_V1_TALKS_TALK_ID = "/api/v1/talks/{talkId}"
+ API_V1_TALKS_TALK_ID_VIDEO_REGISTRATION = "/api/v1/talks/{talkId}/video_registration"
+ API_V1_CHAT_MESSAGES = "/api/v1/chat_messages"
+ API_V1_CHAT_MESSAGES_MESSAGE_ID = "/api/v1/chat_messages/{messageId}"
+ API_V1_SPONSORS = "/api/v1/sponsors"
+ API_V1_BOOTHS_BOOTH_ID = "/api/v1/booths/{boothId}"
diff --git a/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/__init__.py
new file mode 100644
index 0000000..68e6784
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_booths_booth_id import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_BOOTHS_BOOTH_ID
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.py b/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.py
new file mode 100644
index 0000000..90618fb
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.py
@@ -0,0 +1,219 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.booth import Booth
+
+from . import path
+
+# path params
+BoothIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'boothId': typing.Union[BoothIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_booth_id = api_client.PathParameter(
+ name="boothId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=BoothIdSchema,
+ required=True,
+)
+SchemaFor200ResponseBodyApplicationJson = Booth
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_booths_booth_id_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_booth_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1BoothsBoothIdGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_booths_booth_id_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_booths_booth_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_booths_booth_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.pyi
new file mode 100644
index 0000000..ff62a0c
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_booths_booth_id/get.pyi
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.booth import Booth
+
+# path params
+BoothIdSchema = schemas.StrSchema
+SchemaFor200ResponseBodyApplicationJson = Booth
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_booths_booth_id_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_booth_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1BoothsBoothIdGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_booths_booth_id_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_booths_booth_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_booths_booth_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/__init__.py
new file mode 100644
index 0000000..e01bc29
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_chat_messages import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_CHAT_MESSAGES
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.py b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.py
new file mode 100644
index 0000000..fc5ac09
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.py
@@ -0,0 +1,274 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.chat_message import ChatMessage
+
+from . import path
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+RoomIdSchema = schemas.StrSchema
+RoomTypeSchema = schemas.StrSchema
+CreatedFromSchema = schemas.DateTimeSchema
+RequestRequiredQueryParams = typing_extensions.TypedDict(
+ 'RequestRequiredQueryParams',
+ {
+ 'eventAbbr': typing.Union[EventAbbrSchema, str, ],
+ 'roomId': typing.Union[RoomIdSchema, str, ],
+ 'roomType': typing.Union[RoomTypeSchema, str, ],
+ }
+)
+RequestOptionalQueryParams = typing_extensions.TypedDict(
+ 'RequestOptionalQueryParams',
+ {
+ 'createdFrom': typing.Union[CreatedFromSchema, str, datetime, ],
+ },
+ total=False
+)
+
+
+class RequestQueryParams(RequestRequiredQueryParams, RequestOptionalQueryParams):
+ pass
+
+
+request_query_event_abbr = api_client.QueryParameter(
+ name="eventAbbr",
+ style=api_client.ParameterStyle.FORM,
+ schema=EventAbbrSchema,
+ required=True,
+ explode=True,
+)
+request_query_room_id = api_client.QueryParameter(
+ name="roomId",
+ style=api_client.ParameterStyle.FORM,
+ schema=RoomIdSchema,
+ required=True,
+ explode=True,
+)
+request_query_room_type = api_client.QueryParameter(
+ name="roomType",
+ style=api_client.ParameterStyle.FORM,
+ schema=RoomTypeSchema,
+ required=True,
+ explode=True,
+)
+request_query_created_from = api_client.QueryParameter(
+ name="createdFrom",
+ style=api_client.ParameterStyle.FORM,
+ schema=CreatedFromSchema,
+ explode=True,
+)
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['ChatMessage']:
+ return ChatMessage
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['ChatMessage'], typing.List['ChatMessage']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'ChatMessage':
+ return super().__getitem__(i)
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_chat_messages_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ request_query_room_id,
+ request_query_room_type,
+ request_query_created_from,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1ChatMessagesGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_chat_messages_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.pyi
new file mode 100644
index 0000000..604cdcf
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/get.pyi
@@ -0,0 +1,177 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.chat_message import ChatMessage
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+RoomIdSchema = schemas.StrSchema
+RoomTypeSchema = schemas.StrSchema
+CreatedFromSchema = schemas.DateTimeSchema
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['ChatMessage']:
+ return ChatMessage
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['ChatMessage'], typing.List['ChatMessage']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'ChatMessage':
+ return super().__getitem__(i)
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_chat_messages_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ request_query_room_id,
+ request_query_room_type,
+ request_query_created_from,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1ChatMessagesGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_chat_messages_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.py b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.py
new file mode 100644
index 0000000..2184b3d
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.py
@@ -0,0 +1,162 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.chat_message import ChatMessage
+
+from . import path
+
+# body param
+SchemaForRequestBodyApplicationJson = ChatMessage
+
+
+request_body_chat_message = api_client.RequestBody(
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaForRequestBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor201(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_201 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor201,
+)
+_status_code_to_response = {
+ '201': _response_for_201,
+}
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_chat_messages_post_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor201,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Post Chat Message
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ used_path = path.value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_chat_message.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='post'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1ChatMessagesPost(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_chat_messages_post(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor201,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_post_oapg(
+ body=body,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForpost(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def post(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor201,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_post_oapg(
+ body=body,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.pyi b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.pyi
new file mode 100644
index 0000000..af471ed
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages/post.pyi
@@ -0,0 +1,137 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.chat_message import ChatMessage
+
+# body param
+SchemaForRequestBodyApplicationJson = ChatMessage
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_chat_messages_post_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor201,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Post Chat Message
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ used_path = path.value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_chat_message.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='post'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1ChatMessagesPost(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_chat_messages_post(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor201,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_post_oapg(
+ body=body,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForpost(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def post(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor201,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_post_oapg(
+ body=body,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/__init__.py
new file mode 100644
index 0000000..ebaa997
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_chat_messages_message_id import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_CHAT_MESSAGES_MESSAGE_ID
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.py b/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.py
new file mode 100644
index 0000000..f4d08d2
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.py
@@ -0,0 +1,346 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.chat_message import ChatMessage
+from openapi_client.model.update_chat_message import UpdateChatMessage
+
+from . import path
+
+# path params
+MessageIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'messageId': typing.Union[MessageIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_message_id = api_client.PathParameter(
+ name="messageId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=MessageIdSchema,
+ required=True,
+)
+# body param
+SchemaForRequestBodyApplicationJson = UpdateChatMessage
+
+
+request_body_update_chat_message = api_client.RequestBody(
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaForRequestBodyApplicationJson),
+ },
+)
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['ChatMessage']:
+ return ChatMessage
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['ChatMessage'], typing.List['ChatMessage']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'ChatMessage':
+ return super().__getitem__(i)
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+class SchemaFor403ResponseBodyApplicationJson(
+ schemas.DictSchema
+):
+
+
+ class MetaOapg:
+
+ class properties:
+ error = schemas.StrSchema
+ __annotations__ = {
+ "error": error,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["error"]) -> MetaOapg.properties.error: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["error", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["error"]) -> typing.Union[MetaOapg.properties.error, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["error", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ error: typing.Union[MetaOapg.properties.error, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'SchemaFor403ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ *args,
+ error=error,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+
+@dataclass
+class ApiResponseFor403(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor403ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_403 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor403,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor403ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '403': _response_for_403,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_chat_messages_message_id_put_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Update Chat Message
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_message_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_update_chat_message.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='put'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1ChatMessagesMessageIdPut(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_chat_messages_message_id_put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_message_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForput(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_message_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.pyi b/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.pyi
new file mode 100644
index 0000000..510f2d5
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_chat_messages_message_id/put.pyi
@@ -0,0 +1,246 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.chat_message import ChatMessage
+from openapi_client.model.update_chat_message import UpdateChatMessage
+
+# path params
+MessageIdSchema = schemas.StrSchema
+# body param
+SchemaForRequestBodyApplicationJson = UpdateChatMessage
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['ChatMessage']:
+ return ChatMessage
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['ChatMessage'], typing.List['ChatMessage']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'ChatMessage':
+ return super().__getitem__(i)
+
+
+class SchemaFor403ResponseBodyApplicationJson(
+ schemas.DictSchema
+):
+
+
+ class MetaOapg:
+
+ class properties:
+ error = schemas.StrSchema
+ __annotations__ = {
+ "error": error,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["error"]) -> MetaOapg.properties.error: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["error", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["error"]) -> typing.Union[MetaOapg.properties.error, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["error", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ error: typing.Union[MetaOapg.properties.error, str, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'SchemaFor403ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ *args,
+ error=error,
+ _configuration=_configuration,
+ **kwargs,
+ )
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_chat_messages_message_id_put_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Update Chat Message
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_message_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_update_chat_message.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='put'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1ChatMessagesMessageIdPut(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_chat_messages_message_id_put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_message_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForput(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_chat_messages_message_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/__init__.py
new file mode 100644
index 0000000..77c0a6a
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_event_abbr_my_profile import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_EVENT_ABBR_MY_PROFILE
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.py b/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.py
new file mode 100644
index 0000000..bd1b794
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.py
@@ -0,0 +1,206 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.profile import Profile
+
+from . import path
+
+# path params
+EventAbbrSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'eventAbbr': typing.Union[EventAbbrSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_event_abbr = api_client.PathParameter(
+ name="eventAbbr",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=EventAbbrSchema,
+ required=True,
+)
+SchemaFor200ResponseBodyApplicationJson = Profile
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor403(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_403 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor403,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '403': _response_for_403,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_event_abbr_my_profile_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_event_abbr,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1EventAbbrMyProfileGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_event_abbr_my_profile_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_event_abbr_my_profile_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_event_abbr_my_profile_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.pyi
new file mode 100644
index 0000000..2d3f743
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_event_abbr_my_profile/get.pyi
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.profile import Profile
+
+# path params
+EventAbbrSchema = schemas.StrSchema
+SchemaFor200ResponseBodyApplicationJson = Profile
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_event_abbr_my_profile_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_event_abbr,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1EventAbbrMyProfileGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_event_abbr_my_profile_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_event_abbr_my_profile_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_event_abbr_my_profile_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_events/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_events/__init__.py
new file mode 100644
index 0000000..f932cf6
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_events/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_events import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_EVENTS
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_events/get.py b/dreamkast_api/openapi_client/paths/api_v1_events/get.py
new file mode 100644
index 0000000..e10b6ee
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_events/get.py
@@ -0,0 +1,199 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.event import Event
+
+from . import path
+
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Event']:
+ return Event
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Event'], typing.List['Event']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Event':
+ return super().__getitem__(i)
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_events_get_oapg(
+ self: api_client.Api,
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ used_path = path.value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1EventsGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_events_get(
+ self: BaseApi,
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_get_oapg(
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_get_oapg(
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_events/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_events/get.pyi
new file mode 100644
index 0000000..b34395b
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_events/get.pyi
@@ -0,0 +1,150 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.event import Event
+
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Event']:
+ return Event
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Event'], typing.List['Event']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Event':
+ return super().__getitem__(i)
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_events_get_oapg(
+ self: api_client.Api,
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ used_path = path.value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1EventsGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_events_get(
+ self: BaseApi,
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_get_oapg(
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_get_oapg(
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/__init__.py
new file mode 100644
index 0000000..181cae2
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_events_event_abbr import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_EVENTS_EVENT_ABBR
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.py b/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.py
new file mode 100644
index 0000000..458a5be
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.py
@@ -0,0 +1,219 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.event import Event
+
+from . import path
+
+# path params
+EventAbbrSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'eventAbbr': typing.Union[EventAbbrSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_event_abbr = api_client.PathParameter(
+ name="eventAbbr",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=EventAbbrSchema,
+ required=True,
+)
+SchemaFor200ResponseBodyApplicationJson = Event
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_events_event_abbr_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_event_abbr,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1EventsEventAbbrGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_events_event_abbr_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_event_abbr_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_event_abbr_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.pyi
new file mode 100644
index 0000000..50bbe6d
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_events_event_abbr/get.pyi
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.event import Event
+
+# path params
+EventAbbrSchema = schemas.StrSchema
+SchemaFor200ResponseBodyApplicationJson = Event
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_events_event_abbr_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_event_abbr,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1EventsEventAbbrGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_events_event_abbr_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_event_abbr_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_events_event_abbr_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_sponsors/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_sponsors/__init__.py
new file mode 100644
index 0000000..a8f4975
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_sponsors/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_sponsors import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_SPONSORS
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_sponsors/get.py b/dreamkast_api/openapi_client/paths/api_v1_sponsors/get.py
new file mode 100644
index 0000000..ea1df15
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_sponsors/get.py
@@ -0,0 +1,232 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.sponsor import Sponsor
+
+from . import path
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+RequestRequiredQueryParams = typing_extensions.TypedDict(
+ 'RequestRequiredQueryParams',
+ {
+ 'eventAbbr': typing.Union[EventAbbrSchema, str, ],
+ }
+)
+RequestOptionalQueryParams = typing_extensions.TypedDict(
+ 'RequestOptionalQueryParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestQueryParams(RequestRequiredQueryParams, RequestOptionalQueryParams):
+ pass
+
+
+request_query_event_abbr = api_client.QueryParameter(
+ name="eventAbbr",
+ style=api_client.ParameterStyle.FORM,
+ schema=EventAbbrSchema,
+ required=True,
+ explode=True,
+)
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Sponsor']:
+ return Sponsor
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Sponsor'], typing.List['Sponsor']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Sponsor':
+ return super().__getitem__(i)
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_sponsors_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1SponsorsGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_sponsors_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_sponsors_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_sponsors_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_sponsors/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_sponsors/get.pyi
new file mode 100644
index 0000000..0e4eb06
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_sponsors/get.pyi
@@ -0,0 +1,171 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.sponsor import Sponsor
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Sponsor']:
+ return Sponsor
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Sponsor'], typing.List['Sponsor']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Sponsor':
+ return super().__getitem__(i)
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_sponsors_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1SponsorsGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_sponsors_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_sponsors_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_sponsors_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_talks/__init__.py
new file mode 100644
index 0000000..0442839
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_talks import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_TALKS
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks/get.py b/dreamkast_api/openapi_client/paths/api_v1_talks/get.py
new file mode 100644
index 0000000..ac42454
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks/get.py
@@ -0,0 +1,263 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.talk import Talk
+
+from . import path
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+TrackIdSchema = schemas.StrSchema
+ConferenceDayIdsSchema = schemas.StrSchema
+RequestRequiredQueryParams = typing_extensions.TypedDict(
+ 'RequestRequiredQueryParams',
+ {
+ 'eventAbbr': typing.Union[EventAbbrSchema, str, ],
+ }
+)
+RequestOptionalQueryParams = typing_extensions.TypedDict(
+ 'RequestOptionalQueryParams',
+ {
+ 'trackId': typing.Union[TrackIdSchema, str, ],
+ 'conferenceDayIds': typing.Union[ConferenceDayIdsSchema, str, ],
+ },
+ total=False
+)
+
+
+class RequestQueryParams(RequestRequiredQueryParams, RequestOptionalQueryParams):
+ pass
+
+
+request_query_event_abbr = api_client.QueryParameter(
+ name="eventAbbr",
+ style=api_client.ParameterStyle.FORM,
+ schema=EventAbbrSchema,
+ required=True,
+ explode=True,
+)
+request_query_track_id = api_client.QueryParameter(
+ name="trackId",
+ style=api_client.ParameterStyle.FORM,
+ schema=TrackIdSchema,
+ explode=True,
+)
+request_query_conference_day_ids = api_client.QueryParameter(
+ name="conferenceDayIds",
+ style=api_client.ParameterStyle.FORM,
+ schema=ConferenceDayIdsSchema,
+ explode=True,
+)
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Talk']:
+ return Talk
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Talk'], typing.List['Talk']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Talk':
+ return super().__getitem__(i)
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ request_query_track_id,
+ request_query_conference_day_ids,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_talks/get.pyi
new file mode 100644
index 0000000..3839475
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks/get.pyi
@@ -0,0 +1,175 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.talk import Talk
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+TrackIdSchema = schemas.StrSchema
+ConferenceDayIdsSchema = schemas.StrSchema
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Talk']:
+ return Talk
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Talk'], typing.List['Talk']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Talk':
+ return super().__getitem__(i)
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ request_query_track_id,
+ request_query_conference_day_ids,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/__init__.py
new file mode 100644
index 0000000..bac1bd9
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_talks_talk_id import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_TALKS_TALK_ID
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.py b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.py
new file mode 100644
index 0000000..b181d28
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.py
@@ -0,0 +1,219 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.talk import Talk
+
+from . import path
+
+# path params
+TalkIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'talkId': typing.Union[TalkIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_talk_id = api_client.PathParameter(
+ name="talkId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=TalkIdSchema,
+ required=True,
+)
+SchemaFor200ResponseBodyApplicationJson = Talk
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.pyi
new file mode 100644
index 0000000..8e10c44
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/get.pyi
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.talk import Talk
+
+# path params
+TalkIdSchema = schemas.StrSchema
+SchemaFor200ResponseBodyApplicationJson = Talk
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.py b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.py
new file mode 100644
index 0000000..6672270
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.py
@@ -0,0 +1,238 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from . import path
+
+# path params
+TalkIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'talkId': typing.Union[TalkIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_talk_id = api_client.PathParameter(
+ name="talkId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=TalkIdSchema,
+ required=True,
+)
+# body param
+
+
+class SchemaForRequestBodyApplicationJson(
+ schemas.DictSchema
+):
+
+
+ class MetaOapg:
+
+ class properties:
+ on_air = schemas.BoolSchema
+ __annotations__ = {
+ "on_air": on_air,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["on_air"]) -> MetaOapg.properties.on_air: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["on_air", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["on_air"]) -> typing.Union[MetaOapg.properties.on_air, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["on_air", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ on_air: typing.Union[MetaOapg.properties.on_air, bool, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'SchemaForRequestBodyApplicationJson':
+ return super().__new__(
+ cls,
+ *args,
+ on_air=on_air,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+
+request_body_any_type = api_client.RequestBody(
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaForRequestBodyApplicationJson),
+ },
+)
+_status_code_to_response = {
+}
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_put_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Put Talk
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_any_type.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='put'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdPut(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForput(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.pyi b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.pyi
new file mode 100644
index 0000000..fc33580
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id/put.pyi
@@ -0,0 +1,202 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+# path params
+TalkIdSchema = schemas.StrSchema
+# body param
+
+
+class SchemaForRequestBodyApplicationJson(
+ schemas.DictSchema
+):
+
+
+ class MetaOapg:
+
+ class properties:
+ on_air = schemas.BoolSchema
+ __annotations__ = {
+ "on_air": on_air,
+ }
+
+ @typing.overload
+ def __getitem__(self, name: typing_extensions.Literal["on_air"]) -> MetaOapg.properties.on_air: ...
+
+ @typing.overload
+ def __getitem__(self, name: str) -> schemas.UnsetAnyTypeSchema: ...
+
+ def __getitem__(self, name: typing.Union[typing_extensions.Literal["on_air", ], str]):
+ # dict_instance[name] accessor
+ return super().__getitem__(name)
+
+
+ @typing.overload
+ def get_item_oapg(self, name: typing_extensions.Literal["on_air"]) -> typing.Union[MetaOapg.properties.on_air, schemas.Unset]: ...
+
+ @typing.overload
+ def get_item_oapg(self, name: str) -> typing.Union[schemas.UnsetAnyTypeSchema, schemas.Unset]: ...
+
+ def get_item_oapg(self, name: typing.Union[typing_extensions.Literal["on_air", ], str]):
+ return super().get_item_oapg(name)
+
+
+ def __new__(
+ cls,
+ *args: typing.Union[dict, frozendict.frozendict, ],
+ on_air: typing.Union[MetaOapg.properties.on_air, bool, schemas.Unset] = schemas.unset,
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ **kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
+ ) -> 'SchemaForRequestBodyApplicationJson':
+ return super().__new__(
+ cls,
+ *args,
+ on_air=on_air,
+ _configuration=_configuration,
+ **kwargs,
+ )
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_put_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Put Talk
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_any_type.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='put'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdPut(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForput(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, dict, frozendict.frozendict, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/__init__.py
new file mode 100644
index 0000000..8baba49
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_talks_talk_id_video_registration import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_TALKS_TALK_ID_VIDEO_REGISTRATION
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.py b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.py
new file mode 100644
index 0000000..690caa2
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.py
@@ -0,0 +1,232 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.video_registration import VideoRegistration
+
+from . import path
+
+# path params
+TalkIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'talkId': typing.Union[TalkIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_talk_id = api_client.PathParameter(
+ name="talkId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=TalkIdSchema,
+ required=True,
+)
+SchemaFor200ResponseBodyApplicationJson = VideoRegistration
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor401(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_401 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor401,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '401': _response_for_401,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_video_registration_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdVideoRegistrationGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_video_registration_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.pyi
new file mode 100644
index 0000000..efb7865
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/get.pyi
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.video_registration import VideoRegistration
+
+# path params
+TalkIdSchema = schemas.StrSchema
+SchemaFor200ResponseBodyApplicationJson = VideoRegistration
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_video_registration_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdVideoRegistrationGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_video_registration_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.py b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.py
new file mode 100644
index 0000000..751b27d
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.py
@@ -0,0 +1,246 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.video_registration import VideoRegistration
+
+from . import path
+
+# path params
+TalkIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'talkId': typing.Union[TalkIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_talk_id = api_client.PathParameter(
+ name="talkId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=TalkIdSchema,
+ required=True,
+)
+# body param
+SchemaForRequestBodyApplicationJson = VideoRegistration
+
+
+request_body_video_registration = api_client.RequestBody(
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaForRequestBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor401(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_401 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor401,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '401': _response_for_401,
+ '404': _response_for_404,
+}
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_video_registration_put_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Put VideoRegistration
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_video_registration.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='put'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdVideoRegistrationPut(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_video_registration_put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForput(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.pyi b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.pyi
new file mode 100644
index 0000000..7763434
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_talks_talk_id_video_registration/put.pyi
@@ -0,0 +1,158 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.video_registration import VideoRegistration
+
+# path params
+TalkIdSchema = schemas.StrSchema
+# body param
+SchemaForRequestBodyApplicationJson = VideoRegistration
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_talks_talk_id_video_registration_put_oapg(
+ self: api_client.Api,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ Put VideoRegistration
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_talk_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+
+ _fields = None
+ _body = None
+ if body is not schemas.unset:
+ serialized_data = request_body_video_registration.serialize(body, content_type)
+ _headers.add('Content-Type', content_type)
+ if 'fields' in serialized_data:
+ _fields = serialized_data['fields']
+ elif 'body' in serialized_data:
+ _body = serialized_data['body']
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='put'.upper(),
+ headers=_headers,
+ fields=_fields,
+ body=_body,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TalksTalkIdVideoRegistrationPut(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_talks_talk_id_video_registration_put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForput(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def put(
+ self: BaseApi,
+ body: typing.Union[SchemaForRequestBodyApplicationJson, schemas.Unset] = schemas.unset,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ content_type: str = 'application/json',
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_talks_talk_id_video_registration_put_oapg(
+ body=body,
+ path_params=path_params,
+ content_type=content_type,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_tracks/__init__.py
new file mode 100644
index 0000000..9148ce5
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_tracks import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_TRACKS
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks/get.py b/dreamkast_api/openapi_client/paths/api_v1_tracks/get.py
new file mode 100644
index 0000000..5651275
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks/get.py
@@ -0,0 +1,245 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.track import Track
+
+from . import path
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+RequestRequiredQueryParams = typing_extensions.TypedDict(
+ 'RequestRequiredQueryParams',
+ {
+ 'eventAbbr': typing.Union[EventAbbrSchema, str, ],
+ }
+)
+RequestOptionalQueryParams = typing_extensions.TypedDict(
+ 'RequestOptionalQueryParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestQueryParams(RequestRequiredQueryParams, RequestOptionalQueryParams):
+ pass
+
+
+request_query_event_abbr = api_client.QueryParameter(
+ name="eventAbbr",
+ style=api_client.ParameterStyle.FORM,
+ schema=EventAbbrSchema,
+ required=True,
+ explode=True,
+)
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Track']:
+ return Track
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Track'], typing.List['Track']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Track':
+ return super().__getitem__(i)
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_tracks_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TracksGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_tracks_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_tracks/get.pyi
new file mode 100644
index 0000000..d7fefbb
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks/get.pyi
@@ -0,0 +1,171 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.track import Track
+
+# query params
+EventAbbrSchema = schemas.StrSchema
+
+
+class SchemaFor200ResponseBodyApplicationJson(
+ schemas.ListSchema
+):
+
+
+ class MetaOapg:
+
+ @staticmethod
+ def items() -> typing.Type['Track']:
+ return Track
+
+ def __new__(
+ cls,
+ arg: typing.Union[typing.Tuple['Track'], typing.List['Track']],
+ _configuration: typing.Optional[schemas.Configuration] = None,
+ ) -> 'SchemaFor200ResponseBodyApplicationJson':
+ return super().__new__(
+ cls,
+ arg,
+ _configuration=_configuration,
+ )
+
+ def __getitem__(self, i: int) -> 'Track':
+ return super().__getitem__(i)
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_tracks_get_oapg(
+ self: api_client.Api,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestQueryParams, query_params)
+ used_path = path.value
+
+ prefix_separator_iterator = None
+ for parameter in (
+ request_query_event_abbr,
+ ):
+ parameter_data = query_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ if prefix_separator_iterator is None:
+ prefix_separator_iterator = parameter.get_prefix_separator_iterator()
+ serialized_data = parameter.serialize(parameter_data, prefix_separator_iterator)
+ for serialized_value in serialized_data.values():
+ used_path += serialized_value
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TracksGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_tracks_get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ query_params: RequestQueryParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_get_oapg(
+ query_params=query_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/__init__.py
new file mode 100644
index 0000000..fc2be3f
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_tracks_track_id import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_TRACKS_TRACK_ID
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.py b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.py
new file mode 100644
index 0000000..61bc520
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.py
@@ -0,0 +1,219 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.track import Track
+
+from . import path
+
+# path params
+TrackIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'trackId': typing.Union[TrackIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_track_id = api_client.PathParameter(
+ name="trackId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=TrackIdSchema,
+ required=True,
+)
+SchemaFor200ResponseBodyApplicationJson = Track
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_tracks_track_id_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_track_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TracksTrackIdGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_tracks_track_id_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.pyi
new file mode 100644
index 0000000..554f368
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id/get.pyi
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.track import Track
+
+# path params
+TrackIdSchema = schemas.StrSchema
+SchemaFor200ResponseBodyApplicationJson = Track
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_tracks_track_id_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_track_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TracksTrackIdGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_tracks_track_id_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/__init__.py b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/__init__.py
new file mode 100644
index 0000000..ca88f52
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/__init__.py
@@ -0,0 +1,7 @@
+# do not import all endpoints into this module because that uses a lot of memory and stack frames
+# if you need the ability to import all endpoints from this module, import them with
+# from openapi_client.paths.api_v1_tracks_track_id_viewer_count import Api
+
+from openapi_client.paths import PathValues
+
+path = PathValues.API_V1_TRACKS_TRACK_ID_VIEWER_COUNT
\ No newline at end of file
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.py b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.py
new file mode 100644
index 0000000..3ac7f91
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.py
@@ -0,0 +1,219 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.viewer_count import ViewerCount
+
+from . import path
+
+# path params
+TrackIdSchema = schemas.StrSchema
+RequestRequiredPathParams = typing_extensions.TypedDict(
+ 'RequestRequiredPathParams',
+ {
+ 'trackId': typing.Union[TrackIdSchema, str, ],
+ }
+)
+RequestOptionalPathParams = typing_extensions.TypedDict(
+ 'RequestOptionalPathParams',
+ {
+ },
+ total=False
+)
+
+
+class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
+ pass
+
+
+request_path_track_id = api_client.PathParameter(
+ name="trackId",
+ style=api_client.ParameterStyle.SIMPLE,
+ schema=TrackIdSchema,
+ required=True,
+)
+SchemaFor200ResponseBodyApplicationJson = ViewerCount
+
+
+@dataclass
+class ApiResponseFor200(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: typing.Union[
+ SchemaFor200ResponseBodyApplicationJson,
+ ]
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_200 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor200,
+ content={
+ 'application/json': api_client.MediaType(
+ schema=SchemaFor200ResponseBodyApplicationJson),
+ },
+)
+
+
+@dataclass
+class ApiResponseFor400(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_400 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor400,
+)
+
+
+@dataclass
+class ApiResponseFor404(api_client.ApiResponse):
+ response: urllib3.HTTPResponse
+ body: schemas.Unset = schemas.unset
+ headers: schemas.Unset = schemas.unset
+
+
+_response_for_404 = api_client.OpenApiResponse(
+ response_cls=ApiResponseFor404,
+)
+_status_code_to_response = {
+ '200': _response_for_200,
+ '400': _response_for_400,
+ '404': _response_for_404,
+}
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_tracks_track_id_viewer_count_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_track_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TracksTrackIdViewerCountGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_tracks_track_id_viewer_count_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_viewer_count_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_viewer_count_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.pyi b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.pyi
new file mode 100644
index 0000000..6825769
--- /dev/null
+++ b/dreamkast_api/openapi_client/paths/api_v1_tracks_track_id_viewer_count/get.pyi
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+from dataclasses import dataclass
+import typing_extensions
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client import api_client, exceptions
+from datetime import date, datetime # noqa: F401
+import decimal # noqa: F401
+import functools # noqa: F401
+import io # noqa: F401
+import re # noqa: F401
+import typing # noqa: F401
+import typing_extensions # noqa: F401
+import uuid # noqa: F401
+
+import frozendict # noqa: F401
+
+from openapi_client import schemas # noqa: F401
+
+from openapi_client.model.viewer_count import ViewerCount
+
+# path params
+TrackIdSchema = schemas.StrSchema
+SchemaFor200ResponseBodyApplicationJson = ViewerCount
+_all_accept_content_types = (
+ 'application/json',
+)
+
+
+class BaseApi(api_client.Api):
+
+ def _api_v1_tracks_track_id_viewer_count_get_oapg(
+ self: api_client.Api,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ """
+ :param skip_deserialization: If true then api_response.response will be set but
+ api_response.body and api_response.headers will not be deserialized into schema
+ class instances
+ """
+ self._verify_typed_dict_inputs_oapg(RequestPathParams, path_params)
+ used_path = path.value
+
+ _path_params = {}
+ for parameter in (
+ request_path_track_id,
+ ):
+ parameter_data = path_params.get(parameter.name, schemas.unset)
+ if parameter_data is schemas.unset:
+ continue
+ serialized_data = parameter.serialize(parameter_data)
+ _path_params.update(serialized_data)
+
+ for k, v in _path_params.items():
+ used_path = used_path.replace('{%s}' % k, v)
+
+ _headers = HTTPHeaderDict()
+ # TODO add cookie handling
+ if accept_content_types:
+ for accept_content_type in accept_content_types:
+ _headers.add('Accept', accept_content_type)
+
+ response = self.api_client.call_api(
+ resource_path=used_path,
+ method='get'.upper(),
+ headers=_headers,
+ stream=stream,
+ timeout=timeout,
+ )
+
+ if skip_deserialization:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+ else:
+ response_for_status = _status_code_to_response.get(str(response.status))
+ if response_for_status:
+ api_response = response_for_status.deserialize(response, self.api_client.configuration)
+ else:
+ api_response = api_client.ApiResponseWithoutDeserialization(response=response)
+
+ if not 200 <= response.status <= 299:
+ raise exceptions.ApiException(api_response=api_response)
+
+ return api_response
+
+
+class ApiV1TracksTrackIdViewerCountGet(BaseApi):
+ # this class is used by api classes that refer to endpoints with operationId fn names
+
+ def api_v1_tracks_track_id_viewer_count_get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_viewer_count_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
+class ApiForget(BaseApi):
+ # this class is used by api classes that refer to endpoints by path and http method names
+
+ def get(
+ self: BaseApi,
+ path_params: RequestPathParams = frozendict.frozendict(),
+ accept_content_types: typing.Tuple[str] = _all_accept_content_types,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ skip_deserialization: bool = False,
+ ) -> typing.Union[
+ ApiResponseFor200,
+ api_client.ApiResponseWithoutDeserialization
+ ]:
+ return self._api_v1_tracks_track_id_viewer_count_get_oapg(
+ path_params=path_params,
+ accept_content_types=accept_content_types,
+ stream=stream,
+ timeout=timeout,
+ skip_deserialization=skip_deserialization
+ )
+
+
diff --git a/dreamkast_api/openapi_client/rest.py b/dreamkast_api/openapi_client/rest.py
new file mode 100644
index 0000000..cd88f17
--- /dev/null
+++ b/dreamkast_api/openapi_client/rest.py
@@ -0,0 +1,253 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import logging
+import ssl
+from urllib.parse import urlencode
+import typing
+
+import certifi
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+from openapi_client.exceptions import ApiException, ApiValueError
+
+
+logger = logging.getLogger(__name__)
+
+
+class RESTClientObject(object):
+
+ def __init__(self, configuration, pools_size=4, maxsize=None):
+ # urllib3.PoolManager will pass all kw parameters to connectionpool
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/poolmanager.py#L75 # noqa: E501
+ # https://github.com/shazow/urllib3/blob/f9409436f83aeb79fbaf090181cd81b784f1b8ce/urllib3/connectionpool.py#L680 # noqa: E501
+ # maxsize is the number of requests to host that are allowed in parallel # noqa: E501
+ # Custom SSL certificates and client certificates: http://urllib3.readthedocs.io/en/latest/advanced-usage.html # noqa: E501
+
+ # cert_reqs
+ if configuration.verify_ssl:
+ cert_reqs = ssl.CERT_REQUIRED
+ else:
+ cert_reqs = ssl.CERT_NONE
+
+ # ca_certs
+ if configuration.ssl_ca_cert:
+ ca_certs = configuration.ssl_ca_cert
+ else:
+ # if not set certificate file, use Mozilla's root certificates.
+ ca_certs = certifi.where()
+
+ addition_pool_args = {}
+ if configuration.assert_hostname is not None:
+ addition_pool_args['assert_hostname'] = configuration.assert_hostname # noqa: E501
+
+ if configuration.retries is not None:
+ addition_pool_args['retries'] = configuration.retries
+
+ if configuration.socket_options is not None:
+ addition_pool_args['socket_options'] = configuration.socket_options
+
+ if maxsize is None:
+ if configuration.connection_pool_maxsize is not None:
+ maxsize = configuration.connection_pool_maxsize
+ else:
+ maxsize = 4
+
+ # https pool manager
+ if configuration.proxy:
+ self.pool_manager = urllib3.ProxyManager(
+ num_pools=pools_size,
+ maxsize=maxsize,
+ cert_reqs=cert_reqs,
+ ca_certs=ca_certs,
+ cert_file=configuration.cert_file,
+ key_file=configuration.key_file,
+ proxy_url=configuration.proxy,
+ proxy_headers=configuration.proxy_headers,
+ **addition_pool_args
+ )
+ else:
+ self.pool_manager = urllib3.PoolManager(
+ num_pools=pools_size,
+ maxsize=maxsize,
+ cert_reqs=cert_reqs,
+ ca_certs=ca_certs,
+ cert_file=configuration.cert_file,
+ key_file=configuration.key_file,
+ **addition_pool_args
+ )
+
+ def request(
+ self,
+ method: str,
+ url: str,
+ headers: typing.Optional[HTTPHeaderDict] = None,
+ fields: typing.Optional[typing.Tuple[typing.Tuple[str, typing.Any], ...]] = None,
+ body: typing.Optional[typing.Union[str, bytes]] = None,
+ stream: bool = False,
+ timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
+ ) -> urllib3.HTTPResponse:
+ """Perform requests.
+
+ :param method: http request method
+ :param url: http request url
+ :param headers: http request headers
+ :param body: request body, for other types
+ :param fields: request parameters for
+ `application/x-www-form-urlencoded`
+ or `multipart/form-data`
+ :param stream: if True, the urllib3.HTTPResponse object will
+ be returned without reading/decoding response
+ data. Default is False.
+ :param timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ """
+ method = method.upper()
+ assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT',
+ 'PATCH', 'OPTIONS']
+
+ if fields and body:
+ raise ApiValueError(
+ "body parameter cannot be used with fields parameter."
+ )
+
+ fields = fields or {}
+ headers = headers or {}
+
+ if timeout:
+ if isinstance(timeout, (int, float)): # noqa: E501,F821
+ timeout = urllib3.Timeout(total=timeout)
+ elif (isinstance(timeout, tuple) and
+ len(timeout) == 2):
+ timeout = urllib3.Timeout(connect=timeout[0], read=timeout[1])
+
+ try:
+ # For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
+ if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
+ if 'Content-Type' not in headers and body is None:
+ r = self.pool_manager.request(
+ method,
+ url,
+ preload_content=not stream,
+ timeout=timeout,
+ headers=headers
+ )
+ elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
+ r = self.pool_manager.request(
+ method, url,
+ fields=fields,
+ encode_multipart=False,
+ preload_content=not stream,
+ timeout=timeout,
+ headers=headers)
+ elif headers['Content-Type'] == 'multipart/form-data':
+ # must del headers['Content-Type'], or the correct
+ # Content-Type which generated by urllib3 will be
+ # overwritten.
+ del headers['Content-Type']
+ r = self.pool_manager.request(
+ method, url,
+ fields=fields,
+ encode_multipart=True,
+ preload_content=not stream,
+ timeout=timeout,
+ headers=headers)
+ # Pass a `string` parameter directly in the body to support
+ # other content types than Json when `body` argument is
+ # provided in serialized form
+ elif isinstance(body, str) or isinstance(body, bytes):
+ request_body = body
+ r = self.pool_manager.request(
+ method, url,
+ body=request_body,
+ preload_content=not stream,
+ timeout=timeout,
+ headers=headers)
+ else:
+ # Cannot generate the request from given parameters
+ msg = """Cannot prepare a request message for provided
+ arguments. Please check that your arguments match
+ declared content type."""
+ raise ApiException(status=0, reason=msg)
+ # For `GET`, `HEAD`
+ else:
+ r = self.pool_manager.request(method, url,
+ preload_content=not stream,
+ timeout=timeout,
+ headers=headers)
+ except urllib3.exceptions.SSLError as e:
+ msg = "{0}\n{1}".format(type(e).__name__, str(e))
+ raise ApiException(status=0, reason=msg)
+
+ if not stream:
+ # log response body
+ logger.debug("response body: %s", r.data)
+
+ return r
+
+ def GET(self, url, headers=None, stream=False,
+ timeout=None, fields=None) -> urllib3.HTTPResponse:
+ return self.request("GET", url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ fields=fields)
+
+ def HEAD(self, url, headers=None, stream=False,
+ timeout=None, fields=None) -> urllib3.HTTPResponse:
+ return self.request("HEAD", url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ fields=fields)
+
+ def OPTIONS(self, url, headers=None,
+ body=None, stream=False, timeout=None, fields=None) -> urllib3.HTTPResponse:
+ return self.request("OPTIONS", url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ body=body, fields=fields)
+
+ def DELETE(self, url, headers=None, body=None,
+ stream=False, timeout=None, fields=None) -> urllib3.HTTPResponse:
+ return self.request("DELETE", url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ body=body, fields=fields)
+
+ def POST(self, url, headers=None,
+ body=None, stream=False, timeout=None, fields=None) -> urllib3.HTTPResponse:
+ return self.request("POST", url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ body=body, fields=fields)
+
+ def PUT(self, url, headers=None,
+ body=None, stream=False, timeout=None, fields=None) -> urllib3.HTTPResponse:
+ return self.request("PUT", url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ body=body, fields=fields)
+
+ def PATCH(self, url, headers=None,
+ body=None, stream=False, timeout=None, fields=None) -> urllib3.HTTPResponse:
+ return self.request("PATCH", url,
+ headers=headers,
+ stream=stream,
+ timeout=timeout,
+ body=body, fields=fields)
diff --git a/dreamkast_api/openapi_client/schemas.py b/dreamkast_api/openapi_client/schemas.py
new file mode 100644
index 0000000..3b8f1fd
--- /dev/null
+++ b/dreamkast_api/openapi_client/schemas.py
@@ -0,0 +1,2459 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from collections import defaultdict
+from datetime import date, datetime, timedelta # noqa: F401
+import functools
+import decimal
+import io
+import re
+import types
+import typing
+import uuid
+
+from dateutil.parser.isoparser import isoparser, _takes_ascii
+import frozendict
+
+from openapi_client.exceptions import (
+ ApiTypeError,
+ ApiValueError,
+)
+from openapi_client.configuration import (
+ Configuration,
+)
+
+
+class Unset(object):
+ """
+ An instance of this class is set as the default value for object type(dict) properties that are optional
+ When a property has an unset value, that property will not be assigned in the dict
+ """
+ pass
+
+unset = Unset()
+
+none_type = type(None)
+file_type = io.IOBase
+
+
+class FileIO(io.FileIO):
+ """
+ A class for storing files
+ Note: this class is not immutable
+ """
+
+ def __new__(cls, arg: typing.Union[io.FileIO, io.BufferedReader]):
+ if isinstance(arg, (io.FileIO, io.BufferedReader)):
+ if arg.closed:
+ raise ApiValueError('Invalid file state; file is closed and must be open')
+ arg.close()
+ inst = super(FileIO, cls).__new__(cls, arg.name)
+ super(FileIO, inst).__init__(arg.name)
+ return inst
+ raise ApiValueError('FileIO must be passed arg which contains the open file')
+
+ def __init__(self, arg: typing.Union[io.FileIO, io.BufferedReader]):
+ pass
+
+
+def update(d: dict, u: dict):
+ """
+ Adds u to d
+ Where each dict is defaultdict(set)
+ """
+ if not u:
+ return d
+ for k, v in u.items():
+ if k not in d:
+ d[k] = v
+ else:
+ d[k] = d[k] | v
+
+
+class ValidationMetadata(frozendict.frozendict):
+ """
+ A class storing metadata that is needed to validate OpenApi Schema payloads
+ """
+ def __new__(
+ cls,
+ path_to_item: typing.Tuple[typing.Union[str, int], ...] = tuple(['args[0]']),
+ from_server: bool = False,
+ configuration: typing.Optional[Configuration] = None,
+ seen_classes: typing.FrozenSet[typing.Type] = frozenset(),
+ validated_path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Type]] = frozendict.frozendict()
+ ):
+ """
+ Args:
+ path_to_item: the path to the current data being instantiated.
+ For {'a': [1]} if the code is handling, 1, then the path is ('args[0]', 'a', 0)
+ This changes from location to location
+ from_server: whether or not this data came form the server
+ True when receiving server data
+ False when instantiating model with client side data not form the server
+ This does not change from location to location
+ configuration: the Configuration instance to use
+ This is needed because in Configuration:
+ - one can disable validation checking
+ This does not change from location to location
+ seen_classes: when deserializing data that matches multiple schemas, this is used to store
+ the schemas that have been traversed. This is used to stop processing when a cycle is seen.
+ This changes from location to location
+ validated_path_to_schemas: stores the already validated schema classes for a given path location
+ This does not change from location to location
+ """
+ return super().__new__(
+ cls,
+ path_to_item=path_to_item,
+ from_server=from_server,
+ configuration=configuration,
+ seen_classes=seen_classes,
+ validated_path_to_schemas=validated_path_to_schemas
+ )
+
+ def validation_ran_earlier(self, cls: type) -> bool:
+ validated_schemas = self.validated_path_to_schemas.get(self.path_to_item, set())
+ validation_ran_earlier = validated_schemas and cls in validated_schemas
+ if validation_ran_earlier:
+ return True
+ if cls in self.seen_classes:
+ return True
+ return False
+
+ @property
+ def path_to_item(self) -> typing.Tuple[typing.Union[str, int], ...]:
+ return self.get('path_to_item')
+
+ @property
+ def from_server(self) -> bool:
+ return self.get('from_server')
+
+ @property
+ def configuration(self) -> typing.Optional[Configuration]:
+ return self.get('configuration')
+
+ @property
+ def seen_classes(self) -> typing.FrozenSet[typing.Type]:
+ return self.get('seen_classes')
+
+ @property
+ def validated_path_to_schemas(self) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Type]]:
+ return self.get('validated_path_to_schemas')
+
+
+class Singleton:
+ """
+ Enums and singletons are the same
+ The same instance is returned for a given key of (cls, arg)
+ """
+ _instances = {}
+
+ def __new__(cls, arg: typing.Any, **kwargs):
+ """
+ cls base classes: BoolClass, NoneClass, str, decimal.Decimal
+ The 3rd key is used in the tuple below for a corner case where an enum contains integer 1
+ However 1.0 can also be ingested into that enum schema because 1.0 == 1 and
+ Decimal('1.0') == Decimal('1')
+ But if we omitted the 3rd value in the key, then Decimal('1.0') would be stored as Decimal('1')
+ and json serializing that instance would be '1' rather than the expected '1.0'
+ Adding the 3rd value, the str of arg ensures that 1.0 -> Decimal('1.0') which is serialized as 1.0
+ """
+ key = (cls, arg, str(arg))
+ if key not in cls._instances:
+ if isinstance(arg, (none_type, bool, BoolClass, NoneClass)):
+ inst = super().__new__(cls)
+ cls._instances[key] = inst
+ else:
+ cls._instances[key] = super().__new__(cls, arg)
+ return cls._instances[key]
+
+ def __repr__(self):
+ if isinstance(self, NoneClass):
+ return f'<{self.__class__.__name__}: None>'
+ elif isinstance(self, BoolClass):
+ if bool(self):
+ return f'<{self.__class__.__name__}: True>'
+ return f'<{self.__class__.__name__}: False>'
+ return f'<{self.__class__.__name__}: {super().__repr__()}>'
+
+
+class classproperty:
+
+ def __init__(self, fget):
+ self.fget = fget
+
+ def __get__(self, owner_self, owner_cls):
+ return self.fget(owner_cls)
+
+
+class NoneClass(Singleton):
+ @classproperty
+ def NONE(cls):
+ return cls(None)
+
+ def __bool__(self) -> bool:
+ return False
+
+
+class BoolClass(Singleton):
+ @classproperty
+ def TRUE(cls):
+ return cls(True)
+
+ @classproperty
+ def FALSE(cls):
+ return cls(False)
+
+ @functools.lru_cache()
+ def __bool__(self) -> bool:
+ for key, instance in self._instances.items():
+ if self is instance:
+ return bool(key[1])
+ raise ValueError('Unable to find the boolean value of this instance')
+
+
+class MetaOapgTyped:
+ exclusive_maximum: typing.Union[int, float]
+ inclusive_maximum: typing.Union[int, float]
+ exclusive_minimum: typing.Union[int, float]
+ inclusive_minimum: typing.Union[int, float]
+ max_items: int
+ min_items: int
+ discriminator: typing.Dict[str, typing.Dict[str, typing.Type['Schema']]]
+
+
+ class properties:
+ # to hold object properties
+ pass
+
+ additional_properties: typing.Optional[typing.Type['Schema']]
+ max_properties: int
+ min_properties: int
+ all_of: typing.List[typing.Type['Schema']]
+ one_of: typing.List[typing.Type['Schema']]
+ any_of: typing.List[typing.Type['Schema']]
+ not_schema: typing.Type['Schema']
+ max_length: int
+ min_length: int
+ items: typing.Type['Schema']
+
+
+class Schema:
+ """
+ the base class of all swagger/openapi schemas/models
+ """
+ __inheritable_primitive_types_set = {decimal.Decimal, str, tuple, frozendict.frozendict, FileIO, bytes, BoolClass, NoneClass}
+ _types: typing.Set[typing.Type]
+ MetaOapg = MetaOapgTyped
+
+ @staticmethod
+ def __get_valid_classes_phrase(input_classes):
+ """Returns a string phrase describing what types are allowed"""
+ all_classes = list(input_classes)
+ all_classes = sorted(all_classes, key=lambda cls: cls.__name__)
+ all_class_names = [cls.__name__ for cls in all_classes]
+ if len(all_class_names) == 1:
+ return "is {0}".format(all_class_names[0])
+ return "is one of [{0}]".format(", ".join(all_class_names))
+
+ @staticmethod
+ def _get_class_oapg(item_cls: typing.Union[types.FunctionType, staticmethod, typing.Type['Schema']]) -> typing.Type['Schema']:
+ if isinstance(item_cls, types.FunctionType):
+ # referenced schema
+ return item_cls()
+ elif isinstance(item_cls, staticmethod):
+ # referenced schema
+ return item_cls.__func__()
+ return item_cls
+
+ @classmethod
+ def __type_error_message(
+ cls, var_value=None, var_name=None, valid_classes=None, key_type=None
+ ):
+ """
+ Keyword Args:
+ var_value (any): the variable which has the type_error
+ var_name (str): the name of the variable which has the typ error
+ valid_classes (tuple): the accepted classes for current_item's
+ value
+ key_type (bool): False if our value is a value in a dict
+ True if it is a key in a dict
+ False if our item is an item in a tuple
+ """
+ key_or_value = "value"
+ if key_type:
+ key_or_value = "key"
+ valid_classes_phrase = cls.__get_valid_classes_phrase(valid_classes)
+ msg = "Invalid type. Required {1} type {2} and " "passed type was {3}".format(
+ var_name,
+ key_or_value,
+ valid_classes_phrase,
+ type(var_value).__name__,
+ )
+ return msg
+
+ @classmethod
+ def __get_type_error(cls, var_value, path_to_item, valid_classes, key_type=False):
+ error_msg = cls.__type_error_message(
+ var_name=path_to_item[-1],
+ var_value=var_value,
+ valid_classes=valid_classes,
+ key_type=key_type,
+ )
+ return ApiTypeError(
+ error_msg,
+ path_to_item=path_to_item,
+ valid_classes=valid_classes,
+ key_type=key_type,
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
+ """
+ Schema _validate_oapg
+ All keyword validation except for type checking was done in calling stack frames
+ If those validations passed, the validated classes are collected in path_to_schemas
+
+ Returns:
+ path_to_schemas: a map of path to schemas
+
+ Raises:
+ ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
+ ApiTypeError: when the input type is not in the list of allowed spec types
+ """
+ base_class = type(arg)
+ if base_class not in cls._types:
+ raise cls.__get_type_error(
+ arg,
+ validation_metadata.path_to_item,
+ cls._types,
+ key_type=False,
+ )
+
+ path_to_schemas = {validation_metadata.path_to_item: set()}
+ path_to_schemas[validation_metadata.path_to_item].add(cls)
+ path_to_schemas[validation_metadata.path_to_item].add(base_class)
+ return path_to_schemas
+
+ @staticmethod
+ def _process_schema_classes_oapg(
+ schema_classes: typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]
+ ):
+ """
+ Processes and mutates schema_classes
+ If a SomeSchema is a subclass of DictSchema then remove DictSchema because it is already included
+ """
+ if len(schema_classes) < 2:
+ return
+ if len(schema_classes) > 2 and UnsetAnyTypeSchema in schema_classes:
+ schema_classes.remove(UnsetAnyTypeSchema)
+ x_schema = schema_type_classes & schema_classes
+ if not x_schema:
+ return
+ x_schema = x_schema.pop()
+ if any(c is not x_schema and issubclass(c, x_schema) for c in schema_classes):
+ # needed to not have a mro error in get_new_class
+ schema_classes.remove(x_schema)
+
+ @classmethod
+ def __get_new_cls(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata
+ ) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]:
+ """
+ Make a new dynamic class and return an instance of that class
+ We are making an instance of cls, but instead of making cls
+ make a new class, new_cls
+ which includes dynamic bases including cls
+ return an instance of that new class
+
+ Dict property + List Item Assignment Use cases:
+ 1. value is NOT an instance of the required schema class
+ the value is validated by _validate_oapg
+ _validate_oapg returns a key value pair
+ where the key is the path to the item, and the value will be the required manufactured class
+ made out of the matching schemas
+ 2. value is an instance of the the correct schema type
+ the value is NOT validated by _validate_oapg, _validate_oapg only checks that the instance is of the correct schema type
+ for this value, _validate_oapg does NOT return an entry for it in _path_to_schemas
+ and in list/dict _get_items_oapg,_get_properties_oapg the value will be directly assigned
+ because value is of the correct type, and validation was run earlier when the instance was created
+ """
+ _path_to_schemas = {}
+ if validation_metadata.validated_path_to_schemas:
+ update(_path_to_schemas, validation_metadata.validated_path_to_schemas)
+ if not validation_metadata.validation_ran_earlier(cls):
+ other_path_to_schemas = cls._validate_oapg(arg, validation_metadata=validation_metadata)
+ update(_path_to_schemas, other_path_to_schemas)
+ # loop through it make a new class for each entry
+ # do not modify the returned result because it is cached and we would be modifying the cached value
+ path_to_schemas = {}
+ for path, schema_classes in _path_to_schemas.items():
+ """
+ Use cases
+ 1. N number of schema classes + enum + type != bool/None, classes in path_to_schemas: tuple/frozendict.frozendict/str/Decimal/bytes/FileIo
+ needs Singleton added
+ 2. N number of schema classes + enum + type == bool/None, classes in path_to_schemas: BoolClass/NoneClass
+ Singleton already added
+ 3. N number of schema classes, classes in path_to_schemas: BoolClass/NoneClass/tuple/frozendict.frozendict/str/Decimal/bytes/FileIo
+ """
+ cls._process_schema_classes_oapg(schema_classes)
+ enum_schema = any(
+ issubclass(this_cls, EnumBase) for this_cls in schema_classes)
+ inheritable_primitive_type = schema_classes.intersection(cls.__inheritable_primitive_types_set)
+ chosen_schema_classes = schema_classes - inheritable_primitive_type
+ suffix = tuple(inheritable_primitive_type)
+ if enum_schema and suffix[0] not in {NoneClass, BoolClass}:
+ suffix = (Singleton,) + suffix
+
+ used_classes = tuple(sorted(chosen_schema_classes, key=lambda a_cls: a_cls.__name__)) + suffix
+ mfg_cls = get_new_class(class_name='DynamicSchema', bases=used_classes)
+ path_to_schemas[path] = mfg_cls
+
+ return path_to_schemas
+
+ @classmethod
+ def _get_new_instance_without_conversion_oapg(
+ cls,
+ arg: typing.Any,
+ path_to_item: typing.Tuple[typing.Union[str, int], ...],
+ path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]
+ ):
+ # We have a Dynamic class and we are making an instance of it
+ if issubclass(cls, frozendict.frozendict) and issubclass(cls, DictBase):
+ properties = cls._get_properties_oapg(arg, path_to_item, path_to_schemas)
+ return super(Schema, cls).__new__(cls, properties)
+ elif issubclass(cls, tuple) and issubclass(cls, ListBase):
+ items = cls._get_items_oapg(arg, path_to_item, path_to_schemas)
+ return super(Schema, cls).__new__(cls, items)
+ """
+ str = openapi str, date, and datetime
+ decimal.Decimal = openapi int and float
+ FileIO = openapi binary type and the user inputs a file
+ bytes = openapi binary type and the user inputs bytes
+ """
+ return super(Schema, cls).__new__(cls, arg)
+
+ @classmethod
+ def from_openapi_data_oapg(
+ cls,
+ arg: typing.Union[
+ str,
+ date,
+ datetime,
+ int,
+ float,
+ decimal.Decimal,
+ bool,
+ None,
+ 'Schema',
+ dict,
+ frozendict.frozendict,
+ tuple,
+ list,
+ io.FileIO,
+ io.BufferedReader,
+ bytes
+ ],
+ _configuration: typing.Optional[Configuration]
+ ):
+ """
+ Schema from_openapi_data_oapg
+ """
+ from_server = True
+ validated_path_to_schemas = {}
+ arg = cast_to_allowed_types(arg, from_server, validated_path_to_schemas)
+ validation_metadata = ValidationMetadata(
+ from_server=from_server, configuration=_configuration, validated_path_to_schemas=validated_path_to_schemas)
+ path_to_schemas = cls.__get_new_cls(arg, validation_metadata)
+ new_cls = path_to_schemas[validation_metadata.path_to_item]
+ new_inst = new_cls._get_new_instance_without_conversion_oapg(
+ arg,
+ validation_metadata.path_to_item,
+ path_to_schemas
+ )
+ return new_inst
+
+ @staticmethod
+ def __get_input_dict(*args, **kwargs) -> frozendict.frozendict:
+ input_dict = {}
+ if args and isinstance(args[0], (dict, frozendict.frozendict)):
+ input_dict.update(args[0])
+ if kwargs:
+ input_dict.update(kwargs)
+ return frozendict.frozendict(input_dict)
+
+ @staticmethod
+ def __remove_unsets(kwargs):
+ return {key: val for key, val in kwargs.items() if val is not unset}
+
+ def __new__(cls, *args: typing.Union[dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema'], _configuration: typing.Optional[Configuration] = None, **kwargs: typing.Union[dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema', Unset]):
+ """
+ Schema __new__
+
+ Args:
+ args (int/float/decimal.Decimal/str/list/tuple/dict/frozendict.frozendict/bool/None): the value
+ kwargs (str, int/float/decimal.Decimal/str/list/tuple/dict/frozendict.frozendict/bool/None): dict values
+ _configuration: contains the Configuration that enables json schema validation keywords
+ like minItems, minLength etc
+
+ Note: double underscores are used here because pycharm thinks that these variables
+ are instance properties if they are named normally :(
+ """
+ __kwargs = cls.__remove_unsets(kwargs)
+ if not args and not __kwargs:
+ raise TypeError(
+ 'No input given. args or kwargs must be given.'
+ )
+ if not __kwargs and args and not isinstance(args[0], dict):
+ __arg = args[0]
+ else:
+ __arg = cls.__get_input_dict(*args, **__kwargs)
+ __from_server = False
+ __validated_path_to_schemas = {}
+ __arg = cast_to_allowed_types(
+ __arg, __from_server, __validated_path_to_schemas)
+ __validation_metadata = ValidationMetadata(
+ configuration=_configuration, from_server=__from_server, validated_path_to_schemas=__validated_path_to_schemas)
+ __path_to_schemas = cls.__get_new_cls(__arg, __validation_metadata)
+ __new_cls = __path_to_schemas[__validation_metadata.path_to_item]
+ return __new_cls._get_new_instance_without_conversion_oapg(
+ __arg,
+ __validation_metadata.path_to_item,
+ __path_to_schemas
+ )
+
+ def __init__(
+ self,
+ *args: typing.Union[
+ dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema'],
+ _configuration: typing.Optional[Configuration] = None,
+ **kwargs: typing.Union[
+ dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, 'Schema', Unset
+ ]
+ ):
+ """
+ this is needed to fix 'Unexpected argument' warning in pycharm
+ this code does nothing because all Schema instances are immutable
+ this means that all input data is passed into and used in new, and after the new instance is made
+ no new attributes are assigned and init is not used
+ """
+ pass
+
+"""
+import itertools
+data_types = ('None', 'FrozenDict', 'Tuple', 'Str', 'Decimal', 'Bool')
+type_to_cls = {
+ 'None': 'NoneClass',
+ 'FrozenDict': 'frozendict.frozendict',
+ 'Tuple': 'tuple',
+ 'Str': 'str',
+ 'Decimal': 'decimal.Decimal',
+ 'Bool': 'BoolClass'
+}
+cls_tuples = [v for v in itertools.combinations(data_types, 5)]
+typed_classes = [f"class {''.join(cls_tuple)}Mixin({', '.join(type_to_cls[typ] for typ in cls_tuple)}):\n pass" for cls_tuple in cls_tuples]
+for cls in typed_classes:
+ print(cls)
+object_classes = [f"{''.join(cls_tuple)}Mixin = object" for cls_tuple in cls_tuples]
+for cls in object_classes:
+ print(cls)
+"""
+if typing.TYPE_CHECKING:
+ # qty 1
+ NoneMixin = NoneClass
+ FrozenDictMixin = frozendict.frozendict
+ TupleMixin = tuple
+ StrMixin = str
+ DecimalMixin = decimal.Decimal
+ BoolMixin = BoolClass
+ BytesMixin = bytes
+ FileMixin = FileIO
+ # qty 2
+ class BinaryMixin(bytes, FileIO):
+ pass
+ class NoneFrozenDictMixin(NoneClass, frozendict.frozendict):
+ pass
+ class NoneTupleMixin(NoneClass, tuple):
+ pass
+ class NoneStrMixin(NoneClass, str):
+ pass
+ class NoneDecimalMixin(NoneClass, decimal.Decimal):
+ pass
+ class NoneBoolMixin(NoneClass, BoolClass):
+ pass
+ class FrozenDictTupleMixin(frozendict.frozendict, tuple):
+ pass
+ class FrozenDictStrMixin(frozendict.frozendict, str):
+ pass
+ class FrozenDictDecimalMixin(frozendict.frozendict, decimal.Decimal):
+ pass
+ class FrozenDictBoolMixin(frozendict.frozendict, BoolClass):
+ pass
+ class TupleStrMixin(tuple, str):
+ pass
+ class TupleDecimalMixin(tuple, decimal.Decimal):
+ pass
+ class TupleBoolMixin(tuple, BoolClass):
+ pass
+ class StrDecimalMixin(str, decimal.Decimal):
+ pass
+ class StrBoolMixin(str, BoolClass):
+ pass
+ class DecimalBoolMixin(decimal.Decimal, BoolClass):
+ pass
+ # qty 3
+ class NoneFrozenDictTupleMixin(NoneClass, frozendict.frozendict, tuple):
+ pass
+ class NoneFrozenDictStrMixin(NoneClass, frozendict.frozendict, str):
+ pass
+ class NoneFrozenDictDecimalMixin(NoneClass, frozendict.frozendict, decimal.Decimal):
+ pass
+ class NoneFrozenDictBoolMixin(NoneClass, frozendict.frozendict, BoolClass):
+ pass
+ class NoneTupleStrMixin(NoneClass, tuple, str):
+ pass
+ class NoneTupleDecimalMixin(NoneClass, tuple, decimal.Decimal):
+ pass
+ class NoneTupleBoolMixin(NoneClass, tuple, BoolClass):
+ pass
+ class NoneStrDecimalMixin(NoneClass, str, decimal.Decimal):
+ pass
+ class NoneStrBoolMixin(NoneClass, str, BoolClass):
+ pass
+ class NoneDecimalBoolMixin(NoneClass, decimal.Decimal, BoolClass):
+ pass
+ class FrozenDictTupleStrMixin(frozendict.frozendict, tuple, str):
+ pass
+ class FrozenDictTupleDecimalMixin(frozendict.frozendict, tuple, decimal.Decimal):
+ pass
+ class FrozenDictTupleBoolMixin(frozendict.frozendict, tuple, BoolClass):
+ pass
+ class FrozenDictStrDecimalMixin(frozendict.frozendict, str, decimal.Decimal):
+ pass
+ class FrozenDictStrBoolMixin(frozendict.frozendict, str, BoolClass):
+ pass
+ class FrozenDictDecimalBoolMixin(frozendict.frozendict, decimal.Decimal, BoolClass):
+ pass
+ class TupleStrDecimalMixin(tuple, str, decimal.Decimal):
+ pass
+ class TupleStrBoolMixin(tuple, str, BoolClass):
+ pass
+ class TupleDecimalBoolMixin(tuple, decimal.Decimal, BoolClass):
+ pass
+ class StrDecimalBoolMixin(str, decimal.Decimal, BoolClass):
+ pass
+ # qty 4
+ class NoneFrozenDictTupleStrMixin(NoneClass, frozendict.frozendict, tuple, str):
+ pass
+ class NoneFrozenDictTupleDecimalMixin(NoneClass, frozendict.frozendict, tuple, decimal.Decimal):
+ pass
+ class NoneFrozenDictTupleBoolMixin(NoneClass, frozendict.frozendict, tuple, BoolClass):
+ pass
+ class NoneFrozenDictStrDecimalMixin(NoneClass, frozendict.frozendict, str, decimal.Decimal):
+ pass
+ class NoneFrozenDictStrBoolMixin(NoneClass, frozendict.frozendict, str, BoolClass):
+ pass
+ class NoneFrozenDictDecimalBoolMixin(NoneClass, frozendict.frozendict, decimal.Decimal, BoolClass):
+ pass
+ class NoneTupleStrDecimalMixin(NoneClass, tuple, str, decimal.Decimal):
+ pass
+ class NoneTupleStrBoolMixin(NoneClass, tuple, str, BoolClass):
+ pass
+ class NoneTupleDecimalBoolMixin(NoneClass, tuple, decimal.Decimal, BoolClass):
+ pass
+ class NoneStrDecimalBoolMixin(NoneClass, str, decimal.Decimal, BoolClass):
+ pass
+ class FrozenDictTupleStrDecimalMixin(frozendict.frozendict, tuple, str, decimal.Decimal):
+ pass
+ class FrozenDictTupleStrBoolMixin(frozendict.frozendict, tuple, str, BoolClass):
+ pass
+ class FrozenDictTupleDecimalBoolMixin(frozendict.frozendict, tuple, decimal.Decimal, BoolClass):
+ pass
+ class FrozenDictStrDecimalBoolMixin(frozendict.frozendict, str, decimal.Decimal, BoolClass):
+ pass
+ class TupleStrDecimalBoolMixin(tuple, str, decimal.Decimal, BoolClass):
+ pass
+ # qty 5
+ class NoneFrozenDictTupleStrDecimalMixin(NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal):
+ pass
+ class NoneFrozenDictTupleStrBoolMixin(NoneClass, frozendict.frozendict, tuple, str, BoolClass):
+ pass
+ class NoneFrozenDictTupleDecimalBoolMixin(NoneClass, frozendict.frozendict, tuple, decimal.Decimal, BoolClass):
+ pass
+ class NoneFrozenDictStrDecimalBoolMixin(NoneClass, frozendict.frozendict, str, decimal.Decimal, BoolClass):
+ pass
+ class NoneTupleStrDecimalBoolMixin(NoneClass, tuple, str, decimal.Decimal, BoolClass):
+ pass
+ class FrozenDictTupleStrDecimalBoolMixin(frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass):
+ pass
+ # qty 6
+ class NoneFrozenDictTupleStrDecimalBoolMixin(NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass):
+ pass
+ # qty 8
+ class NoneFrozenDictTupleStrDecimalBoolFileBytesMixin(NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass, FileIO, bytes):
+ pass
+else:
+ # qty 1
+ class NoneMixin:
+ _types = {NoneClass}
+ class FrozenDictMixin:
+ _types = {frozendict.frozendict}
+ class TupleMixin:
+ _types = {tuple}
+ class StrMixin:
+ _types = {str}
+ class DecimalMixin:
+ _types = {decimal.Decimal}
+ class BoolMixin:
+ _types = {BoolClass}
+ class BytesMixin:
+ _types = {bytes}
+ class FileMixin:
+ _types = {FileIO}
+ # qty 2
+ class BinaryMixin:
+ _types = {bytes, FileIO}
+ class NoneFrozenDictMixin:
+ _types = {NoneClass, frozendict.frozendict}
+ class NoneTupleMixin:
+ _types = {NoneClass, tuple}
+ class NoneStrMixin:
+ _types = {NoneClass, str}
+ class NoneDecimalMixin:
+ _types = {NoneClass, decimal.Decimal}
+ class NoneBoolMixin:
+ _types = {NoneClass, BoolClass}
+ class FrozenDictTupleMixin:
+ _types = {frozendict.frozendict, tuple}
+ class FrozenDictStrMixin:
+ _types = {frozendict.frozendict, str}
+ class FrozenDictDecimalMixin:
+ _types = {frozendict.frozendict, decimal.Decimal}
+ class FrozenDictBoolMixin:
+ _types = {frozendict.frozendict, BoolClass}
+ class TupleStrMixin:
+ _types = {tuple, str}
+ class TupleDecimalMixin:
+ _types = {tuple, decimal.Decimal}
+ class TupleBoolMixin:
+ _types = {tuple, BoolClass}
+ class StrDecimalMixin:
+ _types = {str, decimal.Decimal}
+ class StrBoolMixin:
+ _types = {str, BoolClass}
+ class DecimalBoolMixin:
+ _types = {decimal.Decimal, BoolClass}
+ # qty 3
+ class NoneFrozenDictTupleMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple}
+ class NoneFrozenDictStrMixin:
+ _types = {NoneClass, frozendict.frozendict, str}
+ class NoneFrozenDictDecimalMixin:
+ _types = {NoneClass, frozendict.frozendict, decimal.Decimal}
+ class NoneFrozenDictBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, BoolClass}
+ class NoneTupleStrMixin:
+ _types = {NoneClass, tuple, str}
+ class NoneTupleDecimalMixin:
+ _types = {NoneClass, tuple, decimal.Decimal}
+ class NoneTupleBoolMixin:
+ _types = {NoneClass, tuple, BoolClass}
+ class NoneStrDecimalMixin:
+ _types = {NoneClass, str, decimal.Decimal}
+ class NoneStrBoolMixin:
+ _types = {NoneClass, str, BoolClass}
+ class NoneDecimalBoolMixin:
+ _types = {NoneClass, decimal.Decimal, BoolClass}
+ class FrozenDictTupleStrMixin:
+ _types = {frozendict.frozendict, tuple, str}
+ class FrozenDictTupleDecimalMixin:
+ _types = {frozendict.frozendict, tuple, decimal.Decimal}
+ class FrozenDictTupleBoolMixin:
+ _types = {frozendict.frozendict, tuple, BoolClass}
+ class FrozenDictStrDecimalMixin:
+ _types = {frozendict.frozendict, str, decimal.Decimal}
+ class FrozenDictStrBoolMixin:
+ _types = {frozendict.frozendict, str, BoolClass}
+ class FrozenDictDecimalBoolMixin:
+ _types = {frozendict.frozendict, decimal.Decimal, BoolClass}
+ class TupleStrDecimalMixin:
+ _types = {tuple, str, decimal.Decimal}
+ class TupleStrBoolMixin:
+ _types = {tuple, str, BoolClass}
+ class TupleDecimalBoolMixin:
+ _types = {tuple, decimal.Decimal, BoolClass}
+ class StrDecimalBoolMixin:
+ _types = {str, decimal.Decimal, BoolClass}
+ # qty 4
+ class NoneFrozenDictTupleStrMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, str}
+ class NoneFrozenDictTupleDecimalMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, decimal.Decimal}
+ class NoneFrozenDictTupleBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, BoolClass}
+ class NoneFrozenDictStrDecimalMixin:
+ _types = {NoneClass, frozendict.frozendict, str, decimal.Decimal}
+ class NoneFrozenDictStrBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, str, BoolClass}
+ class NoneFrozenDictDecimalBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, decimal.Decimal, BoolClass}
+ class NoneTupleStrDecimalMixin:
+ _types = {NoneClass, tuple, str, decimal.Decimal}
+ class NoneTupleStrBoolMixin:
+ _types = {NoneClass, tuple, str, BoolClass}
+ class NoneTupleDecimalBoolMixin:
+ _types = {NoneClass, tuple, decimal.Decimal, BoolClass}
+ class NoneStrDecimalBoolMixin:
+ _types = {NoneClass, str, decimal.Decimal, BoolClass}
+ class FrozenDictTupleStrDecimalMixin:
+ _types = {frozendict.frozendict, tuple, str, decimal.Decimal}
+ class FrozenDictTupleStrBoolMixin:
+ _types = {frozendict.frozendict, tuple, str, BoolClass}
+ class FrozenDictTupleDecimalBoolMixin:
+ _types = {frozendict.frozendict, tuple, decimal.Decimal, BoolClass}
+ class FrozenDictStrDecimalBoolMixin:
+ _types = {frozendict.frozendict, str, decimal.Decimal, BoolClass}
+ class TupleStrDecimalBoolMixin:
+ _types = {tuple, str, decimal.Decimal, BoolClass}
+ # qty 5
+ class NoneFrozenDictTupleStrDecimalMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal}
+ class NoneFrozenDictTupleStrBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, str, BoolClass}
+ class NoneFrozenDictTupleDecimalBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, decimal.Decimal, BoolClass}
+ class NoneFrozenDictStrDecimalBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, str, decimal.Decimal, BoolClass}
+ class NoneTupleStrDecimalBoolMixin:
+ _types = {NoneClass, tuple, str, decimal.Decimal, BoolClass}
+ class FrozenDictTupleStrDecimalBoolMixin:
+ _types = {frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass}
+ # qty 6
+ class NoneFrozenDictTupleStrDecimalBoolMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass}
+ # qty 8
+ class NoneFrozenDictTupleStrDecimalBoolFileBytesMixin:
+ _types = {NoneClass, frozendict.frozendict, tuple, str, decimal.Decimal, BoolClass, FileIO, bytes}
+
+
+class ValidatorBase:
+ @staticmethod
+ def _is_json_validation_enabled_oapg(schema_keyword, configuration=None):
+ """Returns true if JSON schema validation is enabled for the specified
+ validation keyword. This can be used to skip JSON schema structural validation
+ as requested in the configuration.
+ Note: the suffix _oapg stands for openapi python (experimental) generator and
+ it has been added to prevent collisions with other methods and properties
+
+ Args:
+ schema_keyword (string): the name of a JSON schema validation keyword.
+ configuration (Configuration): the configuration class.
+ """
+
+ return (configuration is None or
+ not hasattr(configuration, '_disabled_client_side_validations') or
+ schema_keyword not in configuration._disabled_client_side_validations)
+
+ @staticmethod
+ def _raise_validation_errror_message_oapg(value, constraint_msg, constraint_value, path_to_item, additional_txt=""):
+ raise ApiValueError(
+ "Invalid value `{value}`, {constraint_msg} `{constraint_value}`{additional_txt} at {path_to_item}".format(
+ value=value,
+ constraint_msg=constraint_msg,
+ constraint_value=constraint_value,
+ additional_txt=additional_txt,
+ path_to_item=path_to_item,
+ )
+ )
+
+
+class EnumBase:
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
+ """
+ EnumBase _validate_oapg
+ Validates that arg is in the enum's allowed values
+ """
+ try:
+ cls.MetaOapg.enum_value_to_name[arg]
+ except KeyError:
+ raise ApiValueError("Invalid value {} passed in to {}, allowed_values={}".format(arg, cls, cls.MetaOapg.enum_value_to_name.keys()))
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class BoolBase:
+ def is_true_oapg(self) -> bool:
+ """
+ A replacement for x is True
+ True if the instance is a BoolClass True Singleton
+ """
+ if not issubclass(self.__class__, BoolClass):
+ return False
+ return bool(self)
+
+ def is_false_oapg(self) -> bool:
+ """
+ A replacement for x is False
+ True if the instance is a BoolClass False Singleton
+ """
+ if not issubclass(self.__class__, BoolClass):
+ return False
+ return bool(self) is False
+
+
+class NoneBase:
+ def is_none_oapg(self) -> bool:
+ """
+ A replacement for x is None
+ True if the instance is a NoneClass None Singleton
+ """
+ if issubclass(self.__class__, NoneClass):
+ return True
+ return False
+
+
+class StrBase(ValidatorBase):
+ MetaOapg: MetaOapgTyped
+
+ @property
+ def as_str_oapg(self) -> str:
+ return self
+
+ @property
+ def as_date_oapg(self) -> date:
+ raise Exception('not implemented')
+
+ @property
+ def as_datetime_oapg(self) -> datetime:
+ raise Exception('not implemented')
+
+ @property
+ def as_decimal_oapg(self) -> decimal.Decimal:
+ raise Exception('not implemented')
+
+ @property
+ def as_uuid_oapg(self) -> uuid.UUID:
+ raise Exception('not implemented')
+
+ @classmethod
+ def __check_str_validations(
+ cls,
+ arg: str,
+ validation_metadata: ValidationMetadata
+ ):
+ if not hasattr(cls, 'MetaOapg'):
+ return
+ if (cls._is_json_validation_enabled_oapg('maxLength', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'max_length') and
+ len(arg) > cls.MetaOapg.max_length):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="length must be less than or equal to",
+ constraint_value=cls.MetaOapg.max_length,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('minLength', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'min_length') and
+ len(arg) < cls.MetaOapg.min_length):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="length must be greater than or equal to",
+ constraint_value=cls.MetaOapg.min_length,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('pattern', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'regex')):
+ for regex_dict in cls.MetaOapg.regex:
+ flags = regex_dict.get('flags', 0)
+ if not re.search(regex_dict['pattern'], arg, flags=flags):
+ if flags != 0:
+ # Don't print the regex flags if the flags are not
+ # specified in the OAS document.
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="must match regular expression",
+ constraint_value=regex_dict['pattern'],
+ path_to_item=validation_metadata.path_to_item,
+ additional_txt=" with flags=`{}`".format(flags)
+ )
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="must match regular expression",
+ constraint_value=regex_dict['pattern'],
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
+ """
+ StrBase _validate_oapg
+ Validates that validations pass
+ """
+ if isinstance(arg, str):
+ cls.__check_str_validations(arg, validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class UUIDBase:
+ @property
+ @functools.lru_cache()
+ def as_uuid_oapg(self) -> uuid.UUID:
+ return uuid.UUID(self)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
+ if isinstance(arg, str):
+ try:
+ uuid.UUID(arg)
+ return True
+ except ValueError:
+ raise ApiValueError(
+ "Invalid value '{}' for type UUID at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: typing.Optional[ValidationMetadata] = None,
+ ):
+ """
+ UUIDBase _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class CustomIsoparser(isoparser):
+
+ @_takes_ascii
+ def parse_isodatetime(self, dt_str):
+ components, pos = self._parse_isodate(dt_str)
+ if len(dt_str) > pos:
+ if self._sep is None or dt_str[pos:pos + 1] == self._sep:
+ components += self._parse_isotime(dt_str[pos + 1:])
+ else:
+ raise ValueError('String contains unknown ISO components')
+
+ if len(components) > 3 and components[3] == 24:
+ components[3] = 0
+ return datetime(*components) + timedelta(days=1)
+
+ if len(components) <= 3:
+ raise ValueError('Value is not a datetime')
+
+ return datetime(*components)
+
+ @_takes_ascii
+ def parse_isodate(self, datestr):
+ components, pos = self._parse_isodate(datestr)
+
+ if len(datestr) > pos:
+ raise ValueError('String contains invalid time components')
+
+ if len(components) > 3:
+ raise ValueError('String contains invalid time components')
+
+ return date(*components)
+
+
+DEFAULT_ISOPARSER = CustomIsoparser()
+
+
+class DateBase:
+ @property
+ @functools.lru_cache()
+ def as_date_oapg(self) -> date:
+ return DEFAULT_ISOPARSER.parse_isodate(self)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
+ if isinstance(arg, str):
+ try:
+ DEFAULT_ISOPARSER.parse_isodate(arg)
+ return True
+ except ValueError:
+ raise ApiValueError(
+ "Value does not conform to the required ISO-8601 date format. "
+ "Invalid value '{}' for type date at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: typing.Optional[ValidationMetadata] = None,
+ ):
+ """
+ DateBase _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class DateTimeBase:
+ @property
+ @functools.lru_cache()
+ def as_datetime_oapg(self) -> datetime:
+ return DEFAULT_ISOPARSER.parse_isodatetime(self)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
+ if isinstance(arg, str):
+ try:
+ DEFAULT_ISOPARSER.parse_isodatetime(arg)
+ return True
+ except ValueError:
+ raise ApiValueError(
+ "Value does not conform to the required ISO-8601 datetime format. "
+ "Invalid value '{}' for type datetime at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ DateTimeBase _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class DecimalBase:
+ """
+ A class for storing decimals that are sent over the wire as strings
+ These schemas must remain based on StrBase rather than NumberBase
+ because picking base classes must be deterministic
+ """
+
+ @property
+ @functools.lru_cache()
+ def as_decimal_oapg(self) -> decimal.Decimal:
+ return decimal.Decimal(self)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[str], validation_metadata: ValidationMetadata):
+ if isinstance(arg, str):
+ try:
+ decimal.Decimal(arg)
+ return True
+ except decimal.InvalidOperation:
+ raise ApiValueError(
+ "Value cannot be converted to a decimal. "
+ "Invalid value '{}' for type decimal at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ DecimalBase _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class NumberBase(ValidatorBase):
+ MetaOapg: MetaOapgTyped
+
+ @property
+ def as_int_oapg(self) -> int:
+ try:
+ return self._as_int
+ except AttributeError:
+ """
+ Note: for some numbers like 9.0 they could be represented as an
+ integer but our code chooses to store them as
+ >>> Decimal('9.0').as_tuple()
+ DecimalTuple(sign=0, digits=(9, 0), exponent=-1)
+ so we can tell that the value came from a float and convert it back to a float
+ during later serialization
+ """
+ if self.as_tuple().exponent < 0:
+ # this could be represented as an integer but should be represented as a float
+ # because that's what it was serialized from
+ raise ApiValueError(f'{self} is not an integer')
+ self._as_int = int(self)
+ return self._as_int
+
+ @property
+ def as_float_oapg(self) -> float:
+ try:
+ return self._as_float
+ except AttributeError:
+ if self.as_tuple().exponent >= 0:
+ raise ApiValueError(f'{self} is not an float')
+ self._as_float = float(self)
+ return self._as_float
+
+ @classmethod
+ def __check_numeric_validations(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata
+ ):
+ if not hasattr(cls, 'MetaOapg'):
+ return
+ if cls._is_json_validation_enabled_oapg('multipleOf',
+ validation_metadata.configuration) and hasattr(cls.MetaOapg, 'multiple_of'):
+ multiple_of_value = cls.MetaOapg.multiple_of
+ if (not (float(arg) / multiple_of_value).is_integer()):
+ # Note 'multipleOf' will be as good as the floating point arithmetic.
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="value must be a multiple of",
+ constraint_value=multiple_of_value,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ checking_max_or_min_values = any(
+ hasattr(cls.MetaOapg, validation_key) for validation_key in {
+ 'exclusive_maximum',
+ 'inclusive_maximum',
+ 'exclusive_minimum',
+ 'inclusive_minimum',
+ }
+ )
+ if not checking_max_or_min_values:
+ return
+
+ if (cls._is_json_validation_enabled_oapg('exclusiveMaximum', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'exclusive_maximum') and
+ arg >= cls.MetaOapg.exclusive_maximum):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="must be a value less than",
+ constraint_value=cls.MetaOapg.exclusive_maximum,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('maximum', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'inclusive_maximum') and
+ arg > cls.MetaOapg.inclusive_maximum):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="must be a value less than or equal to",
+ constraint_value=cls.MetaOapg.inclusive_maximum,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('exclusiveMinimum', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'exclusive_minimum') and
+ arg <= cls.MetaOapg.exclusive_minimum):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="must be a value greater than",
+ constraint_value=cls.MetaOapg.exclusive_maximum,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('minimum', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'inclusive_minimum') and
+ arg < cls.MetaOapg.inclusive_minimum):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="must be a value greater than or equal to",
+ constraint_value=cls.MetaOapg.inclusive_minimum,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
+ """
+ NumberBase _validate_oapg
+ Validates that validations pass
+ """
+ if isinstance(arg, decimal.Decimal):
+ cls.__check_numeric_validations(arg, validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class ListBase(ValidatorBase):
+ MetaOapg: MetaOapgTyped
+
+ @classmethod
+ def __validate_items(cls, list_items, validation_metadata: ValidationMetadata):
+ """
+ Ensures that:
+ - values passed in for items are valid
+ Exceptions will be raised if:
+ - invalid arguments were passed in
+
+ Args:
+ list_items: the input list of items
+
+ Raises:
+ ApiTypeError - for missing required arguments, or for invalid properties
+ """
+
+ # if we have definitions for an items schema, use it
+ # otherwise accept anything
+ item_cls = getattr(cls.MetaOapg, 'items', UnsetAnyTypeSchema)
+ item_cls = cls._get_class_oapg(item_cls)
+ path_to_schemas = {}
+ for i, value in enumerate(list_items):
+ item_validation_metadata = ValidationMetadata(
+ from_server=validation_metadata.from_server,
+ configuration=validation_metadata.configuration,
+ path_to_item=validation_metadata.path_to_item+(i,),
+ validated_path_to_schemas=validation_metadata.validated_path_to_schemas
+ )
+ if item_validation_metadata.validation_ran_earlier(item_cls):
+ continue
+ other_path_to_schemas = item_cls._validate_oapg(
+ value, validation_metadata=item_validation_metadata)
+ update(path_to_schemas, other_path_to_schemas)
+ return path_to_schemas
+
+ @classmethod
+ def __check_tuple_validations(
+ cls, arg,
+ validation_metadata: ValidationMetadata):
+ if not hasattr(cls, 'MetaOapg'):
+ return
+ if (cls._is_json_validation_enabled_oapg('maxItems', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'max_items') and
+ len(arg) > cls.MetaOapg.max_items):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="number of items must be less than or equal to",
+ constraint_value=cls.MetaOapg.max_items,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('minItems', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'min_items') and
+ len(arg) < cls.MetaOapg.min_items):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="number of items must be greater than or equal to",
+ constraint_value=cls.MetaOapg.min_items,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('uniqueItems', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'unique_items') and cls.MetaOapg.unique_items and arg):
+ unique_items = set(arg)
+ if len(arg) > len(unique_items):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="duplicate items were found, and the tuple must not contain duplicates because",
+ constraint_value='unique_items==True',
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ ListBase _validate_oapg
+ We return dynamic classes of different bases depending upon the inputs
+ This makes it so:
+ - the returned instance is always a subclass of our defining schema
+ - this allows us to check type based on whether an instance is a subclass of a schema
+ - the returned instance is a serializable type (except for None, True, and False) which are enums
+
+ Returns:
+ new_cls (type): the new class
+
+ Raises:
+ ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
+ ApiTypeError: when the input type is not in the list of allowed spec types
+ """
+ if isinstance(arg, tuple):
+ cls.__check_tuple_validations(arg, validation_metadata)
+ _path_to_schemas = super()._validate_oapg(arg, validation_metadata=validation_metadata)
+ if not isinstance(arg, tuple):
+ return _path_to_schemas
+ updated_vm = ValidationMetadata(
+ configuration=validation_metadata.configuration,
+ from_server=validation_metadata.from_server,
+ path_to_item=validation_metadata.path_to_item,
+ seen_classes=validation_metadata.seen_classes | frozenset({cls}),
+ validated_path_to_schemas=validation_metadata.validated_path_to_schemas
+ )
+ other_path_to_schemas = cls.__validate_items(arg, validation_metadata=updated_vm)
+ update(_path_to_schemas, other_path_to_schemas)
+ return _path_to_schemas
+
+ @classmethod
+ def _get_items_oapg(
+ cls: 'Schema',
+ arg: typing.List[typing.Any],
+ path_to_item: typing.Tuple[typing.Union[str, int], ...],
+ path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]
+ ):
+ '''
+ ListBase _get_items_oapg
+ '''
+ cast_items = []
+
+ for i, value in enumerate(arg):
+ item_path_to_item = path_to_item + (i,)
+ item_cls = path_to_schemas[item_path_to_item]
+ new_value = item_cls._get_new_instance_without_conversion_oapg(
+ value,
+ item_path_to_item,
+ path_to_schemas
+ )
+ cast_items.append(new_value)
+
+ return cast_items
+
+
+class Discriminable:
+ MetaOapg: MetaOapgTyped
+
+ @classmethod
+ def _ensure_discriminator_value_present_oapg(cls, disc_property_name: str, validation_metadata: ValidationMetadata, *args):
+ if not args or args and disc_property_name not in args[0]:
+ # The input data does not contain the discriminator property
+ raise ApiValueError(
+ "Cannot deserialize input data due to missing discriminator. "
+ "The discriminator property '{}' is missing at path: {}".format(disc_property_name, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def get_discriminated_class_oapg(cls, disc_property_name: str, disc_payload_value: str):
+ """
+ Used in schemas with discriminators
+ """
+ if not hasattr(cls.MetaOapg, 'discriminator'):
+ return None
+ disc = cls.MetaOapg.discriminator()
+ if disc_property_name not in disc:
+ return None
+ discriminated_cls = disc[disc_property_name].get(disc_payload_value)
+ if discriminated_cls is not None:
+ return discriminated_cls
+ if not hasattr(cls, 'MetaOapg'):
+ return None
+ elif not (
+ hasattr(cls.MetaOapg, 'all_of') or
+ hasattr(cls.MetaOapg, 'one_of') or
+ hasattr(cls.MetaOapg, 'any_of')
+ ):
+ return None
+ # TODO stop traveling if a cycle is hit
+ if hasattr(cls.MetaOapg, 'all_of'):
+ for allof_cls in cls.MetaOapg.all_of():
+ discriminated_cls = allof_cls.get_discriminated_class_oapg(
+ disc_property_name=disc_property_name, disc_payload_value=disc_payload_value)
+ if discriminated_cls is not None:
+ return discriminated_cls
+ if hasattr(cls.MetaOapg, 'one_of'):
+ for oneof_cls in cls.MetaOapg.one_of():
+ discriminated_cls = oneof_cls.get_discriminated_class_oapg(
+ disc_property_name=disc_property_name, disc_payload_value=disc_payload_value)
+ if discriminated_cls is not None:
+ return discriminated_cls
+ if hasattr(cls.MetaOapg, 'any_of'):
+ for anyof_cls in cls.MetaOapg.any_of():
+ discriminated_cls = anyof_cls.get_discriminated_class_oapg(
+ disc_property_name=disc_property_name, disc_payload_value=disc_payload_value)
+ if discriminated_cls is not None:
+ return discriminated_cls
+ return None
+
+
+class DictBase(Discriminable, ValidatorBase):
+
+ @classmethod
+ def __validate_arg_presence(cls, arg):
+ """
+ Ensures that:
+ - all required arguments are passed in
+ - the input variable names are valid
+ - present in properties or
+ - accepted because additionalProperties exists
+ Exceptions will be raised if:
+ - invalid arguments were passed in
+ - a var_name is invalid if additional_properties == NotAnyTypeSchema
+ and var_name not in properties.__annotations__
+ - required properties were not passed in
+
+ Args:
+ arg: the input dict
+
+ Raises:
+ ApiTypeError - for missing required arguments, or for invalid properties
+ """
+ seen_required_properties = set()
+ invalid_arguments = []
+ required_property_names = getattr(cls.MetaOapg, 'required', set())
+ additional_properties = getattr(cls.MetaOapg, 'additional_properties', UnsetAnyTypeSchema)
+ properties = getattr(cls.MetaOapg, 'properties', {})
+ property_annotations = getattr(properties, '__annotations__', {})
+ for property_name in arg:
+ if property_name in required_property_names:
+ seen_required_properties.add(property_name)
+ elif property_name in property_annotations:
+ continue
+ elif additional_properties is not NotAnyTypeSchema:
+ continue
+ else:
+ invalid_arguments.append(property_name)
+ missing_required_arguments = list(required_property_names - seen_required_properties)
+ if missing_required_arguments:
+ missing_required_arguments.sort()
+ raise ApiTypeError(
+ "{} is missing {} required argument{}: {}".format(
+ cls.__name__,
+ len(missing_required_arguments),
+ "s" if len(missing_required_arguments) > 1 else "",
+ missing_required_arguments
+ )
+ )
+ if invalid_arguments:
+ invalid_arguments.sort()
+ raise ApiTypeError(
+ "{} was passed {} invalid argument{}: {}".format(
+ cls.__name__,
+ len(invalid_arguments),
+ "s" if len(invalid_arguments) > 1 else "",
+ invalid_arguments
+ )
+ )
+
+ @classmethod
+ def __validate_args(cls, arg, validation_metadata: ValidationMetadata):
+ """
+ Ensures that:
+ - values passed in for properties are valid
+ Exceptions will be raised if:
+ - invalid arguments were passed in
+
+ Args:
+ arg: the input dict
+
+ Raises:
+ ApiTypeError - for missing required arguments, or for invalid properties
+ """
+ path_to_schemas = {}
+ additional_properties = getattr(cls.MetaOapg, 'additional_properties', UnsetAnyTypeSchema)
+ properties = getattr(cls.MetaOapg, 'properties', {})
+ property_annotations = getattr(properties, '__annotations__', {})
+ for property_name, value in arg.items():
+ path_to_item = validation_metadata.path_to_item+(property_name,)
+ if property_name in property_annotations:
+ schema = property_annotations[property_name]
+ elif additional_properties is not NotAnyTypeSchema:
+ if additional_properties is UnsetAnyTypeSchema:
+ """
+ If additionalProperties is unset and this path_to_item does not yet have
+ any validations on it, validate it.
+ If it already has validations on it, skip this validation.
+ """
+ if path_to_item in path_to_schemas:
+ continue
+ schema = additional_properties
+ else:
+ raise ApiTypeError('Unable to find schema for value={} in class={} at path_to_item={}'.format(
+ value, cls, validation_metadata.path_to_item+(property_name,)
+ ))
+ schema = cls._get_class_oapg(schema)
+ arg_validation_metadata = ValidationMetadata(
+ from_server=validation_metadata.from_server,
+ configuration=validation_metadata.configuration,
+ path_to_item=path_to_item,
+ validated_path_to_schemas=validation_metadata.validated_path_to_schemas
+ )
+ if arg_validation_metadata.validation_ran_earlier(schema):
+ continue
+ other_path_to_schemas = schema._validate_oapg(value, validation_metadata=arg_validation_metadata)
+ update(path_to_schemas, other_path_to_schemas)
+ return path_to_schemas
+
+ @classmethod
+ def __check_dict_validations(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata
+ ):
+ if not hasattr(cls, 'MetaOapg'):
+ return
+ if (cls._is_json_validation_enabled_oapg('maxProperties', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'max_properties') and
+ len(arg) > cls.MetaOapg.max_properties):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="number of properties must be less than or equal to",
+ constraint_value=cls.MetaOapg.max_properties,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ if (cls._is_json_validation_enabled_oapg('minProperties', validation_metadata.configuration) and
+ hasattr(cls.MetaOapg, 'min_properties') and
+ len(arg) < cls.MetaOapg.min_properties):
+ cls._raise_validation_errror_message_oapg(
+ value=arg,
+ constraint_msg="number of properties must be greater than or equal to",
+ constraint_value=cls.MetaOapg.min_properties,
+ path_to_item=validation_metadata.path_to_item
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ DictBase _validate_oapg
+ We return dynamic classes of different bases depending upon the inputs
+ This makes it so:
+ - the returned instance is always a subclass of our defining schema
+ - this allows us to check type based on whether an instance is a subclass of a schema
+ - the returned instance is a serializable type (except for None, True, and False) which are enums
+
+ Returns:
+ new_cls (type): the new class
+
+ Raises:
+ ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
+ ApiTypeError: when the input type is not in the list of allowed spec types
+ """
+ if isinstance(arg, frozendict.frozendict):
+ cls.__check_dict_validations(arg, validation_metadata)
+ _path_to_schemas = super()._validate_oapg(arg, validation_metadata=validation_metadata)
+ if not isinstance(arg, frozendict.frozendict):
+ return _path_to_schemas
+ cls.__validate_arg_presence(arg)
+ other_path_to_schemas = cls.__validate_args(arg, validation_metadata=validation_metadata)
+ update(_path_to_schemas, other_path_to_schemas)
+ try:
+ discriminator = cls.MetaOapg.discriminator()
+ except AttributeError:
+ return _path_to_schemas
+ # discriminator exists
+ disc_prop_name = list(discriminator.keys())[0]
+ cls._ensure_discriminator_value_present_oapg(disc_prop_name, validation_metadata, arg)
+ discriminated_cls = cls.get_discriminated_class_oapg(
+ disc_property_name=disc_prop_name, disc_payload_value=arg[disc_prop_name])
+ if discriminated_cls is None:
+ raise ApiValueError(
+ "Invalid discriminator value was passed in to {}.{} Only the values {} are allowed at {}".format(
+ cls.__name__,
+ disc_prop_name,
+ list(discriminator[disc_prop_name].keys()),
+ validation_metadata.path_to_item + (disc_prop_name,)
+ )
+ )
+ updated_vm = ValidationMetadata(
+ configuration=validation_metadata.configuration,
+ from_server=validation_metadata.from_server,
+ path_to_item=validation_metadata.path_to_item,
+ seen_classes=validation_metadata.seen_classes | frozenset({cls}),
+ validated_path_to_schemas=validation_metadata.validated_path_to_schemas
+ )
+ if updated_vm.validation_ran_earlier(discriminated_cls):
+ return _path_to_schemas
+ other_path_to_schemas = discriminated_cls._validate_oapg(arg, validation_metadata=updated_vm)
+ update(_path_to_schemas, other_path_to_schemas)
+ return _path_to_schemas
+
+ @classmethod
+ def _get_properties_oapg(
+ cls,
+ arg: typing.Dict[str, typing.Any],
+ path_to_item: typing.Tuple[typing.Union[str, int], ...],
+ path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Type['Schema']]
+ ):
+ """
+ DictBase _get_properties_oapg, this is how properties are set
+ These values already passed validation
+ """
+ dict_items = {}
+
+ for property_name_js, value in arg.items():
+ property_path_to_item = path_to_item + (property_name_js,)
+ property_cls = path_to_schemas[property_path_to_item]
+ new_value = property_cls._get_new_instance_without_conversion_oapg(
+ value,
+ property_path_to_item,
+ path_to_schemas
+ )
+ dict_items[property_name_js] = new_value
+
+ return dict_items
+
+ def __setattr__(self, name: str, value: typing.Any):
+ if not isinstance(self, FileIO):
+ raise AttributeError('property setting not supported on immutable instances')
+
+ def __getattr__(self, name: str):
+ """
+ for instance.name access
+ Properties are only type hinted for required properties
+ so that hasattr(instance, 'optionalProp') is False when that key is not present
+ """
+ if not isinstance(self, frozendict.frozendict):
+ return super().__getattr__(name)
+ if name not in self.__class__.__annotations__:
+ raise AttributeError(f"{self} has no attribute '{name}'")
+ try:
+ value = self[name]
+ return value
+ except KeyError as ex:
+ raise AttributeError(str(ex))
+
+ def __getitem__(self, name: str):
+ """
+ dict_instance[name] accessor
+ key errors thrown
+ """
+ if not isinstance(self, frozendict.frozendict):
+ return super().__getattr__(name)
+ return super().__getitem__(name)
+
+ def get_item_oapg(self, name: str) -> typing.Union['AnyTypeSchema', Unset]:
+ # dict_instance[name] accessor
+ if not isinstance(self, frozendict.frozendict):
+ raise NotImplementedError()
+ try:
+ return super().__getitem__(name)
+ except KeyError:
+ return unset
+
+
+def cast_to_allowed_types(
+ arg: typing.Union[str, date, datetime, uuid.UUID, decimal.Decimal, int, float, None, dict, frozendict.frozendict, list, tuple, bytes, Schema, io.FileIO, io.BufferedReader],
+ from_server: bool,
+ validated_path_to_schemas: typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]],
+ path_to_item: typing.Tuple[typing.Union[str, int], ...] = tuple(['args[0]']),
+) -> typing.Union[frozendict.frozendict, tuple, decimal.Decimal, str, bytes, BoolClass, NoneClass, FileIO]:
+ """
+ Casts the input payload arg into the allowed types
+ The input validated_path_to_schemas is mutated by running this function
+
+ When from_server is False then
+ - date/datetime is cast to str
+ - int/float is cast to Decimal
+
+ If a Schema instance is passed in it is converted back to a primitive instance because
+ One may need to validate that data to the original Schema class AND additional different classes
+ those additional classes will need to be added to the new manufactured class for that payload
+ If the code didn't do this and kept the payload as a Schema instance it would fail to validate to other
+ Schema classes and the code wouldn't be able to mfg a new class that includes all valid schemas
+ TODO: store the validated schema classes in validation_metadata
+
+ Args:
+ arg: the payload
+ from_server: whether this payload came from the server or not
+ validated_path_to_schemas: a dict that stores the validated classes at any path location in the payload
+ """
+ if isinstance(arg, Schema):
+ # store the already run validations
+ schema_classes = set()
+ source_schema_was_unset = len(arg.__class__.__bases__) == 2 and UnsetAnyTypeSchema in arg.__class__.__bases__
+ if not source_schema_was_unset:
+ """
+ Do not include UnsetAnyTypeSchema and its base class because
+ it did not exist in the original spec schema definition
+ It was added to ensure that all instances are of type Schema and the allowed base types
+ """
+ for cls in arg.__class__.__bases__:
+ if cls is Singleton:
+ # Skip Singleton
+ continue
+ schema_classes.add(cls)
+ validated_path_to_schemas[path_to_item] = schema_classes
+
+ type_error = ApiTypeError(f"Invalid type. Required value type is str and passed type was {type(arg)} at {path_to_item}")
+ if isinstance(arg, str):
+ return str(arg)
+ elif isinstance(arg, (dict, frozendict.frozendict)):
+ return frozendict.frozendict({key: cast_to_allowed_types(val, from_server, validated_path_to_schemas, path_to_item + (key,)) for key, val in arg.items()})
+ elif isinstance(arg, (bool, BoolClass)):
+ """
+ this check must come before isinstance(arg, (int, float))
+ because isinstance(True, int) is True
+ """
+ if arg:
+ return BoolClass.TRUE
+ return BoolClass.FALSE
+ elif isinstance(arg, int):
+ return decimal.Decimal(arg)
+ elif isinstance(arg, float):
+ decimal_from_float = decimal.Decimal(arg)
+ if decimal_from_float.as_integer_ratio()[1] == 1:
+ # 9.0 -> Decimal('9.0')
+ # 3.4028234663852886e+38 -> Decimal('340282346638528859811704183484516925440.0')
+ return decimal.Decimal(str(decimal_from_float)+'.0')
+ return decimal_from_float
+ elif isinstance(arg, (tuple, list)):
+ return tuple([cast_to_allowed_types(item, from_server, validated_path_to_schemas, path_to_item + (i,)) for i, item in enumerate(arg)])
+ elif isinstance(arg, (none_type, NoneClass)):
+ return NoneClass.NONE
+ elif isinstance(arg, (date, datetime)):
+ if not from_server:
+ return arg.isoformat()
+ raise type_error
+ elif isinstance(arg, uuid.UUID):
+ if not from_server:
+ return str(arg)
+ raise type_error
+ elif isinstance(arg, decimal.Decimal):
+ return decimal.Decimal(arg)
+ elif isinstance(arg, bytes):
+ return bytes(arg)
+ elif isinstance(arg, (io.FileIO, io.BufferedReader)):
+ return FileIO(arg)
+ raise ValueError('Invalid type passed in got input={} type={}'.format(arg, type(arg)))
+
+
+class ComposedBase(Discriminable):
+
+ @classmethod
+ def __get_allof_classes(cls, arg, validation_metadata: ValidationMetadata):
+ path_to_schemas = defaultdict(set)
+ for allof_cls in cls.MetaOapg.all_of():
+ if validation_metadata.validation_ran_earlier(allof_cls):
+ continue
+ other_path_to_schemas = allof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
+ update(path_to_schemas, other_path_to_schemas)
+ return path_to_schemas
+
+ @classmethod
+ def __get_oneof_class(
+ cls,
+ arg,
+ discriminated_cls,
+ validation_metadata: ValidationMetadata,
+ ):
+ oneof_classes = []
+ path_to_schemas = defaultdict(set)
+ for oneof_cls in cls.MetaOapg.one_of():
+ if oneof_cls in path_to_schemas[validation_metadata.path_to_item]:
+ oneof_classes.append(oneof_cls)
+ continue
+ if validation_metadata.validation_ran_earlier(oneof_cls):
+ oneof_classes.append(oneof_cls)
+ continue
+ try:
+ path_to_schemas = oneof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
+ except (ApiValueError, ApiTypeError) as ex:
+ if discriminated_cls is not None and oneof_cls is discriminated_cls:
+ raise ex
+ continue
+ oneof_classes.append(oneof_cls)
+ if not oneof_classes:
+ raise ApiValueError(
+ "Invalid inputs given to generate an instance of {}. None "
+ "of the oneOf schemas matched the input data.".format(cls)
+ )
+ elif len(oneof_classes) > 1:
+ raise ApiValueError(
+ "Invalid inputs given to generate an instance of {}. Multiple "
+ "oneOf schemas {} matched the inputs, but a max of one is allowed.".format(cls, oneof_classes)
+ )
+ return path_to_schemas
+
+ @classmethod
+ def __get_anyof_classes(
+ cls,
+ arg,
+ discriminated_cls,
+ validation_metadata: ValidationMetadata
+ ):
+ anyof_classes = []
+ path_to_schemas = defaultdict(set)
+ for anyof_cls in cls.MetaOapg.any_of():
+ if validation_metadata.validation_ran_earlier(anyof_cls):
+ anyof_classes.append(anyof_cls)
+ continue
+
+ try:
+ other_path_to_schemas = anyof_cls._validate_oapg(arg, validation_metadata=validation_metadata)
+ except (ApiValueError, ApiTypeError) as ex:
+ if discriminated_cls is not None and anyof_cls is discriminated_cls:
+ raise ex
+ continue
+ anyof_classes.append(anyof_cls)
+ update(path_to_schemas, other_path_to_schemas)
+ if not anyof_classes:
+ raise ApiValueError(
+ "Invalid inputs given to generate an instance of {}. None "
+ "of the anyOf schemas matched the input data.".format(cls)
+ )
+ return path_to_schemas
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ) -> typing.Dict[typing.Tuple[typing.Union[str, int], ...], typing.Set[typing.Union['Schema', str, decimal.Decimal, BoolClass, NoneClass, frozendict.frozendict, tuple]]]:
+ """
+ ComposedBase _validate_oapg
+ We return dynamic classes of different bases depending upon the inputs
+ This makes it so:
+ - the returned instance is always a subclass of our defining schema
+ - this allows us to check type based on whether an instance is a subclass of a schema
+ - the returned instance is a serializable type (except for None, True, and False) which are enums
+
+ Returns:
+ new_cls (type): the new class
+
+ Raises:
+ ApiValueError: when a string can't be converted into a date or datetime and it must be one of those classes
+ ApiTypeError: when the input type is not in the list of allowed spec types
+ """
+ # validation checking on types, validations, and enums
+ path_to_schemas = super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+ updated_vm = ValidationMetadata(
+ configuration=validation_metadata.configuration,
+ from_server=validation_metadata.from_server,
+ path_to_item=validation_metadata.path_to_item,
+ seen_classes=validation_metadata.seen_classes | frozenset({cls}),
+ validated_path_to_schemas=validation_metadata.validated_path_to_schemas
+ )
+
+ # process composed schema
+ discriminator = getattr(cls, 'discriminator', None)
+ discriminated_cls = None
+ if discriminator and arg and isinstance(arg, frozendict.frozendict):
+ disc_property_name = list(discriminator.keys())[0]
+ cls._ensure_discriminator_value_present_oapg(disc_property_name, updated_vm, arg)
+ # get discriminated_cls by looking at the dict in the current class
+ discriminated_cls = cls.get_discriminated_class_oapg(
+ disc_property_name=disc_property_name, disc_payload_value=arg[disc_property_name])
+ if discriminated_cls is None:
+ raise ApiValueError(
+ "Invalid discriminator value '{}' was passed in to {}.{} Only the values {} are allowed at {}".format(
+ arg[disc_property_name],
+ cls.__name__,
+ disc_property_name,
+ list(discriminator[disc_property_name].keys()),
+ updated_vm.path_to_item + (disc_property_name,)
+ )
+ )
+
+ if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'all_of'):
+ other_path_to_schemas = cls.__get_allof_classes(arg, validation_metadata=updated_vm)
+ update(path_to_schemas, other_path_to_schemas)
+ if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'one_of'):
+ other_path_to_schemas = cls.__get_oneof_class(
+ arg,
+ discriminated_cls=discriminated_cls,
+ validation_metadata=updated_vm
+ )
+ update(path_to_schemas, other_path_to_schemas)
+ if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'any_of'):
+ other_path_to_schemas = cls.__get_anyof_classes(
+ arg,
+ discriminated_cls=discriminated_cls,
+ validation_metadata=updated_vm
+ )
+ update(path_to_schemas, other_path_to_schemas)
+ not_cls = None
+ if hasattr(cls, 'MetaOapg') and hasattr(cls.MetaOapg, 'not_schema'):
+ not_cls = cls.MetaOapg.not_schema
+ not_cls = cls._get_class_oapg(not_cls)
+ if not_cls:
+ other_path_to_schemas = None
+ not_exception = ApiValueError(
+ "Invalid value '{}' was passed in to {}. Value is invalid because it is disallowed by {}".format(
+ arg,
+ cls.__name__,
+ not_cls.__name__,
+ )
+ )
+ if updated_vm.validation_ran_earlier(not_cls):
+ raise not_exception
+
+ try:
+ other_path_to_schemas = not_cls._validate_oapg(arg, validation_metadata=updated_vm)
+ except (ApiValueError, ApiTypeError):
+ pass
+ if other_path_to_schemas:
+ raise not_exception
+
+ if discriminated_cls is not None and not updated_vm.validation_ran_earlier(discriminated_cls):
+ # TODO use an exception from this package here
+ assert discriminated_cls in path_to_schemas[updated_vm.path_to_item]
+ return path_to_schemas
+
+
+# DictBase, ListBase, NumberBase, StrBase, BoolBase, NoneBase
+class ComposedSchema(
+ ComposedBase,
+ DictBase,
+ ListBase,
+ NumberBase,
+ StrBase,
+ BoolBase,
+ NoneBase,
+ Schema,
+ NoneFrozenDictTupleStrDecimalBoolMixin
+):
+ @classmethod
+ def from_openapi_data_oapg(cls, *args: typing.Any, _configuration: typing.Optional[Configuration] = None, **kwargs):
+ if not args:
+ if not kwargs:
+ raise ApiTypeError('{} is missing required input data in args or kwargs'.format(cls.__name__))
+ args = (kwargs, )
+ return super().from_openapi_data_oapg(args[0], _configuration=_configuration)
+
+
+class ListSchema(
+ ListBase,
+ Schema,
+ TupleMixin
+):
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: typing.List[typing.Any], _configuration: typing.Optional[Configuration] = None):
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+ def __new__(cls, arg: typing.Union[typing.List[typing.Any], typing.Tuple[typing.Any]], **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class NoneSchema(
+ NoneBase,
+ Schema,
+ NoneMixin
+):
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: None, _configuration: typing.Optional[Configuration] = None):
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+ def __new__(cls, arg: None, **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class NumberSchema(
+ NumberBase,
+ Schema,
+ DecimalMixin
+):
+ """
+ This is used for type: number with no format
+ Both integers AND floats are accepted
+ """
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: typing.Union[int, float], _configuration: typing.Optional[Configuration] = None):
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+ def __new__(cls, arg: typing.Union[decimal.Decimal, int, float], **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class IntBase:
+ @property
+ def as_int_oapg(self) -> int:
+ try:
+ return self._as_int
+ except AttributeError:
+ self._as_int = int(self)
+ return self._as_int
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
+ if isinstance(arg, decimal.Decimal):
+
+ denominator = arg.as_integer_ratio()[-1]
+ if denominator != 1:
+ raise ApiValueError(
+ "Invalid value '{}' for type integer at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ IntBase _validate_oapg
+ TODO what about types = (int, number) -> IntBase, NumberBase? We could drop int and keep number only
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class IntSchema(IntBase, NumberSchema):
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: int, _configuration: typing.Optional[Configuration] = None):
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+ def __new__(cls, arg: typing.Union[decimal.Decimal, int], **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class Int32Base:
+ __inclusive_minimum = decimal.Decimal(-2147483648)
+ __inclusive_maximum = decimal.Decimal(2147483647)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
+ if isinstance(arg, decimal.Decimal) and arg.as_tuple().exponent == 0:
+ if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
+ raise ApiValueError(
+ "Invalid value '{}' for type int32 at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ Int32Base _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class Int32Schema(
+ Int32Base,
+ IntSchema
+):
+ pass
+
+
+class Int64Base:
+ __inclusive_minimum = decimal.Decimal(-9223372036854775808)
+ __inclusive_maximum = decimal.Decimal(9223372036854775807)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
+ if isinstance(arg, decimal.Decimal) and arg.as_tuple().exponent == 0:
+ if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
+ raise ApiValueError(
+ "Invalid value '{}' for type int64 at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ Int64Base _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class Int64Schema(
+ Int64Base,
+ IntSchema
+):
+ pass
+
+
+class Float32Base:
+ __inclusive_minimum = decimal.Decimal(-3.4028234663852886e+38)
+ __inclusive_maximum = decimal.Decimal(3.4028234663852886e+38)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
+ if isinstance(arg, decimal.Decimal):
+ if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
+ raise ApiValueError(
+ "Invalid value '{}' for type float at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ Float32Base _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+
+class Float32Schema(
+ Float32Base,
+ NumberSchema
+):
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: float, _configuration: typing.Optional[Configuration] = None):
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+
+class Float64Base:
+ __inclusive_minimum = decimal.Decimal(-1.7976931348623157E+308)
+ __inclusive_maximum = decimal.Decimal(1.7976931348623157E+308)
+
+ @classmethod
+ def __validate_format(cls, arg: typing.Optional[decimal.Decimal], validation_metadata: ValidationMetadata):
+ if isinstance(arg, decimal.Decimal):
+ if not cls.__inclusive_minimum <= arg <= cls.__inclusive_maximum:
+ raise ApiValueError(
+ "Invalid value '{}' for type double at {}".format(arg, validation_metadata.path_to_item)
+ )
+
+ @classmethod
+ def _validate_oapg(
+ cls,
+ arg,
+ validation_metadata: ValidationMetadata,
+ ):
+ """
+ Float64Base _validate_oapg
+ """
+ cls.__validate_format(arg, validation_metadata=validation_metadata)
+ return super()._validate_oapg(arg, validation_metadata=validation_metadata)
+
+class Float64Schema(
+ Float64Base,
+ NumberSchema
+):
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: float, _configuration: typing.Optional[Configuration] = None):
+ # todo check format
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+
+class StrSchema(
+ StrBase,
+ Schema,
+ StrMixin
+):
+ """
+ date + datetime string types must inherit from this class
+ That is because one can validate a str payload as both:
+ - type: string (format unset)
+ - type: string, format: date
+ """
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: str, _configuration: typing.Optional[Configuration] = None) -> 'StrSchema':
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+ def __new__(cls, arg: typing.Union[str, date, datetime, uuid.UUID], **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class UUIDSchema(UUIDBase, StrSchema):
+
+ def __new__(cls, arg: typing.Union[str, uuid.UUID], **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class DateSchema(DateBase, StrSchema):
+
+ def __new__(cls, arg: typing.Union[str, date], **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class DateTimeSchema(DateTimeBase, StrSchema):
+
+ def __new__(cls, arg: typing.Union[str, datetime], **kwargs: Configuration):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class DecimalSchema(DecimalBase, StrSchema):
+
+ def __new__(cls, arg: str, **kwargs: Configuration):
+ """
+ Note: Decimals may not be passed in because cast_to_allowed_types is only invoked once for payloads
+ which can be simple (str) or complex (dicts or lists with nested values)
+ Because casting is only done once and recursively casts all values prior to validation then for a potential
+ client side Decimal input if Decimal was accepted as an input in DecimalSchema then one would not know
+ if one was using it for a StrSchema (where it should be cast to str) or one is using it for NumberSchema
+ where it should stay as Decimal.
+ """
+ return super().__new__(cls, arg, **kwargs)
+
+
+class BytesSchema(
+ Schema,
+ BytesMixin
+):
+ """
+ this class will subclass bytes and is immutable
+ """
+ def __new__(cls, arg: bytes, **kwargs: Configuration):
+ return super(Schema, cls).__new__(cls, arg)
+
+
+class FileSchema(
+ Schema,
+ FileMixin
+):
+ """
+ This class is NOT immutable
+ Dynamic classes are built using it for example when AnyType allows in binary data
+ Al other schema classes ARE immutable
+ If one wanted to make this immutable one could make this a DictSchema with required properties:
+ - data = BytesSchema (which would be an immutable bytes based schema)
+ - file_name = StrSchema
+ and cast_to_allowed_types would convert bytes and file instances into dicts containing data + file_name
+ The downside would be that data would be stored in memory which one may not want to do for very large files
+
+ The developer is responsible for closing this file and deleting it
+
+ This class was kept as mutable:
+ - to allow file reading and writing to disk
+ - to be able to preserve file name info
+ """
+
+ def __new__(cls, arg: typing.Union[io.FileIO, io.BufferedReader], **kwargs: Configuration):
+ return super(Schema, cls).__new__(cls, arg)
+
+
+class BinaryBase:
+ pass
+
+
+class BinarySchema(
+ ComposedBase,
+ BinaryBase,
+ Schema,
+ BinaryMixin
+):
+ class MetaOapg:
+ @staticmethod
+ def one_of():
+ return [
+ BytesSchema,
+ FileSchema,
+ ]
+
+ def __new__(cls, arg: typing.Union[io.FileIO, io.BufferedReader, bytes], **kwargs: Configuration):
+ return super().__new__(cls, arg)
+
+
+class BoolSchema(
+ BoolBase,
+ Schema,
+ BoolMixin
+):
+
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: bool, _configuration: typing.Optional[Configuration] = None):
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+ def __new__(cls, arg: bool, **kwargs: ValidationMetadata):
+ return super().__new__(cls, arg, **kwargs)
+
+
+class AnyTypeSchema(
+ DictBase,
+ ListBase,
+ NumberBase,
+ StrBase,
+ BoolBase,
+ NoneBase,
+ Schema,
+ NoneFrozenDictTupleStrDecimalBoolFileBytesMixin
+):
+ # Python representation of a schema defined as true or {}
+ pass
+
+
+class UnsetAnyTypeSchema(AnyTypeSchema):
+ # Used when additionalProperties/items was not explicitly defined and a defining schema is needed
+ pass
+
+
+class NotAnyTypeSchema(
+ ComposedSchema,
+):
+ """
+ Python representation of a schema defined as false or {'not': {}}
+ Does not allow inputs in of AnyType
+ Note: validations on this class are never run because the code knows that no inputs will ever validate
+ """
+
+ class MetaOapg:
+ not_schema = AnyTypeSchema
+
+ def __new__(
+ cls,
+ *args,
+ _configuration: typing.Optional[Configuration] = None,
+ ) -> 'NotAnyTypeSchema':
+ return super().__new__(
+ cls,
+ *args,
+ _configuration=_configuration,
+ )
+
+
+class DictSchema(
+ DictBase,
+ Schema,
+ FrozenDictMixin
+):
+ @classmethod
+ def from_openapi_data_oapg(cls, arg: typing.Dict[str, typing.Any], _configuration: typing.Optional[Configuration] = None):
+ return super().from_openapi_data_oapg(arg, _configuration=_configuration)
+
+ def __new__(cls, *args: typing.Union[dict, frozendict.frozendict], **kwargs: typing.Union[dict, frozendict.frozendict, list, tuple, decimal.Decimal, float, int, str, date, datetime, bool, None, bytes, Schema, Unset, ValidationMetadata]):
+ return super().__new__(cls, *args, **kwargs)
+
+
+schema_type_classes = {NoneSchema, DictSchema, ListSchema, NumberSchema, StrSchema, BoolSchema, AnyTypeSchema}
+
+
+@functools.lru_cache()
+def get_new_class(
+ class_name: str,
+ bases: typing.Tuple[typing.Type[typing.Union[Schema, typing.Any]], ...]
+) -> typing.Type[Schema]:
+ """
+ Returns a new class that is made with the subclass bases
+ """
+ new_cls: typing.Type[Schema] = type(class_name, bases, {})
+ return new_cls
+
+
+LOG_CACHE_USAGE = False
+
+
+def log_cache_usage(cache_fn):
+ if LOG_CACHE_USAGE:
+ print(cache_fn.__name__, cache_fn.cache_info())
diff --git a/dreamkast_api/requirements.txt b/dreamkast_api/requirements.txt
new file mode 100644
index 0000000..c9227e5
--- /dev/null
+++ b/dreamkast_api/requirements.txt
@@ -0,0 +1,5 @@
+certifi >= 14.05.14
+frozendict >= 2.0.3
+python_dateutil >= 2.5.3
+setuptools >= 21.0.0
+urllib3 >= 1.15.1
diff --git a/dreamkast_api/setup.cfg b/dreamkast_api/setup.cfg
new file mode 100644
index 0000000..11433ee
--- /dev/null
+++ b/dreamkast_api/setup.cfg
@@ -0,0 +1,2 @@
+[flake8]
+max-line-length=99
diff --git a/dreamkast_api/setup.py b/dreamkast_api/setup.py
new file mode 100644
index 0000000..46196d1
--- /dev/null
+++ b/dreamkast_api/setup.py
@@ -0,0 +1,47 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+from setuptools import setup, find_packages # noqa: H301
+
+NAME = "openapi-client"
+VERSION = "1.0.0"
+# To install the library, run the following
+#
+# python setup.py install
+#
+# prerequisite: setuptools
+# http://pypi.python.org/pypi/setuptools
+
+REQUIRES = [
+ "urllib3 >= 1.15",
+ "certifi",
+ "python-dateutil",
+ "frozendict >= 2.0.3",
+ "typing_extensions",
+]
+
+setup(
+ name=NAME,
+ version=VERSION,
+ description="Dreamkast API",
+ author="OpenAPI Generator community",
+ author_email="team@openapitools.org",
+ url="",
+ keywords=["OpenAPI", "OpenAPI-Generator", "Dreamkast API"],
+ python_requires=">=3.7",
+ install_requires=REQUIRES,
+ packages=find_packages(exclude=["test", "tests"]),
+ include_package_data=True,
+ license="Apache 2.0",
+ long_description="""\
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+ """
+)
diff --git a/dreamkast_api/test-requirements.txt b/dreamkast_api/test-requirements.txt
new file mode 100644
index 0000000..2d88b03
--- /dev/null
+++ b/dreamkast_api/test-requirements.txt
@@ -0,0 +1,3 @@
+pytest~=4.6.7 # needed for python 3.4
+pytest-cov>=2.8.1
+pytest-randomly==1.2.3 # needed for python 3.4
diff --git a/dreamkast_api/test/__init__.py b/dreamkast_api/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_models/__init__.py b/dreamkast_api/test/test_models/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_models/test_booth.py b/dreamkast_api/test/test_models/test_booth.py
new file mode 100644
index 0000000..23c5be9
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_booth.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.booth import Booth
+from openapi_client import configuration
+
+
+class TestBooth(unittest.TestCase):
+ """Booth unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_chat_message.py b/dreamkast_api/test/test_models/test_chat_message.py
new file mode 100644
index 0000000..4db9ef2
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_chat_message.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.chat_message import ChatMessage
+from openapi_client import configuration
+
+
+class TestChatMessage(unittest.TestCase):
+ """ChatMessage unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_chat_message_properties.py b/dreamkast_api/test/test_models/test_chat_message_properties.py
new file mode 100644
index 0000000..ae1a2a7
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_chat_message_properties.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.chat_message_properties import ChatMessageProperties
+from openapi_client import configuration
+
+
+class TestChatMessageProperties(unittest.TestCase):
+ """ChatMessageProperties unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_event.py b/dreamkast_api/test/test_models/test_event.py
new file mode 100644
index 0000000..6bc4a04
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_event.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.event import Event
+from openapi_client import configuration
+
+
+class TestEvent(unittest.TestCase):
+ """Event unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_profile.py b/dreamkast_api/test/test_models/test_profile.py
new file mode 100644
index 0000000..d5f6ea6
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_profile.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.profile import Profile
+from openapi_client import configuration
+
+
+class TestProfile(unittest.TestCase):
+ """Profile unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_sponsor.py b/dreamkast_api/test/test_models/test_sponsor.py
new file mode 100644
index 0000000..34c4b00
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_sponsor.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.sponsor import Sponsor
+from openapi_client import configuration
+
+
+class TestSponsor(unittest.TestCase):
+ """Sponsor unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_talk.py b/dreamkast_api/test/test_models/test_talk.py
new file mode 100644
index 0000000..2d57f7f
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_talk.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.talk import Talk
+from openapi_client import configuration
+
+
+class TestTalk(unittest.TestCase):
+ """Talk unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_track.py b/dreamkast_api/test/test_models/test_track.py
new file mode 100644
index 0000000..62b21fa
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_track.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.track import Track
+from openapi_client import configuration
+
+
+class TestTrack(unittest.TestCase):
+ """Track unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_update_chat_message.py b/dreamkast_api/test/test_models/test_update_chat_message.py
new file mode 100644
index 0000000..6690f86
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_update_chat_message.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.update_chat_message import UpdateChatMessage
+from openapi_client import configuration
+
+
+class TestUpdateChatMessage(unittest.TestCase):
+ """UpdateChatMessage unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_video_registration.py b/dreamkast_api/test/test_models/test_video_registration.py
new file mode 100644
index 0000000..7fc248a
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_video_registration.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.video_registration import VideoRegistration
+from openapi_client import configuration
+
+
+class TestVideoRegistration(unittest.TestCase):
+ """VideoRegistration unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_models/test_viewer_count.py b/dreamkast_api/test/test_models/test_viewer_count.py
new file mode 100644
index 0000000..3b991f2
--- /dev/null
+++ b/dreamkast_api/test/test_models/test_viewer_count.py
@@ -0,0 +1,25 @@
+# coding: utf-8
+
+"""
+ Dreamkast API
+
+ This is a API definition of the Dreamakst. You can find a documentation of this API at http://api-docs.dev.cloudnativedays.jp/. # noqa: E501
+
+ The version of the OpenAPI document: 1.0.0
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+
+import openapi_client
+from openapi_client.model.viewer_count import ViewerCount
+from openapi_client import configuration
+
+
+class TestViewerCount(unittest.TestCase):
+ """ViewerCount unit test stubs"""
+ _configuration = configuration.Configuration()
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/__init__.py b/dreamkast_api/test/test_paths/__init__.py
new file mode 100644
index 0000000..1309632
--- /dev/null
+++ b/dreamkast_api/test/test_paths/__init__.py
@@ -0,0 +1,68 @@
+import json
+import typing
+
+import urllib3
+from urllib3._collections import HTTPHeaderDict
+
+
+class ApiTestMixin:
+ json_content_type = 'application/json'
+ user_agent = 'OpenAPI-Generator/1.0.0/python'
+
+ @classmethod
+ def assert_pool_manager_request_called_with(
+ cls,
+ mock_request,
+ url: str,
+ method: str = 'POST',
+ body: typing.Optional[bytes] = None,
+ content_type: typing.Optional[str] = None,
+ accept_content_type: typing.Optional[str] = None,
+ stream: bool = False,
+ ):
+ headers = {
+ 'User-Agent': cls.user_agent
+ }
+ if accept_content_type:
+ headers['Accept'] = accept_content_type
+ if content_type:
+ headers['Content-Type'] = content_type
+ kwargs = dict(
+ headers=HTTPHeaderDict(headers),
+ preload_content=not stream,
+ timeout=None,
+ )
+ if content_type and method != 'GET':
+ kwargs['body'] = body
+ mock_request.assert_called_with(
+ method,
+ url,
+ **kwargs
+ )
+
+ @staticmethod
+ def headers_for_content_type(content_type: str) -> typing.Dict[str, str]:
+ return {'content-type': content_type}
+
+ @classmethod
+ def response(
+ cls,
+ body: typing.Union[str, bytes],
+ status: int = 200,
+ content_type: str = json_content_type,
+ headers: typing.Optional[typing.Dict[str, str]] = None,
+ preload_content: bool = True
+ ) -> urllib3.HTTPResponse:
+ if headers is None:
+ headers = {}
+ headers.update(cls.headers_for_content_type(content_type))
+ return urllib3.HTTPResponse(
+ body,
+ headers=headers,
+ status=status,
+ preload_content=preload_content
+ )
+
+ @staticmethod
+ def json_bytes(in_data: typing.Any) -> bytes:
+ return json.dumps(in_data, separators=(",", ":"), ensure_ascii=False).encode('utf-8')
diff --git a/dreamkast_api/test/test_paths/test_api_v1_booths_booth_id/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_booths_booth_id/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_booths_booth_id/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_booths_booth_id/test_get.py
new file mode 100644
index 0000000..5a882b4
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_booths_booth_id/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_booths_booth_id import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1BoothsBoothId(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1BoothsBoothId unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_chat_messages/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_chat_messages/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_get.py
new file mode 100644
index 0000000..84cf346
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_chat_messages import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1ChatMessages(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1ChatMessages unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_post.py b/dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_post.py
new file mode 100644
index 0000000..d4c8fe9
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_chat_messages/test_post.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_chat_messages import post # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1ChatMessages(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1ChatMessages unit test stubs
+ Post Chat Message # noqa: E501
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = post.ApiForpost(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 201
+ response_body = ''
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_chat_messages_message_id/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_chat_messages_message_id/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_chat_messages_message_id/test_put.py b/dreamkast_api/test/test_paths/test_api_v1_chat_messages_message_id/test_put.py
new file mode 100644
index 0000000..99c7ca7
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_chat_messages_message_id/test_put.py
@@ -0,0 +1,41 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_chat_messages_message_id import put # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1ChatMessagesMessageId(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1ChatMessagesMessageId unit test stubs
+ Update Chat Message # noqa: E501
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = put.ApiForput(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_event_abbr_my_profile/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_event_abbr_my_profile/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_event_abbr_my_profile/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_event_abbr_my_profile/test_get.py
new file mode 100644
index 0000000..745ffac
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_event_abbr_my_profile/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_event_abbr_my_profile import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1EventAbbrMyProfile(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1EventAbbrMyProfile unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_events/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_events/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_events/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_events/test_get.py
new file mode 100644
index 0000000..fa7be11
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_events/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_events import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1Events(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1Events unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_events_event_abbr/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_events_event_abbr/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_events_event_abbr/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_events_event_abbr/test_get.py
new file mode 100644
index 0000000..86bcc44
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_events_event_abbr/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_events_event_abbr import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1EventsEventAbbr(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1EventsEventAbbr unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_sponsors/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_sponsors/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_sponsors/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_sponsors/test_get.py
new file mode 100644
index 0000000..5459e7f
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_sponsors/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_sponsors import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1Sponsors(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1Sponsors unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_talks/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_talks/test_get.py
new file mode 100644
index 0000000..7f9341e
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_talks/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_talks import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1Talks(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1Talks unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_get.py
new file mode 100644
index 0000000..5131487
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_talks_talk_id import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1TalksTalkId(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1TalksTalkId unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_put.py b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_put.py
new file mode 100644
index 0000000..54f7894
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id/test_put.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_talks_talk_id import put # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1TalksTalkId(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1TalksTalkId unit test stubs
+ Put Talk # noqa: E501
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = put.ApiForput(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_get.py
new file mode 100644
index 0000000..49841ec
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_talks_talk_id_video_registration import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1TalksTalkIdVideoRegistration(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1TalksTalkIdVideoRegistration unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_put.py b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_put.py
new file mode 100644
index 0000000..8e2211f
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_talks_talk_id_video_registration/test_put.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_talks_talk_id_video_registration import put # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1TalksTalkIdVideoRegistration(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1TalksTalkIdVideoRegistration unit test stubs
+ Put VideoRegistration # noqa: E501
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = put.ApiForput(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+ response_body = ''
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_tracks/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_tracks/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_tracks/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_tracks/test_get.py
new file mode 100644
index 0000000..5633f64
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_tracks/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_tracks import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1Tracks(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1Tracks unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id/test_get.py
new file mode 100644
index 0000000..a9fb579
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_tracks_track_id import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1TracksTrackId(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1TracksTrackId unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id_viewer_count/__init__.py b/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id_viewer_count/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id_viewer_count/test_get.py b/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id_viewer_count/test_get.py
new file mode 100644
index 0000000..7e00f94
--- /dev/null
+++ b/dreamkast_api/test/test_paths/test_api_v1_tracks_track_id_viewer_count/test_get.py
@@ -0,0 +1,40 @@
+# coding: utf-8
+
+"""
+
+
+ Generated by: https://openapi-generator.tech
+"""
+
+import unittest
+from unittest.mock import patch
+
+import urllib3
+
+import openapi_client
+from openapi_client.paths.api_v1_tracks_track_id_viewer_count import get # noqa: E501
+from openapi_client import configuration, schemas, api_client
+
+from .. import ApiTestMixin
+
+
+class TestApiV1TracksTrackIdViewerCount(ApiTestMixin, unittest.TestCase):
+ """
+ ApiV1TracksTrackIdViewerCount unit test stubs
+ """
+ _configuration = configuration.Configuration()
+
+ def setUp(self):
+ used_api_client = api_client.ApiClient(configuration=self._configuration)
+ self.api = get.ApiForget(api_client=used_api_client) # noqa: E501
+
+ def tearDown(self):
+ pass
+
+ response_status = 200
+
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/dreamkast_api/tox.ini b/dreamkast_api/tox.ini
new file mode 100644
index 0000000..9226c33
--- /dev/null
+++ b/dreamkast_api/tox.ini
@@ -0,0 +1,10 @@
+[tox]
+envlist = py37
+
+[testenv]
+passenv = PYTHON_VERSION
+deps=-r{toxinidir}/requirements.txt
+ -r{toxinidir}/test-requirements.txt
+
+commands=
+ pytest --cov=openapi_client
From 2cb6410b13e4fc0a09a5c2bdc736e55ff525c73e Mon Sep 17 00:00:00 2001
From: Kazuto Kusama
Date: Sat, 22 Oct 2022 17:41:53 +0900
Subject: [PATCH 2/2] Move terraform to another repository
---
terraform/.gitignore | 29 -----
.../broadcast-switcher/.terraform.lock.hcl | 47 -------
terraform/broadcast-switcher/2204.tf | 54 --------
terraform/broadcast-switcher/archives.tf | 15 ---
terraform/broadcast-switcher/networking.tf | 122 ------------------
terraform/broadcast-switcher/nginx.tf | 55 --------
terraform/broadcast-switcher/route53.tf | 31 -----
.../broadcast-switcher/scripts/install.sh | 13 --
terraform/broadcast-switcher/switchers.tf | 63 ---------
.../template/gui-cloud-init.yaml | 55 --------
.../template/switcher-cloud-init.yaml | 52 --------
terraform/broadcast-switcher/terraform.tf | 24 ----
terraform/broadcast-switcher/variables.tf | 7 -
terraform/broadcast-switcher/windows.tf | 49 -------
terraform/sakuracloud/.terraform.lock.hcl | 88 -------------
terraform/sakuracloud/elk.tf | 44 -------
terraform/sakuracloud/lb.tf | 61 ---------
terraform/sakuracloud/networking.tf | 62 ---------
terraform/sakuracloud/nextcloud.tf | 119 -----------------
terraform/sakuracloud/outputs.tf | 8 --
terraform/sakuracloud/route53.tf | 63 ---------
terraform/sakuracloud/sandbox.tf | 41 ------
terraform/sakuracloud/sentry.tf | 33 -----
terraform/sakuracloud/ssh-keys.tf | 14 --
.../sakuracloud/template/cloud-init.yaml | 55 --------
terraform/sakuracloud/terraform.tf | 29 -----
terraform/sakuracloud/uploader.tf | 40 ------
27 files changed, 1273 deletions(-)
delete mode 100644 terraform/.gitignore
delete mode 100644 terraform/broadcast-switcher/.terraform.lock.hcl
delete mode 100644 terraform/broadcast-switcher/2204.tf
delete mode 100644 terraform/broadcast-switcher/archives.tf
delete mode 100644 terraform/broadcast-switcher/networking.tf
delete mode 100644 terraform/broadcast-switcher/nginx.tf
delete mode 100644 terraform/broadcast-switcher/route53.tf
delete mode 100644 terraform/broadcast-switcher/scripts/install.sh
delete mode 100644 terraform/broadcast-switcher/switchers.tf
delete mode 100644 terraform/broadcast-switcher/template/gui-cloud-init.yaml
delete mode 100644 terraform/broadcast-switcher/template/switcher-cloud-init.yaml
delete mode 100644 terraform/broadcast-switcher/terraform.tf
delete mode 100644 terraform/broadcast-switcher/variables.tf
delete mode 100644 terraform/broadcast-switcher/windows.tf
delete mode 100644 terraform/sakuracloud/.terraform.lock.hcl
delete mode 100644 terraform/sakuracloud/elk.tf
delete mode 100644 terraform/sakuracloud/lb.tf
delete mode 100644 terraform/sakuracloud/networking.tf
delete mode 100644 terraform/sakuracloud/nextcloud.tf
delete mode 100644 terraform/sakuracloud/outputs.tf
delete mode 100644 terraform/sakuracloud/route53.tf
delete mode 100644 terraform/sakuracloud/sandbox.tf
delete mode 100644 terraform/sakuracloud/sentry.tf
delete mode 100644 terraform/sakuracloud/ssh-keys.tf
delete mode 100644 terraform/sakuracloud/template/cloud-init.yaml
delete mode 100644 terraform/sakuracloud/terraform.tf
delete mode 100644 terraform/sakuracloud/uploader.tf
diff --git a/terraform/.gitignore b/terraform/.gitignore
deleted file mode 100644
index 7a3e2fd..0000000
--- a/terraform/.gitignore
+++ /dev/null
@@ -1,29 +0,0 @@
-# Local .terraform directories
-**/.terraform/*
-
-# .tfstate files
-*.tfstate
-*.tfstate.*
-
-# Crash log files
-crash.log
-
-# Ignore any .tfvars files that are generated automatically for each Terraform run. Most
-# .tfvars files are managed as part of configuration and so should be included in
-# version control.
-#
-# example.tfvars
-
-# Ignore override files as they are usually used to override resources locally and so
-# are not checked in
-override.tf
-override.tf.json
-*_override.tf
-*_override.tf.json
-
-# Include override files you do wish to add to version control using negated pattern
-#
-# !example_override.tf
-
-# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan
-# example: *tfplan*
diff --git a/terraform/broadcast-switcher/.terraform.lock.hcl b/terraform/broadcast-switcher/.terraform.lock.hcl
deleted file mode 100644
index b20494a..0000000
--- a/terraform/broadcast-switcher/.terraform.lock.hcl
+++ /dev/null
@@ -1,47 +0,0 @@
-# This file is maintained automatically by "terraform init".
-# Manual edits may be lost in future updates.
-
-provider "registry.terraform.io/hashicorp/aws" {
- version = "3.75.2"
- constraints = "~> 3.0"
- hashes = [
- "h1:x0gluX9ZKEmz+JJW3Ut5GgWDFOq/lhs2vkqJ+xt57zs=",
- "h1:xXeHg5KDyH3rn2mrFh+iuvO2d9CEx8ryvOWRUMC3aWg=",
- "zh:0e75fb14ec42d69bc46461dd54016bb2487d38da324222cec20863918b8954c4",
- "zh:30831a1fe29f005d8b809250b43d09522288db45d474c9d238b26f40bdca2388",
- "zh:36163d625ab2999c9cd31ef2475d978f9f033a8dfa0d585f1665f2d6492fac4b",
- "zh:48ec39685541e4ddd8ddd196e2cfb72516b87f471d86ac3892bc11f83c573199",
- "zh:707b9c8775efd6962b6226d914ab25f308013bba1f68953daa77adca99ff6807",
- "zh:72bd9f4609a827afa366c6f119c7dec7d73a35d712dad1457c0497d87bf8d160",
- "zh:930e3ae3d0cb152e17ee5a8aee5cb47f7613d6421bc7c22e7f50c19da484a100",
- "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:a19bf49b80101a0f0272b994153eeff8f8c206ecc592707bfbce7563355b6882",
- "zh:a34b5d2bbaf52285b0c9a8df6258f4789f4d927ff777e126bdc77e7887abbeaa",
- "zh:caad6fd5e79eae33e6d74e38c3b15c28a5482f2a1a8ca46cc1ee70089de61adb",
- "zh:f2eae988635030de9a088f8058fbcd91e2014a8312a48b16bfd09a9d69d9d6f7",
- ]
-}
-
-provider "registry.terraform.io/sacloud/sakuracloud" {
- version = "2.19.0"
- constraints = "~> 2.19.0"
- hashes = [
- "h1:2HbIaJdtiM4fgDJlmoY1S0M2Qxs2/oktZRhBaxVcm7A=",
- "h1:4QGW6U9A9UE271GgCLgcJV2FRezlkCUVTOvgUHCMz8M=",
- "h1:630+pfASp/3IbboQJn3lx1/F4TpzvSPxWekoIK/xjM4=",
- "h1:FDv+bauY2ovGjs0Is4324l4FcOq9jiRDc6WBeaozV4Q=",
- "h1:LUN+SG/SKNmus+CZ5k9FGvIFri3OWNegxydjRId0kuo=",
- "h1:Pfl9+t1ZurYZmD8dRjTr+8SLHuQtMK3YGwo+hSilNN0=",
- "h1:QIehpqhU6YEWE0gfcqx6XcC6XrST0wa8BpsGfkE4g8o=",
- "h1:R/C7aVxc0o8O6OqDjdGpsYf+XdUqZn/aOvkq2lqCg04=",
- "h1:RsNiFc8I/OUgDbZQxFFd7bXgoX5IHkVaxO6zAAeTXHQ=",
- "h1:TbRB7Ukx4cw+jl7W2b3dtVxJ9XP0xoEnqt5ndbOnx3s=",
- "h1:fGNhGyNHNq4k00PGe8kEea6LT04IKubWHPFsqh3AoSs=",
- "h1:fZ3f0I4ITs0TX4WIwvo+TlXYPSIkOvsFKB4mZiI10IY=",
- "h1:kKAlMh7s/HSCNDDdzP/HObrTZlBOjpP881SGtPxP8m4=",
- "h1:n5eRGGCkglMjinLcHPPv7vcJY6y/g+8qiGDOkgOtK0c=",
- "h1:rZc5XrcAgV4ajjA42q/u4mv8lG+us/KDBHvKrtjOQmw=",
- "h1:s30pGUGB0o4gP06J9unQOAr4vlqhAZl8/mCig88/6jk=",
- "h1:w917lEnPyTBDGOROQH3FUuGkvZm/1FwCqvmWkSyycfs=",
- ]
-}
diff --git a/terraform/broadcast-switcher/2204.tf b/terraform/broadcast-switcher/2204.tf
deleted file mode 100644
index d409881..0000000
--- a/terraform/broadcast-switcher/2204.tf
+++ /dev/null
@@ -1,54 +0,0 @@
-# locals {
-# instances2204 = [
-# {
-# hostname = "server"
-# }
-# ]
-# }
-
-# resource "sakuracloud_disk" "instances2204_boot" {
-# for_each = { for i in local.instances2204 : i.hostname => i }
-# name = "${each.value.hostname}-boot"
-# source_archive_id = data.sakuracloud_archive.ubuntu2204.id
-# plan = "ssd"
-# connector = "virtio"
-# size = 20
-
-# lifecycle {
-# ignore_changes = [
-# source_archive_id,
-# ]
-# }
-# }
-
-# resource "sakuracloud_server" "instances2204" {
-# for_each = { for i in local.instances2204 : i.hostname => i }
-# name = each.value.hostname
-# disks = [
-# sakuracloud_disk.instances2204_boot[each.key].id
-# ]
-# core = 2
-# memory = 4
-# description = "Generic insntaces"
-# tags = ["app=instance", "stage=production"]
-
-# network_interface {
-# upstream = "shared"
-# packet_filter_id = sakuracloud_packet_filter.switcher.id
-# }
-
-# disk_edit_parameter {
-# hostname = each.value.hostname
-# password = var.vm_password
-# disable_pw_auth = false
-# note {
-# id = sakuracloud_note.install.id
-# }
-# }
-# }
-
-# resource "sakuracloud_note" "install" {
-# name = "ubuntu2204-install"
-# content = file("scripts/install.sh")
-# }
-
diff --git a/terraform/broadcast-switcher/archives.tf b/terraform/broadcast-switcher/archives.tf
deleted file mode 100644
index 98d5f1a..0000000
--- a/terraform/broadcast-switcher/archives.tf
+++ /dev/null
@@ -1,15 +0,0 @@
-data "sakuracloud_archive" "ubuntu" {
- filter {
- id = "113301413483"
- }
-}
-data "sakuracloud_archive" "ubuntu2204" {
- filter {
- id = "113401132828"
- }
-}
-data "sakuracloud_archive" "windows" {
- filter {
- id = "113401184142"
- }
-}
diff --git a/terraform/broadcast-switcher/networking.tf b/terraform/broadcast-switcher/networking.tf
deleted file mode 100644
index dad8859..0000000
--- a/terraform/broadcast-switcher/networking.tf
+++ /dev/null
@@ -1,122 +0,0 @@
-resource "sakuracloud_switch" "switcher" {
- name = "switcher"
- description = "switcher"
- tags = ["switcher", "production"]
-}
-resource "sakuracloud_internet" "global" {
- name = "global"
-
- netmask = 28
- band_width = 250
- enable_ipv6 = false
-
- description = "global"
- tags = ["global", "production"]
-}
-
-
-resource "sakuracloud_packet_filter" "switcher" {
- name = "switcher"
- description = "Packet filtering rules for switcher VM"
-}
-
-locals {
- global_ips = [
- {
- name = "sakura",
- ip = "61.211.224.11"
- },
- {
- name = "jacopen",
- ip = "127.0.0.1"
- },
- {
- name = "ijokarumawak",
- ip = "114.146.66.9"
- }
- ]
-}
-
-resource "sakuracloud_packet_filter_rules" "switcher_rules" {
- packet_filter_id = sakuracloud_packet_filter.switcher.id
-
- dynamic "expression" {
- for_each = {for i in local.global_ips : i.name => i }
- content {
- protocol = "tcp"
- destination_port = "22"
- source_network = expression.value.ip
- }
- }
-
- dynamic "expression" {
- for_each = {for i in local.global_ips : i.name => i }
- content {
- protocol = "tcp"
- destination_port = "5900"
- source_network = expression.value.ip
- }
- }
-
- dynamic "expression" {
- for_each = {for i in local.global_ips : i.name => i }
- content {
- protocol = "tcp"
- destination_port = "3389"
- source_network = expression.value.ip
- }
- }
- expression {
- protocol = "tcp"
- destination_port = "80"
- }
-
- expression {
- protocol = "tcp"
- destination_port = "443"
- }
-
- expression {
- protocol = "udp"
- destination_port = "10000-11000"
- }
-
- expression {
- protocol = "tcp"
- destination_port = "10000-11000"
- }
-
- expression {
- protocol = "udp"
- destination_port = "68"
- }
-
- expression {
- protocol = "icmp"
- }
-
- expression {
- protocol = "fragment"
- }
-
- expression {
- protocol = "udp"
- source_port = "123"
- }
-
- expression {
- protocol = "tcp"
- destination_port = "32768-61000"
- }
-
- expression {
- protocol = "udp"
- destination_port = "32768-61000"
- }
-
- expression {
- protocol = "ip"
- allow = false
- description = "Deny ALL"
- }
-}
diff --git a/terraform/broadcast-switcher/nginx.tf b/terraform/broadcast-switcher/nginx.tf
deleted file mode 100644
index 3a4dd23..0000000
--- a/terraform/broadcast-switcher/nginx.tf
+++ /dev/null
@@ -1,55 +0,0 @@
-locals {
- ## NOTE: Please modify this if you want to add a new instance.
- instances = [
- {
- hostname = "nginx01"
- }
- ]
-}
-
-resource "sakuracloud_disk" "instances_boot" {
- for_each = { for i in local.instances : i.hostname => i }
- name = "${each.value.hostname}-boot"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 20
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "instances" {
- for_each = { for i in local.instances : i.hostname => i }
- name = each.value.hostname
- disks = [
- sakuracloud_disk.instances_boot[each.key].id
- ]
- core = 8
- memory = 16
- description = "Generic insntaces"
- tags = ["app=instance", "stage=production"]
-
- network_interface {
- upstream = "shared"
- packet_filter_id = sakuracloud_packet_filter.switcher.id
- }
-
- network_interface {
- upstream = sakuracloud_switch.switcher.id
- }
-
- user_data = templatefile("./template/gui-cloud-init.yaml", {
- vm_password = var.vm_password,
- hostname = each.value.hostname
- })
-
- lifecycle {
- ignore_changes = [
- user_data,
- ]
- }
-}
diff --git a/terraform/broadcast-switcher/route53.tf b/terraform/broadcast-switcher/route53.tf
deleted file mode 100644
index 0c00126..0000000
--- a/terraform/broadcast-switcher/route53.tf
+++ /dev/null
@@ -1,31 +0,0 @@
-data "aws_route53_zone" "cloudnativedays" {
- name = "cloudnativedays.jp."
- private_zone = false
-}
-
-resource "aws_route53_record" "switcher" {
- for_each = { for i in local.switchers : i.hostname => i }
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "${each.key}.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.switcher[each.key].ip_address]
-}
-
-resource "aws_route53_record" "instances" {
- for_each = { for i in local.instances : i.hostname => i }
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "${each.key}.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.instances[each.key].ip_address]
-}
-
-resource "aws_route53_record" "windows" {
- for_each = { for i in local.windows : i.hostname => i }
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "${each.key}.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.windows[each.key].ip_address]
-}
diff --git a/terraform/broadcast-switcher/scripts/install.sh b/terraform/broadcast-switcher/scripts/install.sh
deleted file mode 100644
index 42d3a82..0000000
--- a/terraform/broadcast-switcher/scripts/install.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-if [ ! -e /home/ubuntu/.ssh ]; then
- mkdir -p
- touch /home/ubuntu/.ssh/authorized_keys
- for i in jacopen TakumaNakagame capsmalt Gaku-Kunimi ryojsb tanayan299 onarada ; do
- curl "https://github.com/$i.keys" >> /home/ubuntu/.ssh/authorized_keys
- done
- sudo chown -R ubuntu:ubuntu /home/ubuntu/.ssh
-fi
-
-sudo add-apt-repository -y ppa:obsproject/obs-studio
-sudo apt-get update
-sudo apt-get install -y vim git unzip ubuntu-drivers-common ocl-icd-libopencl1 opencl-headers clinfo obs-studio ffmpeg ubuntu-desktop net-tools software-properties-common
diff --git a/terraform/broadcast-switcher/switchers.tf b/terraform/broadcast-switcher/switchers.tf
deleted file mode 100644
index 1f6c07e..0000000
--- a/terraform/broadcast-switcher/switchers.tf
+++ /dev/null
@@ -1,63 +0,0 @@
-locals {
- ## NOTE: Please modify this if you want to add a new switcher instance.
- switchers = [
- {
- hostname = "switcher01"
- },
- {
- hostname = "switcher02"
- },
- {
- hostname = "switcher03"
- }
- ]
-}
-
-resource "sakuracloud_disk" "switcher_boot" {
- for_each = { for i in local.switchers : i.hostname => i }
- name = "${each.value.hostname}-boot"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 100
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "switcher" {
- for_each = { for i in local.switchers : i.hostname => i }
- name = each.value.hostname
- disks = [
- sakuracloud_disk.switcher_boot[each.key].id
- ]
- core = 4
- memory = 56
- gpu = 1
- description = "Switcher server"
- tags = ["app=switcher", "stage=production"]
-
- network_interface {
- upstream = "shared"
- packet_filter_id = sakuracloud_packet_filter.switcher.id
- }
-
- network_interface {
- upstream = sakuracloud_switch.switcher.id
- }
-
- user_data = templatefile("./template/switcher-cloud-init.yaml", {
- vm_password = var.vm_password,
- vnc_password = var.vnc_password,
- hostname = each.value.hostname
- })
-
- lifecycle {
- ignore_changes = [
- user_data,
- ]
- }
-}
diff --git a/terraform/broadcast-switcher/template/gui-cloud-init.yaml b/terraform/broadcast-switcher/template/gui-cloud-init.yaml
deleted file mode 100644
index 7537e7b..0000000
--- a/terraform/broadcast-switcher/template/gui-cloud-init.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-#cloud-config
-fqdn: ${hostname}
-chpasswd:
- list: |
- ubuntu:${vm_password}
- expire: false
-users:
- - default
- - name: ubuntu
- gecos: Local
- lock_passwd: false
- groups: sudo, users, admin
- shell: /bin/bash
- sudo: ['ALL=(ALL) NOPASSWD:ALL']
- ssh_import_id:
- - gh:jacopen
- - gh:TakumaNakagame
- - gh:capsmalt
- - gh:Gaku-Kunimi
- - gh:tanayan299
- - gh:onarada
- - gh:ijokarumawak
- - gh:tkc66-buzz
- - gh:morimorikun51
-system_info:
- default_user:
- name: default-user
- lock_passwd: false
- sudo: ["ALL=(ALL) NOPASSWD:ALL"]
-ssh_pwauth: yes
-random_seed:
- file: /dev/urandom
- command: ["pollinate", "-r", "-s", "https://entropy.ubuntu.com"]
- command_required: true
-package_upgrade: true
-packages:
- - curl
- - vim
- - git
- - unzip
- - ubuntu-drivers-common
- - ocl-icd-libopencl1
- - opencl-headers
- - clinfo
- - ffmpeg
- - ubuntu-desktop
- - net-tools
- - software-properties-common
- - dstat
- - iftop
- - language-pack-ja-base
- - language-pack-ja
- - ibus-mozc
-runcmd:
- - curl -sSL https://raw.githubusercontent.com/cloudnativedaysjp/broadcast/main/switcher/install-docker.sh | sh -
diff --git a/terraform/broadcast-switcher/template/switcher-cloud-init.yaml b/terraform/broadcast-switcher/template/switcher-cloud-init.yaml
deleted file mode 100644
index 0d45441..0000000
--- a/terraform/broadcast-switcher/template/switcher-cloud-init.yaml
+++ /dev/null
@@ -1,52 +0,0 @@
-#cloud-config
-fqdn: ${hostname}
-chpasswd:
- list: |
- ubuntu:${vm_password}
- expire: false
-users:
- - default
- - name: ubuntu
- gecos: Local
- lock_passwd: false
- groups: sudo, users, admin
- shell: /bin/bash
- sudo: ['ALL=(ALL) NOPASSWD:ALL']
- ssh_import_id:
- - gh:jacopen
- - gh:TakumaNakagame
- - gh:capsmalt
- - gh:Gaku-Kunimi
- - gh:tanayan299
- - gh:onarada
- - gh:ijokarumawak
- - gh:tkc66-buzz
- - gh:morimorikun51
-system_info:
- default_user:
- name: default-user
- lock_passwd: false
- sudo: ["ALL=(ALL) NOPASSWD:ALL"]
-ssh_pwauth: yes
-random_seed:
- file: /dev/urandom
- command: ["pollinate", "-r", "-s", "https://entropy.ubuntu.com"]
- command_required: true
-package_upgrade: true
-packages:
- - curl
- - vim
- - git
- - unzip
- - x11vnc
- - vlc
- - wget
- - dstat
- - iftop
- - language-pack-ja-base
- - language-pack-ja
- - ibus-mozc
-runcmd:
- - sudo x11vnc -storepasswd ${vnc_password} /etc/.vncpasswd
- - curl -sSL https://raw.githubusercontent.com/cloudnativedaysjp/broadcast/main/switcher/setup.sh | sh -
- - curl -sSL https://raw.githubusercontent.com/cloudnativedaysjp/broadcast/main/switcher/install-docker.sh | sh -
diff --git a/terraform/broadcast-switcher/terraform.tf b/terraform/broadcast-switcher/terraform.tf
deleted file mode 100644
index 38bdf19..0000000
--- a/terraform/broadcast-switcher/terraform.tf
+++ /dev/null
@@ -1,24 +0,0 @@
-terraform {
- backend "remote" {
- hostname = "app.terraform.io"
- organization = "kusama"
- workspaces {
- name = "broadcast_switcher"
- }
- }
- required_providers {
- sakuracloud = {
- source = "sacloud/sakuracloud"
- version = "~> 2.19.0"
- }
- aws = {
- source = "hashicorp/aws"
- version = "~> 3.0"
- }
- }
-}
-provider "sakuracloud" {
-}
-
-provider "aws" {
-}
\ No newline at end of file
diff --git a/terraform/broadcast-switcher/variables.tf b/terraform/broadcast-switcher/variables.tf
deleted file mode 100644
index b3eaf86..0000000
--- a/terraform/broadcast-switcher/variables.tf
+++ /dev/null
@@ -1,7 +0,0 @@
-variable "vnc_password" {
- default = "cloudnativedays"
-}
-
-variable "vm_password" {
- default = "cloudnativedays"
-}
diff --git a/terraform/broadcast-switcher/windows.tf b/terraform/broadcast-switcher/windows.tf
deleted file mode 100644
index e68d407..0000000
--- a/terraform/broadcast-switcher/windows.tf
+++ /dev/null
@@ -1,49 +0,0 @@
-locals {
- windows = [
- # {
- # hostname = "windows01",
- # }
- ]
-}
-
-resource "sakuracloud_disk" "windows_boot" {
- for_each = { for i in local.windows : i.hostname => i }
- name = "${each.value.hostname}-boot"
- source_archive_id = data.sakuracloud_archive.windows.id
- plan = "ssd"
- connector = "virtio"
- size = 100
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "windows" {
- for_each = { for i in local.windows : i.hostname => i }
- name = each.value.hostname
- disks = [
- sakuracloud_disk.windows_boot[each.key].id
- ]
- core = 8
- memory = 16
- description = "Windowws insntaces"
- tags = ["app=instance", "stage=production", "os=windows"]
-
- network_interface {
- upstream = "shared"
- packet_filter_id = sakuracloud_packet_filter.switcher.id
- }
-
- network_interface {
- upstream = sakuracloud_switch.switcher.id
- }
-
- lifecycle {
- ignore_changes = [
- user_data,
- ]
- }
-}
diff --git a/terraform/sakuracloud/.terraform.lock.hcl b/terraform/sakuracloud/.terraform.lock.hcl
deleted file mode 100644
index 7006248..0000000
--- a/terraform/sakuracloud/.terraform.lock.hcl
+++ /dev/null
@@ -1,88 +0,0 @@
-# This file is maintained automatically by "terraform init".
-# Manual edits may be lost in future updates.
-
-provider "registry.terraform.io/hashicorp/aws" {
- version = "3.75.2"
- constraints = "~> 3.0"
- hashes = [
- "h1:x0gluX9ZKEmz+JJW3Ut5GgWDFOq/lhs2vkqJ+xt57zs=",
- "h1:xXeHg5KDyH3rn2mrFh+iuvO2d9CEx8ryvOWRUMC3aWg=",
- "zh:0e75fb14ec42d69bc46461dd54016bb2487d38da324222cec20863918b8954c4",
- "zh:30831a1fe29f005d8b809250b43d09522288db45d474c9d238b26f40bdca2388",
- "zh:36163d625ab2999c9cd31ef2475d978f9f033a8dfa0d585f1665f2d6492fac4b",
- "zh:48ec39685541e4ddd8ddd196e2cfb72516b87f471d86ac3892bc11f83c573199",
- "zh:707b9c8775efd6962b6226d914ab25f308013bba1f68953daa77adca99ff6807",
- "zh:72bd9f4609a827afa366c6f119c7dec7d73a35d712dad1457c0497d87bf8d160",
- "zh:930e3ae3d0cb152e17ee5a8aee5cb47f7613d6421bc7c22e7f50c19da484a100",
- "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425",
- "zh:a19bf49b80101a0f0272b994153eeff8f8c206ecc592707bfbce7563355b6882",
- "zh:a34b5d2bbaf52285b0c9a8df6258f4789f4d927ff777e126bdc77e7887abbeaa",
- "zh:caad6fd5e79eae33e6d74e38c3b15c28a5482f2a1a8ca46cc1ee70089de61adb",
- "zh:f2eae988635030de9a088f8058fbcd91e2014a8312a48b16bfd09a9d69d9d6f7",
- ]
-}
-
-provider "registry.terraform.io/hashicorp/random" {
- version = "3.3.2"
- hashes = [
- "h1:H5V+7iXol/EHB2+BUMzGlpIiCOdV74H8YjzCxnSAWcg=",
- "h1:YChjos7Hrvr2KgTc9GzQ+de/QE2VLAeRJgxFemnCltU=",
- "zh:038293aebfede983e45ee55c328e3fde82ae2e5719c9bd233c324cfacc437f9c",
- "zh:07eaeab03a723d83ac1cc218f3a59fceb7bbf301b38e89a26807d1c93c81cef8",
- "zh:427611a4ce9d856b1c73bea986d841a969e4c2799c8ac7c18798d0cc42b78d32",
- "zh:49718d2da653c06a70ba81fd055e2b99dfd52dcb86820a6aeea620df22cd3b30",
- "zh:5574828d90b19ab762604c6306337e6cd430e65868e13ef6ddb4e25ddb9ad4c0",
- "zh:7222e16f7833199dabf1bc5401c56d708ec052b2a5870988bc89ff85b68a5388",
- "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3",
- "zh:b1b2d7d934784d2aee98b0f8f07a8ccfc0410de63493ae2bf2222c165becf938",
- "zh:b8f85b6a20bd264fcd0814866f415f0a368d1123cd7879c8ebbf905d370babc8",
- "zh:c3813133acc02bbebddf046d9942e8ba5c35fc99191e3eb057957dafc2929912",
- "zh:e7a41dbc919d1de800689a81c240c27eec6b9395564630764ebb323ea82ac8a9",
- "zh:ee6d23208449a8eaa6c4f203e33f5176fa795b4b9ecf32903dffe6e2574732c2",
- ]
-}
-
-provider "registry.terraform.io/integrations/github" {
- version = "5.0.0"
- constraints = "~> 5.0"
- hashes = [
- "h1:+6ZIoasj/qnzl8Ev8sAVhP+bYQMhukm7ZDcBsTID2N4=",
- "h1:2PoNOrdyD3y0hyAHFUzeOreR09B2Ts2PnzNSzrX6jUo=",
- "h1:8TTSwhFaYt9fS0Sr6IKOvNKBok0LE8nbOG743VeeFuQ=",
- "h1:HFgeISsIUICQHGA9rNpwrNM6PXRFsOHkjh3t0vFUdoM=",
- "h1:Ho9gXTnR7/QyHydBYatyPcO/pCBj54V11cIwB6hczOE=",
- "h1:UUeWFA9Gzc6nf4qBl9iSlCupVTAncun5CX35htBxdb4=",
- "h1:VMK/YpRgR4cjP0YIuO9XiChUufx/A5Zo2D1Un2RqCbI=",
- "h1:Yy51p0hIvXED9iLVdcP64D3CrRv0Tei+WuzTX3Bft8M=",
- "h1:aw55Wn72vXK8m8Ikw3k4S0eI4SpA+kijjUbpGeEJeOY=",
- "h1:diWO3W9d9F0qQXokGbDd/KJgZlC4eu0D6Zeic+aJbRU=",
- "h1:iIIs/29woecvaS+mqkyuNnM/kbWGCkwFkr+8EtRDpfE=",
- "h1:lww9RQj4mslHB0VWNM8QCW5j0E0wqA+aHdVaMpTaatU=",
- "h1:r3r0zJuTend4d2mil0iiktTQjKdN7uAErd9q6kH307s=",
- "h1:rIz+PYkq62DUfwFlV+kIGJD+J+o0wTqd+Ovfr+u1bYY=",
- ]
-}
-
-provider "registry.terraform.io/sacloud/sakuracloud" {
- version = "2.19.0"
- constraints = "~> 2.19.0"
- hashes = [
- "h1:2HbIaJdtiM4fgDJlmoY1S0M2Qxs2/oktZRhBaxVcm7A=",
- "h1:4QGW6U9A9UE271GgCLgcJV2FRezlkCUVTOvgUHCMz8M=",
- "h1:630+pfASp/3IbboQJn3lx1/F4TpzvSPxWekoIK/xjM4=",
- "h1:FDv+bauY2ovGjs0Is4324l4FcOq9jiRDc6WBeaozV4Q=",
- "h1:LUN+SG/SKNmus+CZ5k9FGvIFri3OWNegxydjRId0kuo=",
- "h1:Pfl9+t1ZurYZmD8dRjTr+8SLHuQtMK3YGwo+hSilNN0=",
- "h1:QIehpqhU6YEWE0gfcqx6XcC6XrST0wa8BpsGfkE4g8o=",
- "h1:R/C7aVxc0o8O6OqDjdGpsYf+XdUqZn/aOvkq2lqCg04=",
- "h1:RsNiFc8I/OUgDbZQxFFd7bXgoX5IHkVaxO6zAAeTXHQ=",
- "h1:TbRB7Ukx4cw+jl7W2b3dtVxJ9XP0xoEnqt5ndbOnx3s=",
- "h1:fGNhGyNHNq4k00PGe8kEea6LT04IKubWHPFsqh3AoSs=",
- "h1:fZ3f0I4ITs0TX4WIwvo+TlXYPSIkOvsFKB4mZiI10IY=",
- "h1:kKAlMh7s/HSCNDDdzP/HObrTZlBOjpP881SGtPxP8m4=",
- "h1:n5eRGGCkglMjinLcHPPv7vcJY6y/g+8qiGDOkgOtK0c=",
- "h1:rZc5XrcAgV4ajjA42q/u4mv8lG+us/KDBHvKrtjOQmw=",
- "h1:s30pGUGB0o4gP06J9unQOAr4vlqhAZl8/mCig88/6jk=",
- "h1:w917lEnPyTBDGOROQH3FUuGkvZm/1FwCqvmWkSyycfs=",
- ]
-}
diff --git a/terraform/sakuracloud/elk.tf b/terraform/sakuracloud/elk.tf
deleted file mode 100644
index 8b57b50..0000000
--- a/terraform/sakuracloud/elk.tf
+++ /dev/null
@@ -1,44 +0,0 @@
-resource "sakuracloud_disk" "elk" {
- name = "elk"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 500
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "elk" {
- name = "elk"
- disks = [
- sakuracloud_disk.elk.id,
- ]
- core = 4
- memory = 8
- description = "ELK Stack"
- tags = ["app=elk", "stage=production", "starred"]
-
- network_interface {
- upstream = "shared"
- packet_filter_id = sakuracloud_packet_filter.nextcloud.id
- }
-
- network_interface {
- upstream = data.sakuracloud_switch.switcher.id
- }
-
- user_data = templatefile("./template/cloud-init.yaml", {
- vm_password = random_password.password.result,
- hostname = "elk"
- })
-
- lifecycle {
- ignore_changes = [
- user_data,
- ]
- }
-}
diff --git a/terraform/sakuracloud/lb.tf b/terraform/sakuracloud/lb.tf
deleted file mode 100644
index 192fae2..0000000
--- a/terraform/sakuracloud/lb.tf
+++ /dev/null
@@ -1,61 +0,0 @@
-resource sakuracloud_proxylb_acme "uploader" {
- proxylb_id = sakuracloud_proxylb.uploader.id
- accept_tos = true
- common_name = "uploader.cloudnativedays.jp"
- update_delay_sec = 120
- depends_on = [
- aws_route53_record.uploader
- ]
-}
-
-resource "sakuracloud_proxylb" "uploader" {
- name = "uploader"
- plan = 5000
- vip_failover = true
- sticky_session = true
- gzip = true
- proxy_protocol = false
- timeout = 10
- region = "is1"
-
- health_check {
- protocol = "tcp"
- delay_loop = 10
- }
-
- bind_port {
- proxy_mode = "http"
- port = 80
- response_header {
- header = "Cache-Control"
- value = "public, max-age=10"
- }
- }
-
- bind_port {
- proxy_mode = "https"
- port = 443
- ssl_policy = "TLS-1-2-2019-04"
- support_http2 = true
- response_header {
- header = "Cache-Control"
- value = "public, max-age=10"
- }
- }
-
- server {
- ip_address = sakuracloud_server.uploader.ip_address
- port = 80
- group = "group1"
- }
-
- rule {
- host = "uploader.cloudnativedays.jp"
- path = "/*"
- group = "group1"
- }
-
- description = "LB for uploader"
- tags = ["app=uploader", "stage=production"]
-}
-
diff --git a/terraform/sakuracloud/networking.tf b/terraform/sakuracloud/networking.tf
deleted file mode 100644
index 5e08a26..0000000
--- a/terraform/sakuracloud/networking.tf
+++ /dev/null
@@ -1,62 +0,0 @@
-resource "sakuracloud_packet_filter" "nextcloud" {
- name = "nextcloud"
- description = "Packet filtering rules for nextcloud VM"
-}
-
-data "sakuracloud_switch" "switcher" {
- filter {
- names = ["switcher"]
- }
-}
-
-resource "sakuracloud_packet_filter_rules" "nextcloud_rules" {
- packet_filter_id = sakuracloud_packet_filter.nextcloud.id
-
- expression {
- protocol = "tcp"
- destination_port = "22"
- }
-
- expression {
- protocol = "tcp"
- destination_port = "80"
- }
-
- expression {
- protocol = "tcp"
- destination_port = "443"
- }
-
- expression {
- protocol = "udp"
- destination_port = "68"
- }
-
- expression {
- protocol = "icmp"
- }
-
- expression {
- protocol = "fragment"
- }
-
- expression {
- protocol = "udp"
- source_port = "123"
- }
-
- expression {
- protocol = "tcp"
- destination_port = "32768-61000"
- }
-
- expression {
- protocol = "udp"
- destination_port = "32768-61000"
- }
- expression {
- protocol = "ip"
- allow = false
- description = "Deny ALL"
- }
-}
diff --git a/terraform/sakuracloud/nextcloud.tf b/terraform/sakuracloud/nextcloud.tf
deleted file mode 100644
index d500d85..0000000
--- a/terraform/sakuracloud/nextcloud.tf
+++ /dev/null
@@ -1,119 +0,0 @@
-resource "random_password" "password" {
- length = 16
- special = true
- override_special = "_%@"
-}
-
-data "sakuracloud_archive" "ubuntu" {
- filter {
- id = "113301413483"
- }
-}
-
-resource "sakuracloud_disk" "nextcloud_boot" {
- name = "nextcloud-boot"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 20
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_disk" "nextcloud_data" {
- name = "nextcloud-data"
- plan = "ssd"
- connector = "virtio"
- size = 2048
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_disk" "nextcloud_backup" {
- name = "nextcloud-backup"
- plan = "hdd"
- connector = "virtio"
- size = 2048
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "nextcloud" {
- name = "nextcloud"
- disks = [
- sakuracloud_disk.nextcloud_boot.id,
- sakuracloud_disk.nextcloud_data.id,
- sakuracloud_disk.nextcloud_backup.id
- ]
- core = 2
- memory = 4
- description = "Nextcloud server"
- tags = ["app=nextcloud", "stage=production", "starred"]
-
- network_interface {
- upstream = "shared"
- }
-
- disk_edit_parameter {
- hostname = "nextcloud"
- password = random_password.password.result
- ssh_key_ids = [for l in sakuracloud_ssh_key.key : l.id]
- }
-}
-
-resource "sakuracloud_disk" "nextcloud_boot2" {
- name = "nextcloud-boot2"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 1024
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "nextcloud2" {
- name = "nextcloud2"
- disks = [
- sakuracloud_disk.nextcloud_boot2.id,
- ]
- core = 4
- memory = 4
- description = "New Nextcloud server"
- tags = ["app=nextcloud", "stage=production", "starred"]
-
- network_interface {
- upstream = "shared"
- packet_filter_id = sakuracloud_packet_filter.nextcloud.id
- }
-
- network_interface {
- upstream = data.sakuracloud_switch.switcher.id
- }
-
- user_data = templatefile("./template/cloud-init.yaml", {
- vm_password = random_password.password.result,
- hostname = "nextcloud2"
- })
-
- lifecycle {
- ignore_changes = [
- user_data,
- ]
- }
-}
diff --git a/terraform/sakuracloud/outputs.tf b/terraform/sakuracloud/outputs.tf
deleted file mode 100644
index 961b4d2..0000000
--- a/terraform/sakuracloud/outputs.tf
+++ /dev/null
@@ -1,8 +0,0 @@
-output "vm_password" {
- value = random_password.password.result
- sensitive = true
-}
-
-output "vm_ip" {
- value = sakuracloud_server.nextcloud.ip_address
-}
\ No newline at end of file
diff --git a/terraform/sakuracloud/route53.tf b/terraform/sakuracloud/route53.tf
deleted file mode 100644
index 94c5edb..0000000
--- a/terraform/sakuracloud/route53.tf
+++ /dev/null
@@ -1,63 +0,0 @@
-data "aws_route53_zone" "cloudnativedays" {
- name = "cloudnativedays.jp."
- private_zone = false
-}
-
-resource "aws_route53_record" "nextcloud" {
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "nextcloud.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.nextcloud.ip_address]
-}
-
-resource "aws_route53_record" "nextcloud2" {
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "nextcloud2.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.nextcloud2.ip_address]
-}
-
-resource "aws_route53_record" "sentry" {
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "sentry.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.sentry.ip_address]
-}
-
-resource "aws_route53_record" "nc_sandbox" {
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "nc-sandbox.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.nc_sandbox.ip_address]
-}
-
-resource "aws_route53_record" "uploader" {
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "uploader.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_proxylb.uploader.vip]
- depends_on = [
- sakuracloud_proxylb.uploader
- ]
-}
-
-resource "aws_route53_record" "uploader_internal" {
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "uploader-internal.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.uploader.ip_address]
-}
-
-resource "aws_route53_record" "elk" {
- zone_id = data.aws_route53_zone.cloudnativedays.zone_id
- name = "elk.cloudnativedays.jp"
- type = "A"
- ttl = "300"
- records = [sakuracloud_server.elk.ip_address]
-}
diff --git a/terraform/sakuracloud/sandbox.tf b/terraform/sakuracloud/sandbox.tf
deleted file mode 100644
index 5c255b1..0000000
--- a/terraform/sakuracloud/sandbox.tf
+++ /dev/null
@@ -1,41 +0,0 @@
-resource "sakuracloud_disk" "nc_sandbox_boot" {
- name = "nc-sandbox-boot"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 100
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "nc_sandbox" {
- name = "nc-sandbox"
- disks = [
- sakuracloud_disk.nc_sandbox_boot.id,
- ]
- core = 2
- memory = 4
- description = "Nextcloud Sandbox"
- tags = ["app=nextcloud", "stage=staging"]
-
- network_interface {
- upstream = "shared"
- packet_filter_id = sakuracloud_packet_filter.nextcloud.id
- }
-
- user_data = templatefile("./template/cloud-init.yaml", {
- vm_password = random_password.password.result,
- hostname = "nc-sandbox"
- })
-
- lifecycle {
- ignore_changes = [
- user_data,
- ]
- }
-}
-
diff --git a/terraform/sakuracloud/sentry.tf b/terraform/sakuracloud/sentry.tf
deleted file mode 100644
index 1e5733e..0000000
--- a/terraform/sakuracloud/sentry.tf
+++ /dev/null
@@ -1,33 +0,0 @@
-resource "sakuracloud_disk" "sentry_boot" {
- name = "sentry-boot"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 100
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "sentry" {
- name = "sentry"
- disks = [
- sakuracloud_disk.sentry_boot.id,
- ]
- core = 4
- memory = 8
- description = "Sentry server"
- tags = ["app=sentry", "stage=production", "starred"]
-
- network_interface {
- upstream = "shared"
- }
-
- user_data = templatefile("./template/cloud-init.yaml", {
- vm_password = random_password.password.result,
- hostname = "sentry"
- })
-}
diff --git a/terraform/sakuracloud/ssh-keys.tf b/terraform/sakuracloud/ssh-keys.tf
deleted file mode 100644
index 1374078..0000000
--- a/terraform/sakuracloud/ssh-keys.tf
+++ /dev/null
@@ -1,14 +0,0 @@
-# data "http" "key" {
-# for_each = toset( ["jacopen", "TakumaNakagame"] )
-# url = "https://github.com/${each.key}.keys"
-# }
-
-data "github_user" "jacopen" {
- username = "jacopen"
-}
-
-resource "sakuracloud_ssh_key" "key" {
- for_each = toset(data.github_user.jacopen.ssh_keys)
- name = "sshkey-${index(data.github_user.jacopen.ssh_keys, each.key)}"
- public_key = each.value
-}
diff --git a/terraform/sakuracloud/template/cloud-init.yaml b/terraform/sakuracloud/template/cloud-init.yaml
deleted file mode 100644
index c1178a9..0000000
--- a/terraform/sakuracloud/template/cloud-init.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-#cloud-config
-fqdn: ${hostname}
-chpasswd:
- list: |
- ubuntu:${vm_password}
- expire: false
-users:
- - default
- - name: ubuntu
- gecos: Local
- lock_passwd: false
- groups: sudo, users, admin
- shell: /bin/bash
- sudo: ['ALL=(ALL) NOPASSWD:ALL']
- ssh_import_id:
- - gh:jacopen
- - gh:TakumaNakagame
- - gh:capsmalt
- - gh:Gaku-Kunimi
- - gh:inductor
- - gh:tanayan299
- - gh:onarada
- - gh:ijokarumawak
- - gh:tkc66-buzz
- - gh:morimorikun51
-system_info:
- default_user:
- name: default-user
- lock_passwd: false
- sudo: ["ALL=(ALL) NOPASSWD:ALL"]
-ssh_pwauth: yes
-random_seed:
- file: /dev/urandom
- command: ["pollinate", "-r", "-s", "https://entropy.ubuntu.com"]
- command_required: true
-package_upgrade: true
-packages:
- - curl
- - vim
- - git
- - unzip
- - gnupg
- - lsb-release
- - ca-certificates
- - dstat
-runcmd:
- - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
- - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- - sudo apt-get update
- - sudo apt-get install -y docker-ce docker-ce-cli containerd.io
- - sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- - sudo chmod +x /usr/local/bin/docker-compose
- - curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- - unzip awscliv2.zip
- - sudo ./aws/install
diff --git a/terraform/sakuracloud/terraform.tf b/terraform/sakuracloud/terraform.tf
deleted file mode 100644
index bbd51a7..0000000
--- a/terraform/sakuracloud/terraform.tf
+++ /dev/null
@@ -1,29 +0,0 @@
-terraform {
- backend "remote" {
- hostname = "app.terraform.io"
- organization = "kusama"
- workspaces {
- name = "sakuracloud"
- }
- }
- required_providers {
- sakuracloud = {
- source = "sacloud/sakuracloud"
- version = "~> 2.19.0"
- }
- github = {
- source = "integrations/github"
- version = "~> 5.0"
- }
- aws = {
- source = "hashicorp/aws"
- version = "~> 3.0"
- }
- }
-}
-provider "sakuracloud" {
-}
-provider "github" {}
-
-provider "aws" {
-}
\ No newline at end of file
diff --git a/terraform/sakuracloud/uploader.tf b/terraform/sakuracloud/uploader.tf
deleted file mode 100644
index 911269e..0000000
--- a/terraform/sakuracloud/uploader.tf
+++ /dev/null
@@ -1,40 +0,0 @@
-resource "sakuracloud_disk" "uploader_boot" {
- name = "uploader-boot"
- source_archive_id = data.sakuracloud_archive.ubuntu.id
- plan = "ssd"
- connector = "virtio"
- size = 100
-
- lifecycle {
- ignore_changes = [
- source_archive_id,
- ]
- }
-}
-
-resource "sakuracloud_server" "uploader" {
- name = "uploader"
- disks = [
- sakuracloud_disk.uploader_boot.id,
- ]
- core = 2
- memory = 4
- description = "Nextcloud Sandbox"
- tags = ["app=uploader", "stage=production", "starred"]
-
- network_interface {
- upstream = "shared"
- packet_filter_id = sakuracloud_packet_filter.nextcloud.id
- }
-
- user_data = templatefile("./template/cloud-init.yaml", {
- vm_password = random_password.password.result,
- hostname = "uploader"
- })
-
- lifecycle {
- ignore_changes = [
- user_data,
- ]
- }
-}