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, - ] - } -}