From d0f20574366ff4aeb0487da342152e715589be36 Mon Sep 17 00:00:00 2001
From: fern-api <115122769+fern-api[bot]@users.noreply.github.com>
Date: Mon, 22 Jul 2024 19:26:55 +0000
Subject: [PATCH] SDK regeneration
---
.fernignore | 1 +
.github/workflows/ci.yml | 69 ++
.gitignore | 477 ++++++++++++
LICENSE | 201 -----
src/Gooey.net.Test/Gooey.net.Test.csproj | 24 +
src/Gooey.net.Test/TestClient.cs | 8 +
.../Serialization/AggFunctionResultTest.cs | 8 +
.../Unit/Serialization/AggFunctionTest.cs | 8 +
.../Unit/Serialization/AnimationPromptTest.cs | 8 +
.../Unit/Serialization/AsrChunkTest.cs | 8 +
.../Unit/Serialization/AsrOutputJsonTest.cs | 8 +
.../Unit/Serialization/AsrPageOutputTest.cs | 8 +
.../Unit/Serialization/AsrPageRequestTest.cs | 8 +
.../Unit/Serialization/AsrPageResponseTest.cs | 8 +
.../AsrPageStatusResponseTest.cs | 8 +
.../AsyncApiResponseModelV3Test.cs | 8 +
.../Unit/Serialization/BalanceResponseTest.cs | 8 +
.../Serialization/BotBroadcastFiltersTest.cs | 8 +
.../Serialization/BulkEvalPageOutputTest.cs | 8 +
.../Serialization/BulkEvalPageRequestTest.cs | 8 +
.../Serialization/BulkEvalPageResponseTest.cs | 8 +
.../BulkEvalPageStatusResponseTest.cs | 8 +
.../Serialization/BulkRunnerPageOutputTest.cs | 8 +
.../BulkRunnerPageRequestTest.cs | 8 +
.../BulkRunnerPageResponseTest.cs | 8 +
.../BulkRunnerPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/ButtonPressedTest.cs | 8 +
.../CalledFunctionResponseTest.cs | 8 +
...ChatCompletionContentPartImageParamTest.cs | 8 +
.../ChatCompletionContentPartTextParamTest.cs | 8 +
.../ChyronPlantPageOutputTest.cs | 8 +
.../ChyronPlantPageRequestTest.cs | 8 +
.../ChyronPlantPageResponseTest.cs | 8 +
.../ChyronPlantPageStatusResponseTest.cs | 8 +
.../Serialization/CompareLlmPageOutputTest.cs | 8 +
.../CompareLlmPageRequestTest.cs | 8 +
.../CompareLlmPageResponseTest.cs | 8 +
.../CompareLlmPageStatusResponseTest.cs | 8 +
.../CompareText2ImgPageOutputTest.cs | 8 +
.../CompareText2ImgPageRequestTest.cs | 8 +
.../CompareText2ImgPageResponseTest.cs | 8 +
.../CompareText2ImgPageStatusResponseTest.cs | 8 +
.../CompareUpscalerPageOutputTest.cs | 8 +
.../CompareUpscalerPageRequestTest.cs | 8 +
.../CompareUpscalerPageResponseTest.cs | 8 +
.../CompareUpscalerPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/ConsoleLogsTest.cs | 8 +
.../Serialization/ConversationEntryTest.cs | 8 +
.../Serialization/ConversationStartTest.cs | 8 +
.../Serialization/CreateStreamResponseTest.cs | 8 +
.../Serialization/DeforumSdPageOutputTest.cs | 8 +
.../Serialization/DeforumSdPageRequestTest.cs | 8 +
.../DeforumSdPageResponseTest.cs | 8 +
.../DeforumSdPageStatusResponseTest.cs | 8 +
.../Serialization/DocExtractPageOutputTest.cs | 8 +
.../DocExtractPageRequestTest.cs | 8 +
.../DocExtractPageResponseTest.cs | 8 +
.../DocExtractPageStatusResponseTest.cs | 8 +
.../Serialization/DocSearchPageOutputTest.cs | 8 +
.../Serialization/DocSearchPageRequestTest.cs | 8 +
.../DocSearchPageResponseTest.cs | 8 +
.../DocSearchPageStatusResponseTest.cs | 8 +
.../Serialization/DocSummaryPageOutputTest.cs | 8 +
.../DocSummaryPageRequestTest.cs | 8 +
.../DocSummaryPageResponseTest.cs | 8 +
.../DocSummaryPageStatusResponseTest.cs | 8 +
.../EmailFaceInpaintingPageOutputTest.cs | 8 +
.../EmailFaceInpaintingPageRequestTest.cs | 8 +
.../EmailFaceInpaintingPageResponseTest.cs | 8 +
...ailFaceInpaintingPageStatusResponseTest.cs | 8 +
.../Serialization/EmbeddingsPageOutputTest.cs | 8 +
.../EmbeddingsPageRequestTest.cs | 8 +
.../EmbeddingsPageResponseTest.cs | 8 +
.../EmbeddingsPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/EvalPromptTest.cs | 8 +
.../FaceInpaintingPageOutputTest.cs | 8 +
.../FaceInpaintingPageRequestTest.cs | 8 +
.../FaceInpaintingPageResponseTest.cs | 8 +
.../FaceInpaintingPageStatusResponseTest.cs | 8 +
.../Serialization/FailedReponseModelV2Test.cs | 8 +
.../Serialization/FailedResponseDetailTest.cs | 8 +
.../Unit/Serialization/FinalResponseTest.cs | 8 +
.../Serialization/FunctionsPageOutputTest.cs | 8 +
.../Serialization/FunctionsPageRequestTest.cs | 8 +
.../FunctionsPageResponseTest.cs | 8 +
.../FunctionsPageStatusResponseTest.cs | 8 +
.../GenericErrorResponseDetailTest.cs | 8 +
.../Serialization/GenericErrorResponseTest.cs | 8 +
.../Serialization/GoogleGptPageOutputTest.cs | 8 +
.../Serialization/GoogleGptPageRequestTest.cs | 8 +
.../GoogleGptPageResponseTest.cs | 8 +
.../GoogleGptPageStatusResponseTest.cs | 8 +
.../GoogleImageGenPageOutputTest.cs | 8 +
.../GoogleImageGenPageRequestTest.cs | 8 +
.../GoogleImageGenPageResponseTest.cs | 8 +
.../GoogleImageGenPageStatusResponseTest.cs | 8 +
.../Serialization/HttpValidationErrorTest.cs | 8 +
.../ImageSegmentationPageOutputTest.cs | 8 +
.../ImageSegmentationPageRequestTest.cs | 8 +
.../ImageSegmentationPageResponseTest.cs | 8 +
...ImageSegmentationPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/ImageUrlTest.cs | 8 +
.../Serialization/Img2ImgPageOutputTest.cs | 8 +
.../Serialization/Img2ImgPageRequestTest.cs | 8 +
.../Serialization/Img2ImgPageResponseTest.cs | 8 +
.../Img2ImgPageStatusResponseTest.cs | 8 +
.../LetterWriterPageOutputTest.cs | 8 +
.../LetterWriterPageRequestTest.cs | 8 +
.../LetterWriterPageResponseTest.cs | 8 +
.../LetterWriterPageStatusResponseTest.cs | 8 +
.../Serialization/LipsyncPageOutputTest.cs | 8 +
.../Serialization/LipsyncPageRequestTest.cs | 8 +
.../Serialization/LipsyncPageResponseTest.cs | 8 +
.../LipsyncPageStatusResponseTest.cs | 8 +
.../Serialization/LipsyncTtsPageOutputTest.cs | 8 +
.../LipsyncTtsPageRequestTest.cs | 8 +
.../LipsyncTtsPageResponseTest.cs | 8 +
.../LipsyncTtsPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/MessagePartTest.cs | 8 +
.../ObjectInpaintingPageOutputTest.cs | 8 +
.../ObjectInpaintingPageRequestTest.cs | 8 +
.../ObjectInpaintingPageResponseTest.cs | 8 +
.../ObjectInpaintingPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/PromptTreeNodeTest.cs | 8 +
.../QrCodeGeneratorPageOutputTest.cs | 8 +
.../QrCodeGeneratorPageRequestTest.cs | 8 +
.../QrCodeGeneratorPageResponseTest.cs | 8 +
.../QrCodeGeneratorPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/RecipeFunctionTest.cs | 8 +
.../RelatedDocSearchResponseTest.cs | 8 +
.../RelatedGoogleGptResponseTest.cs | 8 +
.../RelatedQnADocPageOutputTest.cs | 8 +
.../RelatedQnADocPageRequestTest.cs | 8 +
.../RelatedQnADocPageResponseTest.cs | 8 +
.../RelatedQnADocPageStatusResponseTest.cs | 8 +
.../Serialization/RelatedQnAPageOutputTest.cs | 8 +
.../RelatedQnAPageRequestTest.cs | 8 +
.../RelatedQnAPageResponseTest.cs | 8 +
.../RelatedQnAPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/ReplyButtonTest.cs | 8 +
.../Unit/Serialization/ResponseModelTest.cs | 8 +
.../Unit/Serialization/RunSettingsTest.cs | 8 +
.../Unit/Serialization/RunStartTest.cs | 8 +
.../Serialization/SadTalkerSettingsTest.cs | 8 +
.../Unit/Serialization/SearchReferenceTest.cs | 8 +
.../Serialization/SeoSummaryPageOutputTest.cs | 8 +
.../SeoSummaryPageRequestTest.cs | 8 +
.../SeoSummaryPageResponseTest.cs | 8 +
.../SeoSummaryPageStatusResponseTest.cs | 8 +
.../Serialization/SmartGptPageOutputTest.cs | 8 +
.../Serialization/SmartGptPageRequestTest.cs | 8 +
.../Serialization/SmartGptPageResponseTest.cs | 8 +
.../SmartGptPageStatusResponseTest.cs | 8 +
.../SocialLookupEmailPageOutputTest.cs | 8 +
.../SocialLookupEmailPageRequestTest.cs | 8 +
.../SocialLookupEmailPageResponseTest.cs | 8 +
...SocialLookupEmailPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/StreamErrorTest.cs | 8 +
.../Serialization/Text2AudioPageOutputTest.cs | 8 +
.../Text2AudioPageRequestTest.cs | 8 +
.../Text2AudioPageResponseTest.cs | 8 +
.../Text2AudioPageStatusResponseTest.cs | 8 +
.../TextToSpeechPageOutputTest.cs | 8 +
.../TextToSpeechPageRequestTest.cs | 8 +
.../TextToSpeechPageResponseTest.cs | 8 +
.../TextToSpeechPageStatusResponseTest.cs | 8 +
.../Serialization/TrainingDataModelTest.cs | 8 +
.../TranslationPageOutputTest.cs | 8 +
.../TranslationPageRequestTest.cs | 8 +
.../TranslationPageResponseTest.cs | 8 +
.../TranslationPageStatusResponseTest.cs | 8 +
.../Unit/Serialization/ValidationErrorTest.cs | 8 +
.../Unit/Serialization/VcardTest.cs | 8 +
.../Serialization/VideoBotsPageOutputTest.cs | 8 +
.../Serialization/VideoBotsPageRequestTest.cs | 8 +
.../VideoBotsPageResponseTest.cs | 8 +
.../VideoBotsPageStatusResponseTest.cs | 8 +
src/Gooey.net.sln | 28 +
.../AiAnimationGeneratorClient.cs | 75 ++
.../Requests/StatusDeforumSdRequest.cs | 6 +
.../AiArtQrCode/AiArtQrCodeClient.cs | 79 ++
.../Requests/StatusArtQrCodeRequest.cs | 6 +
.../AiBackgroundChangerClient.cs | 79 ++
.../StatusImageSegmentationRequest.cs | 6 +
...eratedPhotoFromEmailProfileLookupClient.cs | 79 ++
.../StatusEmailFaceInpaintingRequest.cs | 6 +
.../AiImageWithAFaceClient.cs | 79 ++
.../Requests/StatusFaceInpaintingRequest.cs | 6 +
src/Gooey.net/BulkRunner/BulkRunnerClient.cs | 75 ++
.../Requests/StatusBulkRunnerRequest.cs | 6 +
.../ChyronPlantBot/ChyronPlantBotClient.cs | 75 ++
.../Requests/StatusChyronPlantRequest.cs | 6 +
.../CompareAiImageGeneratorsClient.cs | 79 ++
.../Requests/StatusCompareText2ImgRequest.cs | 6 +
.../CompareAiImageUpscalersClient.cs | 79 ++
.../StatusCompareAiUpscalersRequest.cs | 6 +
.../CompareAiTranslationsClient.cs | 75 ++
.../Requests/StatusTranslateRequest.cs | 6 +
.../CompareAiVoiceGeneratorsClient.cs | 77 ++
.../Requests/StatusTextToSpeechRequest.cs | 6 +
.../CopilotForYourEnterpriseClient.cs | 75 ++
.../Requests/StatusVideoBotsRequest.cs | 6 +
.../CopilotIntegrationsClient.cs | 58 ++
.../Requests/CreateStreamRequest.cs | 270 +++++++
.../Types/CreateStreamRequestAsrModel.cs | 51 ++
.../Types/CreateStreamRequestCitationStyle.cs | 60 ++
.../CreateStreamRequestEmbeddingModel.cs | 39 +
.../Types/CreateStreamRequestLipsyncModel.cs | 18 +
.../CreateStreamRequestOpenaiTtsModel.cs | 18 +
.../CreateStreamRequestOpenaiVoiceName.cs | 30 +
.../Types/CreateStreamRequestSelectedModel.cs | 102 +++
.../CreateStreamRequestTranslationModel.cs | 18 +
.../Types/CreateStreamRequestTtsProvider.cs | 30 +
src/Gooey.net/Core/ClientOptions.cs | 29 +
.../Core/CollectionItemSerializer.cs | 91 +++
src/Gooey.net/Core/Environments.cs | 6 +
src/Gooey.net/Core/HttpMethodExtensions.cs | 8 +
src/Gooey.net/Core/OneOfSerializer.cs | 67 ++
src/Gooey.net/Core/RawClient.cs | 120 +++
src/Gooey.net/Core/StringEnumSerializer.cs | 53 ++
...PerfectSeoOptimizedTitleParagraphClient.cs | 75 ++
.../Requests/StatusSeoSummaryRequest.cs | 6 +
.../EditAnImageWithAiPromptClient.cs | 73 ++
.../Requests/StatusImg2ImgRequest.cs | 6 +
src/Gooey.net/Embeddings/EmbeddingsClient.cs | 75 ++
.../Requests/StatusEmbeddingsRequest.cs | 6 +
src/Gooey.net/Evaluator/EvaluatorClient.cs | 73 ++
.../Requests/StatusBulkEvalRequest.cs | 6 +
src/Gooey.net/Functions/FunctionsClient.cs | 75 ++
.../Requests/StatusFunctionsRequest.cs | 6 +
.../GeneratePeopleAlsoAskSeoContentClient.cs | 77 ++
.../Requests/StatusRelatedQnaMakerRequest.cs | 6 +
.../GenerateProductPhotoBackgroundsClient.cs | 79 ++
.../Requests/StatusObjectInpaintingRequest.cs | 6 +
src/Gooey.net/Gooey.cs | 134 ++++
src/Gooey.net/Gooey.net.csproj | 45 ++
.../LargeLanguageModelsGpt3Client.cs | 75 ++
.../Requests/StatusCompareLlmRequest.cs | 6 +
.../LetterWriter/LetterWriterClient.cs | 77 ++
.../Requests/StatusLetterWriterRequest.cs | 6 +
src/Gooey.net/LipSyncing/LipSyncingClient.cs | 73 ++
.../Requests/StatusLipsyncRequest.cs | 6 +
.../LipsyncVideoWithAnyTextClient.cs | 75 ++
.../Requests/StatusLipsyncTtsRequest.cs | 6 +
src/Gooey.net/Misc/MiscClient.cs | 71 ++
.../Misc/Requests/BotBroadcastRequestModel.cs | 42 +
.../PeopleAlsoAskAnswersFromADocClient.cs | 79 ++
.../StatusRelatedQnaMakerDocRequest.cs | 6 +
...LookupGpt3ForAiPersonalizedEmailsClient.cs | 79 ++
.../StatusSocialLookupEmailRequest.cs | 6 +
.../RenderImageSearchResultsWithAiClient.cs | 79 ++
.../Requests/StatusGoogleImageGenRequest.cs | 6 +
.../Requests/StatusDocSearchRequest.cs | 6 +
.../SearchYourDocsWithGptClient.cs | 75 ++
.../Requests/StatusSmartGptRequest.cs | 6 +
src/Gooey.net/SmartGpt/SmartGptClient.cs | 73 ++
.../Requests/StatusAsrRequest.cs | 6 +
.../SpeechRecognitionTranslationClient.cs | 73 ++
.../Requests/StatusDocSummaryRequest.cs | 6 +
.../SummarizeYourDocsWithGptClient.cs | 75 ++
.../Requests/StatusDocExtractRequest.cs | 6 +
.../SyntheticDataMakerForVideosPdFsClient.cs | 75 ++
.../Requests/StatusText2AudioRequest.cs | 6 +
.../TextGuidedAudioGeneratorClient.cs | 75 ++
src/Gooey.net/Types/AggFunction.cs | 15 +
src/Gooey.net/Types/AggFunctionResult.cs | 21 +
src/Gooey.net/Types/AnimationPrompt.cs | 14 +
src/Gooey.net/Types/AsrChunk.cs | 17 +
src/Gooey.net/Types/AsrOutputJson.cs | 15 +
src/Gooey.net/Types/AsrPageOutput.cs | 27 +
src/Gooey.net/Types/AsrPageRequest.cs | 55 ++
.../Types/AsrPageRequestOutputFormat.cs | 24 +
.../Types/AsrPageRequestSelectedModel.cs | 51 ++
.../Types/AsrPageRequestTranslationModel.cs | 18 +
src/Gooey.net/Types/AsrPageResponse.cs | 33 +
src/Gooey.net/Types/AsrPageStatusResponse.cs | 51 ++
.../Types/AsyncApiResponseModelV3.cs | 32 +
src/Gooey.net/Types/BalanceResponse.cs | 14 +
src/Gooey.net/Types/BotBroadcastFilters.cs | 32 +
src/Gooey.net/Types/BulkEvalPageOutput.cs | 21 +
src/Gooey.net/Types/BulkEvalPageRequest.cs | 61 ++
.../Types/BulkEvalPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/BulkEvalPageResponse.cs | 33 +
.../Types/BulkEvalPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/BulkRunnerPageOutput.cs | 21 +
src/Gooey.net/Types/BulkRunnerPageRequest.cs | 56 ++
src/Gooey.net/Types/BulkRunnerPageResponse.cs | 33 +
.../Types/BulkRunnerPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/ButtonPressed.cs | 20 +
src/Gooey.net/Types/CalledFunctionResponse.cs | 18 +
.../ChatCompletionContentPartImageParam.cs | 12 +
.../ChatCompletionContentPartTextParam.cs | 11 +
src/Gooey.net/Types/ChyronPlantPageOutput.cs | 18 +
src/Gooey.net/Types/ChyronPlantPageRequest.cs | 30 +
.../Types/ChyronPlantPageResponse.cs | 33 +
.../Types/ChyronPlantPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/CompareLlmPageOutput.cs | 16 +
src/Gooey.net/Types/CompareLlmPageRequest.cs | 45 ++
...CompareLlmPageRequestResponseFormatType.cs | 18 +
...CompareLlmPageRequestSelectedModelsItem.cs | 102 +++
src/Gooey.net/Types/CompareLlmPageResponse.cs | 33 +
.../Types/CompareLlmPageStatusResponse.cs | 51 ++
.../Types/CompareText2ImgPageOutput.cs | 16 +
.../Types/CompareText2ImgPageRequest.cs | 66 ++
...reText2ImgPageRequestSelectedModelsItem.cs | 51 ++
.../Types/CompareText2ImgPageResponse.cs | 33 +
.../CompareText2ImgPageStatusResponse.cs | 51 ++
.../Types/CompareUpscalerPageOutput.cs | 24 +
.../Types/CompareUpscalerPageRequest.cs | 45 ++
...reUpscalerPageRequestSelectedModelsItem.cs | 27 +
.../Types/CompareUpscalerPageResponse.cs | 33 +
.../CompareUpscalerPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/ConsoleLogs.cs | 15 +
src/Gooey.net/Types/ConversationEntry.cs | 21 +
src/Gooey.net/Types/ConversationStart.cs | 44 ++
src/Gooey.net/Types/CreateStreamResponse.cs | 14 +
src/Gooey.net/Types/DeforumSdPageOutput.cs | 15 +
src/Gooey.net/Types/DeforumSdPageRequest.cs | 58 ++
.../DeforumSdPageRequestSelectedModel.cs | 18 +
src/Gooey.net/Types/DeforumSdPageResponse.cs | 33 +
.../Types/DeforumSdPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/Detail.cs | 21 +
src/Gooey.net/Types/DocExtractPageOutput.cs | 12 +
src/Gooey.net/Types/DocExtractPageRequest.cs | 61 ++
.../DocExtractPageRequestSelectedAsrModel.cs | 51 ++
.../DocExtractPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/DocExtractPageResponse.cs | 33 +
.../Types/DocExtractPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/DocSearchPageOutput.cs | 24 +
src/Gooey.net/Types/DocSearchPageRequest.cs | 82 ++
.../DocSearchPageRequestCitationStyle.cs | 60 ++
.../DocSearchPageRequestEmbeddingModel.cs | 39 +
.../DocSearchPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/DocSearchPageResponse.cs | 33 +
.../Types/DocSearchPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/DocSummaryPageOutput.cs | 21 +
src/Gooey.net/Types/DocSummaryPageRequest.cs | 57 ++
.../DocSummaryPageRequestSelectedAsrModel.cs | 51 ++
.../DocSummaryPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/DocSummaryPageResponse.cs | 33 +
.../Types/DocSummaryPageStatusResponse.cs | 51 ++
.../Types/EmailFaceInpaintingPageOutput.cs | 30 +
.../Types/EmailFaceInpaintingPageRequest.cs | 90 +++
...lFaceInpaintingPageRequestSelectedModel.cs | 24 +
.../Types/EmailFaceInpaintingPageResponse.cs | 33 +
.../EmailFaceInpaintingPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/EmbeddingsPageOutput.cs | 16 +
src/Gooey.net/Types/EmbeddingsPageRequest.cs | 27 +
.../EmbeddingsPageRequestSelectedModel.cs | 39 +
src/Gooey.net/Types/EmbeddingsPageResponse.cs | 33 +
.../Types/EmbeddingsPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/EvalPrompt.cs | 14 +
.../Types/FaceInpaintingPageOutput.cs | 24 +
.../Types/FaceInpaintingPageRequest.cs | 63 ++
.../FaceInpaintingPageRequestSelectedModel.cs | 24 +
.../Types/FaceInpaintingPageResponse.cs | 33 +
.../Types/FaceInpaintingPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/FailedReponseModelV2.cs | 12 +
src/Gooey.net/Types/FailedResponseDetail.cs | 32 +
src/Gooey.net/Types/FinalResponse.cs | 57 ++
src/Gooey.net/Types/Function.cs | 60 ++
src/Gooey.net/Types/FunctionsPageOutput.cs | 27 +
src/Gooey.net/Types/FunctionsPageRequest.cs | 24 +
src/Gooey.net/Types/FunctionsPageResponse.cs | 33 +
.../Types/FunctionsPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/GenericErrorResponse.cs | 12 +
.../Types/GenericErrorResponseDetail.cs | 11 +
src/Gooey.net/Types/GoogleGptPageOutput.cs | 27 +
src/Gooey.net/Types/GoogleGptPageRequest.cs | 91 +++
.../GoogleGptPageRequestEmbeddingModel.cs | 39 +
.../GoogleGptPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/GoogleGptPageResponse.cs | 33 +
.../Types/GoogleGptPageStatusResponse.cs | 51 ++
.../Types/GoogleImageGenPageOutput.cs | 21 +
.../Types/GoogleImageGenPageRequest.cs | 63 ++
.../GoogleImageGenPageRequestSelectedModel.cs | 48 ++
.../Types/GoogleImageGenPageResponse.cs | 33 +
.../Types/GoogleImageGenPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/HttpValidationError.cs | 12 +
.../Types/ImageSegmentationPageOutput.cs | 24 +
.../Types/ImageSegmentationPageRequest.cs | 45 ++
...ageSegmentationPageRequestSelectedModel.cs | 18 +
.../Types/ImageSegmentationPageResponse.cs | 33 +
.../ImageSegmentationPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/ImageUrl.cs | 15 +
src/Gooey.net/Types/Img2ImgPageOutput.cs | 15 +
src/Gooey.net/Types/Img2ImgPageRequest.cs | 96 +++
...gPageRequestSelectedControlnetModelItem.cs | 45 ++
.../Types/Img2ImgPageRequestSelectedModel.cs | 48 ++
src/Gooey.net/Types/Img2ImgPageResponse.cs | 33 +
.../Types/Img2ImgPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/LetterWriterPageOutput.cs | 24 +
.../Types/LetterWriterPageRequest.cs | 63 ++
.../Types/LetterWriterPageResponse.cs | 33 +
.../Types/LetterWriterPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/Level.cs | 18 +
src/Gooey.net/Types/LipsyncPageOutput.cs | 15 +
src/Gooey.net/Types/LipsyncPageRequest.cs | 45 ++
.../Types/LipsyncPageRequestSelectedModel.cs | 18 +
src/Gooey.net/Types/LipsyncPageResponse.cs | 33 +
.../Types/LipsyncPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/LipsyncTtsPageOutput.cs | 18 +
src/Gooey.net/Types/LipsyncTtsPageRequest.cs | 102 +++
.../LipsyncTtsPageRequestOpenaiTtsModel.cs | 18 +
.../LipsyncTtsPageRequestOpenaiVoiceName.cs | 30 +
.../LipsyncTtsPageRequestSelectedModel.cs | 18 +
.../Types/LipsyncTtsPageRequestTtsProvider.cs | 30 +
src/Gooey.net/Types/LipsyncTtsPageResponse.cs | 33 +
.../Types/LipsyncTtsPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/MessagePart.cs | 42 +
.../Types/ObjectInpaintingPageOutput.cs | 21 +
.../Types/ObjectInpaintingPageRequest.cs | 66 ++
...bjectInpaintingPageRequestSelectedModel.cs | 24 +
.../Types/ObjectInpaintingPageResponse.cs | 33 +
.../ObjectInpaintingPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/Preprocess.cs | 27 +
src/Gooey.net/Types/PromptTreeNode.cs | 18 +
.../Types/QrCodeGeneratorPageOutput.cs | 24 +
.../Types/QrCodeGeneratorPageRequest.cs | 99 +++
...eRequestImagePromptControlnetModelsItem.cs | 47 ++
...rPageRequestSelectedControlnetModelItem.cs | 45 ++
...QrCodeGeneratorPageRequestSelectedModel.cs | 51 ++
.../Types/QrCodeGeneratorPageResponse.cs | 33 +
.../QrCodeGeneratorPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/RecipeFunction.cs | 21 +
src/Gooey.net/Types/RecipeRunState.cs | 24 +
.../Types/RelatedDocSearchResponse.cs | 24 +
.../Types/RelatedGoogleGptResponse.cs | 27 +
.../Types/RelatedQnADocPageOutput.cs | 19 +
.../Types/RelatedQnADocPageRequest.cs | 100 +++
.../RelatedQnADocPageRequestCitationStyle.cs | 60 ++
.../RelatedQnADocPageRequestEmbeddingModel.cs | 39 +
.../RelatedQnADocPageRequestSelectedModel.cs | 102 +++
.../Types/RelatedQnADocPageResponse.cs | 33 +
.../Types/RelatedQnADocPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/RelatedQnAPageOutput.cs | 19 +
src/Gooey.net/Types/RelatedQnAPageRequest.cs | 91 +++
.../RelatedQnAPageRequestEmbeddingModel.cs | 39 +
.../RelatedQnAPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/RelatedQnAPageResponse.cs | 33 +
.../Types/RelatedQnAPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/ReplyButton.cs | 14 +
src/Gooey.net/Types/ResponseModel.cs | 52 ++
src/Gooey.net/Types/Role.cs | 21 +
src/Gooey.net/Types/RunSettings.cs | 15 +
.../Types/RunSettingsRetentionPolicy.cs | 18 +
src/Gooey.net/Types/RunStart.cs | 38 +
src/Gooey.net/Types/SadTalkerSettings.cs | 51 ++
src/Gooey.net/Types/Scheduler.cs | 54 ++
src/Gooey.net/Types/SearchReference.cs | 20 +
src/Gooey.net/Types/SeoSummaryPageOutput.cs | 28 +
src/Gooey.net/Types/SeoSummaryPageRequest.cs | 75 ++
.../SeoSummaryPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/SeoSummaryPageResponse.cs | 33 +
.../Types/SeoSummaryPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/SerpSearchLocation.cs | 729 ++++++++++++++++++
src/Gooey.net/Types/SerpSearchType.cs | 27 +
src/Gooey.net/Types/SmartGptPageOutput.cs | 18 +
src/Gooey.net/Types/SmartGptPageRequest.cs | 51 ++
.../Types/SmartGptPageRequestSelectedModel.cs | 102 +++
src/Gooey.net/Types/SmartGptPageResponse.cs | 33 +
.../Types/SmartGptPageStatusResponse.cs | 51 ++
.../Types/SocialLookupEmailPageOutput.cs | 21 +
.../Types/SocialLookupEmailPageRequest.cs | 45 ++
...cialLookupEmailPageRequestSelectedModel.cs | 102 +++
.../Types/SocialLookupEmailPageResponse.cs | 33 +
.../SocialLookupEmailPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/StreamError.cs | 20 +
src/Gooey.net/Types/Text2AudioPageOutput.cs | 16 +
src/Gooey.net/Types/Text2AudioPageRequest.cs | 48 ++
src/Gooey.net/Types/Text2AudioPageResponse.cs | 33 +
.../Types/Text2AudioPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/TextToSpeechPageOutput.cs | 15 +
.../Types/TextToSpeechPageRequest.cs | 81 ++
.../TextToSpeechPageRequestOpenaiTtsModel.cs | 18 +
.../TextToSpeechPageRequestOpenaiVoiceName.cs | 30 +
.../TextToSpeechPageRequestTtsProvider.cs | 30 +
.../Types/TextToSpeechPageResponse.cs | 33 +
.../Types/TextToSpeechPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/TrainingDataModel.cs | 14 +
src/Gooey.net/Types/TranslationPageOutput.cs | 15 +
src/Gooey.net/Types/TranslationPageRequest.cs | 40 +
.../TranslationPageRequestSelectedModel.cs | 18 +
.../Types/TranslationPageResponse.cs | 33 +
.../Types/TranslationPageStatusResponse.cs | 51 ++
src/Gooey.net/Types/Trigger.cs | 18 +
src/Gooey.net/Types/ValidationError.cs | 22 +
src/Gooey.net/Types/Vcard.cs | 86 +++
src/Gooey.net/Types/VideoBotsPageOutput.cs | 55 ++
src/Gooey.net/Types/VideoBotsPageRequest.cs | 223 ++++++
.../Types/VideoBotsPageRequestAsrModel.cs | 51 ++
.../VideoBotsPageRequestCitationStyle.cs | 60 ++
.../VideoBotsPageRequestEmbeddingModel.cs | 39 +
.../Types/VideoBotsPageRequestLipsyncModel.cs | 18 +
.../VideoBotsPageRequestOpenaiTtsModel.cs | 18 +
.../VideoBotsPageRequestOpenaiVoiceName.cs | 30 +
.../VideoBotsPageRequestSelectedModel.cs | 102 +++
.../VideoBotsPageRequestTranslationModel.cs | 18 +
.../Types/VideoBotsPageRequestTtsProvider.cs | 30 +
src/Gooey.net/Types/VideoBotsPageResponse.cs | 33 +
.../Types/VideoBotsPageStatusResponse.cs | 51 ++
.../Requests/StatusGoogleGptRequest.cs | 6 +
.../WebSearchGpt3/WebSearchGpt3Client.cs | 75 ++
503 files changed, 16424 insertions(+), 201 deletions(-)
create mode 100644 .fernignore
create mode 100644 .github/workflows/ci.yml
create mode 100644 .gitignore
delete mode 100644 LICENSE
create mode 100644 src/Gooey.net.Test/Gooey.net.Test.csproj
create mode 100644 src/Gooey.net.Test/TestClient.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AggFunctionResultTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AggFunctionTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AnimationPromptTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AsrChunkTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AsrOutputJsonTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AsrPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AsrPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AsrPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AsrPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/AsyncApiResponseModelV3Test.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BalanceResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BotBroadcastFiltersTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkEvalPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkEvalPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkEvalPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkEvalPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ButtonPressedTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CalledFunctionResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartImageParamTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartTextParamTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareLlmPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareLlmPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareLlmPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareLlmPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ConsoleLogsTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ConversationEntryTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ConversationStartTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/CreateStreamResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DeforumSdPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DeforumSdPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DeforumSdPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DeforumSdPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocExtractPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocExtractPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocExtractPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocExtractPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSearchPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSearchPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSearchPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSearchPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSummaryPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSummaryPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSummaryPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/DocSummaryPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/EvalPromptTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FailedReponseModelV2Test.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FailedResponseDetailTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FinalResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FunctionsPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FunctionsPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FunctionsPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/FunctionsPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseDetailTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleGptPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleGptPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleGptPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleGptPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/HttpValidationErrorTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ImageUrlTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Img2ImgPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Img2ImgPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Img2ImgPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Img2ImgPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LetterWriterPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LetterWriterPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LetterWriterPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LetterWriterPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/MessagePartTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/PromptTreeNodeTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RecipeFunctionTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedDocSearchResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedGoogleGptResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ReplyButtonTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ResponseModelTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RunSettingsTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/RunStartTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SadTalkerSettingsTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SearchReferenceTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SmartGptPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SmartGptPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SmartGptPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SmartGptPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/StreamErrorTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Text2AudioPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Text2AudioPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Text2AudioPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/Text2AudioPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TrainingDataModelTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TranslationPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TranslationPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TranslationPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/TranslationPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/ValidationErrorTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/VcardTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/VideoBotsPageOutputTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/VideoBotsPageRequestTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/VideoBotsPageResponseTest.cs
create mode 100644 src/Gooey.net.Test/Unit/Serialization/VideoBotsPageStatusResponseTest.cs
create mode 100644 src/Gooey.net.sln
create mode 100644 src/Gooey.net/AiAnimationGenerator/AiAnimationGeneratorClient.cs
create mode 100644 src/Gooey.net/AiAnimationGenerator/Requests/StatusDeforumSdRequest.cs
create mode 100644 src/Gooey.net/AiArtQrCode/AiArtQrCodeClient.cs
create mode 100644 src/Gooey.net/AiArtQrCode/Requests/StatusArtQrCodeRequest.cs
create mode 100644 src/Gooey.net/AiBackgroundChanger/AiBackgroundChangerClient.cs
create mode 100644 src/Gooey.net/AiBackgroundChanger/Requests/StatusImageSegmentationRequest.cs
create mode 100644 src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/AiGeneratedPhotoFromEmailProfileLookupClient.cs
create mode 100644 src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/Requests/StatusEmailFaceInpaintingRequest.cs
create mode 100644 src/Gooey.net/AiImageWithAFace/AiImageWithAFaceClient.cs
create mode 100644 src/Gooey.net/AiImageWithAFace/Requests/StatusFaceInpaintingRequest.cs
create mode 100644 src/Gooey.net/BulkRunner/BulkRunnerClient.cs
create mode 100644 src/Gooey.net/BulkRunner/Requests/StatusBulkRunnerRequest.cs
create mode 100644 src/Gooey.net/ChyronPlantBot/ChyronPlantBotClient.cs
create mode 100644 src/Gooey.net/ChyronPlantBot/Requests/StatusChyronPlantRequest.cs
create mode 100644 src/Gooey.net/CompareAiImageGenerators/CompareAiImageGeneratorsClient.cs
create mode 100644 src/Gooey.net/CompareAiImageGenerators/Requests/StatusCompareText2ImgRequest.cs
create mode 100644 src/Gooey.net/CompareAiImageUpscalers/CompareAiImageUpscalersClient.cs
create mode 100644 src/Gooey.net/CompareAiImageUpscalers/Requests/StatusCompareAiUpscalersRequest.cs
create mode 100644 src/Gooey.net/CompareAiTranslations/CompareAiTranslationsClient.cs
create mode 100644 src/Gooey.net/CompareAiTranslations/Requests/StatusTranslateRequest.cs
create mode 100644 src/Gooey.net/CompareAiVoiceGenerators/CompareAiVoiceGeneratorsClient.cs
create mode 100644 src/Gooey.net/CompareAiVoiceGenerators/Requests/StatusTextToSpeechRequest.cs
create mode 100644 src/Gooey.net/CopilotForYourEnterprise/CopilotForYourEnterpriseClient.cs
create mode 100644 src/Gooey.net/CopilotForYourEnterprise/Requests/StatusVideoBotsRequest.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/CopilotIntegrationsClient.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Requests/CreateStreamRequest.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestAsrModel.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestCitationStyle.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestEmbeddingModel.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestLipsyncModel.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiTtsModel.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiVoiceName.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestSelectedModel.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTranslationModel.cs
create mode 100644 src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTtsProvider.cs
create mode 100644 src/Gooey.net/Core/ClientOptions.cs
create mode 100644 src/Gooey.net/Core/CollectionItemSerializer.cs
create mode 100644 src/Gooey.net/Core/Environments.cs
create mode 100644 src/Gooey.net/Core/HttpMethodExtensions.cs
create mode 100644 src/Gooey.net/Core/OneOfSerializer.cs
create mode 100644 src/Gooey.net/Core/RawClient.cs
create mode 100644 src/Gooey.net/Core/StringEnumSerializer.cs
create mode 100644 src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/CreateAPerfectSeoOptimizedTitleParagraphClient.cs
create mode 100644 src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/Requests/StatusSeoSummaryRequest.cs
create mode 100644 src/Gooey.net/EditAnImageWithAiPrompt/EditAnImageWithAiPromptClient.cs
create mode 100644 src/Gooey.net/EditAnImageWithAiPrompt/Requests/StatusImg2ImgRequest.cs
create mode 100644 src/Gooey.net/Embeddings/EmbeddingsClient.cs
create mode 100644 src/Gooey.net/Embeddings/Requests/StatusEmbeddingsRequest.cs
create mode 100644 src/Gooey.net/Evaluator/EvaluatorClient.cs
create mode 100644 src/Gooey.net/Evaluator/Requests/StatusBulkEvalRequest.cs
create mode 100644 src/Gooey.net/Functions/FunctionsClient.cs
create mode 100644 src/Gooey.net/Functions/Requests/StatusFunctionsRequest.cs
create mode 100644 src/Gooey.net/GeneratePeopleAlsoAskSeoContent/GeneratePeopleAlsoAskSeoContentClient.cs
create mode 100644 src/Gooey.net/GeneratePeopleAlsoAskSeoContent/Requests/StatusRelatedQnaMakerRequest.cs
create mode 100644 src/Gooey.net/GenerateProductPhotoBackgrounds/GenerateProductPhotoBackgroundsClient.cs
create mode 100644 src/Gooey.net/GenerateProductPhotoBackgrounds/Requests/StatusObjectInpaintingRequest.cs
create mode 100644 src/Gooey.net/Gooey.cs
create mode 100644 src/Gooey.net/Gooey.net.csproj
create mode 100644 src/Gooey.net/LargeLanguageModelsGpt3/LargeLanguageModelsGpt3Client.cs
create mode 100644 src/Gooey.net/LargeLanguageModelsGpt3/Requests/StatusCompareLlmRequest.cs
create mode 100644 src/Gooey.net/LetterWriter/LetterWriterClient.cs
create mode 100644 src/Gooey.net/LetterWriter/Requests/StatusLetterWriterRequest.cs
create mode 100644 src/Gooey.net/LipSyncing/LipSyncingClient.cs
create mode 100644 src/Gooey.net/LipSyncing/Requests/StatusLipsyncRequest.cs
create mode 100644 src/Gooey.net/LipsyncVideoWithAnyText/LipsyncVideoWithAnyTextClient.cs
create mode 100644 src/Gooey.net/LipsyncVideoWithAnyText/Requests/StatusLipsyncTtsRequest.cs
create mode 100644 src/Gooey.net/Misc/MiscClient.cs
create mode 100644 src/Gooey.net/Misc/Requests/BotBroadcastRequestModel.cs
create mode 100644 src/Gooey.net/PeopleAlsoAskAnswersFromADoc/PeopleAlsoAskAnswersFromADocClient.cs
create mode 100644 src/Gooey.net/PeopleAlsoAskAnswersFromADoc/Requests/StatusRelatedQnaMakerDocRequest.cs
create mode 100644 src/Gooey.net/ProfileLookupGpt3ForAiPersonalizedEmails/ProfileLookupGpt3ForAiPersonalizedEmailsClient.cs
create mode 100644 src/Gooey.net/ProfileLookupGpt3ForAiPersonalizedEmails/Requests/StatusSocialLookupEmailRequest.cs
create mode 100644 src/Gooey.net/RenderImageSearchResultsWithAi/RenderImageSearchResultsWithAiClient.cs
create mode 100644 src/Gooey.net/RenderImageSearchResultsWithAi/Requests/StatusGoogleImageGenRequest.cs
create mode 100644 src/Gooey.net/SearchYourDocsWithGpt/Requests/StatusDocSearchRequest.cs
create mode 100644 src/Gooey.net/SearchYourDocsWithGpt/SearchYourDocsWithGptClient.cs
create mode 100644 src/Gooey.net/SmartGpt/Requests/StatusSmartGptRequest.cs
create mode 100644 src/Gooey.net/SmartGpt/SmartGptClient.cs
create mode 100644 src/Gooey.net/SpeechRecognitionTranslation/Requests/StatusAsrRequest.cs
create mode 100644 src/Gooey.net/SpeechRecognitionTranslation/SpeechRecognitionTranslationClient.cs
create mode 100644 src/Gooey.net/SummarizeYourDocsWithGpt/Requests/StatusDocSummaryRequest.cs
create mode 100644 src/Gooey.net/SummarizeYourDocsWithGpt/SummarizeYourDocsWithGptClient.cs
create mode 100644 src/Gooey.net/SyntheticDataMakerForVideosPdFs/Requests/StatusDocExtractRequest.cs
create mode 100644 src/Gooey.net/SyntheticDataMakerForVideosPdFs/SyntheticDataMakerForVideosPdFsClient.cs
create mode 100644 src/Gooey.net/TextGuidedAudioGenerator/Requests/StatusText2AudioRequest.cs
create mode 100644 src/Gooey.net/TextGuidedAudioGenerator/TextGuidedAudioGeneratorClient.cs
create mode 100644 src/Gooey.net/Types/AggFunction.cs
create mode 100644 src/Gooey.net/Types/AggFunctionResult.cs
create mode 100644 src/Gooey.net/Types/AnimationPrompt.cs
create mode 100644 src/Gooey.net/Types/AsrChunk.cs
create mode 100644 src/Gooey.net/Types/AsrOutputJson.cs
create mode 100644 src/Gooey.net/Types/AsrPageOutput.cs
create mode 100644 src/Gooey.net/Types/AsrPageRequest.cs
create mode 100644 src/Gooey.net/Types/AsrPageRequestOutputFormat.cs
create mode 100644 src/Gooey.net/Types/AsrPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/AsrPageRequestTranslationModel.cs
create mode 100644 src/Gooey.net/Types/AsrPageResponse.cs
create mode 100644 src/Gooey.net/Types/AsrPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/AsyncApiResponseModelV3.cs
create mode 100644 src/Gooey.net/Types/BalanceResponse.cs
create mode 100644 src/Gooey.net/Types/BotBroadcastFilters.cs
create mode 100644 src/Gooey.net/Types/BulkEvalPageOutput.cs
create mode 100644 src/Gooey.net/Types/BulkEvalPageRequest.cs
create mode 100644 src/Gooey.net/Types/BulkEvalPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/BulkEvalPageResponse.cs
create mode 100644 src/Gooey.net/Types/BulkEvalPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/BulkRunnerPageOutput.cs
create mode 100644 src/Gooey.net/Types/BulkRunnerPageRequest.cs
create mode 100644 src/Gooey.net/Types/BulkRunnerPageResponse.cs
create mode 100644 src/Gooey.net/Types/BulkRunnerPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/ButtonPressed.cs
create mode 100644 src/Gooey.net/Types/CalledFunctionResponse.cs
create mode 100644 src/Gooey.net/Types/ChatCompletionContentPartImageParam.cs
create mode 100644 src/Gooey.net/Types/ChatCompletionContentPartTextParam.cs
create mode 100644 src/Gooey.net/Types/ChyronPlantPageOutput.cs
create mode 100644 src/Gooey.net/Types/ChyronPlantPageRequest.cs
create mode 100644 src/Gooey.net/Types/ChyronPlantPageResponse.cs
create mode 100644 src/Gooey.net/Types/ChyronPlantPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/CompareLlmPageOutput.cs
create mode 100644 src/Gooey.net/Types/CompareLlmPageRequest.cs
create mode 100644 src/Gooey.net/Types/CompareLlmPageRequestResponseFormatType.cs
create mode 100644 src/Gooey.net/Types/CompareLlmPageRequestSelectedModelsItem.cs
create mode 100644 src/Gooey.net/Types/CompareLlmPageResponse.cs
create mode 100644 src/Gooey.net/Types/CompareLlmPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/CompareText2ImgPageOutput.cs
create mode 100644 src/Gooey.net/Types/CompareText2ImgPageRequest.cs
create mode 100644 src/Gooey.net/Types/CompareText2ImgPageRequestSelectedModelsItem.cs
create mode 100644 src/Gooey.net/Types/CompareText2ImgPageResponse.cs
create mode 100644 src/Gooey.net/Types/CompareText2ImgPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/CompareUpscalerPageOutput.cs
create mode 100644 src/Gooey.net/Types/CompareUpscalerPageRequest.cs
create mode 100644 src/Gooey.net/Types/CompareUpscalerPageRequestSelectedModelsItem.cs
create mode 100644 src/Gooey.net/Types/CompareUpscalerPageResponse.cs
create mode 100644 src/Gooey.net/Types/CompareUpscalerPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/ConsoleLogs.cs
create mode 100644 src/Gooey.net/Types/ConversationEntry.cs
create mode 100644 src/Gooey.net/Types/ConversationStart.cs
create mode 100644 src/Gooey.net/Types/CreateStreamResponse.cs
create mode 100644 src/Gooey.net/Types/DeforumSdPageOutput.cs
create mode 100644 src/Gooey.net/Types/DeforumSdPageRequest.cs
create mode 100644 src/Gooey.net/Types/DeforumSdPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/DeforumSdPageResponse.cs
create mode 100644 src/Gooey.net/Types/DeforumSdPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/Detail.cs
create mode 100644 src/Gooey.net/Types/DocExtractPageOutput.cs
create mode 100644 src/Gooey.net/Types/DocExtractPageRequest.cs
create mode 100644 src/Gooey.net/Types/DocExtractPageRequestSelectedAsrModel.cs
create mode 100644 src/Gooey.net/Types/DocExtractPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/DocExtractPageResponse.cs
create mode 100644 src/Gooey.net/Types/DocExtractPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/DocSearchPageOutput.cs
create mode 100644 src/Gooey.net/Types/DocSearchPageRequest.cs
create mode 100644 src/Gooey.net/Types/DocSearchPageRequestCitationStyle.cs
create mode 100644 src/Gooey.net/Types/DocSearchPageRequestEmbeddingModel.cs
create mode 100644 src/Gooey.net/Types/DocSearchPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/DocSearchPageResponse.cs
create mode 100644 src/Gooey.net/Types/DocSearchPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/DocSummaryPageOutput.cs
create mode 100644 src/Gooey.net/Types/DocSummaryPageRequest.cs
create mode 100644 src/Gooey.net/Types/DocSummaryPageRequestSelectedAsrModel.cs
create mode 100644 src/Gooey.net/Types/DocSummaryPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/DocSummaryPageResponse.cs
create mode 100644 src/Gooey.net/Types/DocSummaryPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/EmailFaceInpaintingPageOutput.cs
create mode 100644 src/Gooey.net/Types/EmailFaceInpaintingPageRequest.cs
create mode 100644 src/Gooey.net/Types/EmailFaceInpaintingPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/EmailFaceInpaintingPageResponse.cs
create mode 100644 src/Gooey.net/Types/EmailFaceInpaintingPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/EmbeddingsPageOutput.cs
create mode 100644 src/Gooey.net/Types/EmbeddingsPageRequest.cs
create mode 100644 src/Gooey.net/Types/EmbeddingsPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/EmbeddingsPageResponse.cs
create mode 100644 src/Gooey.net/Types/EmbeddingsPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/EvalPrompt.cs
create mode 100644 src/Gooey.net/Types/FaceInpaintingPageOutput.cs
create mode 100644 src/Gooey.net/Types/FaceInpaintingPageRequest.cs
create mode 100644 src/Gooey.net/Types/FaceInpaintingPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/FaceInpaintingPageResponse.cs
create mode 100644 src/Gooey.net/Types/FaceInpaintingPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/FailedReponseModelV2.cs
create mode 100644 src/Gooey.net/Types/FailedResponseDetail.cs
create mode 100644 src/Gooey.net/Types/FinalResponse.cs
create mode 100644 src/Gooey.net/Types/Function.cs
create mode 100644 src/Gooey.net/Types/FunctionsPageOutput.cs
create mode 100644 src/Gooey.net/Types/FunctionsPageRequest.cs
create mode 100644 src/Gooey.net/Types/FunctionsPageResponse.cs
create mode 100644 src/Gooey.net/Types/FunctionsPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/GenericErrorResponse.cs
create mode 100644 src/Gooey.net/Types/GenericErrorResponseDetail.cs
create mode 100644 src/Gooey.net/Types/GoogleGptPageOutput.cs
create mode 100644 src/Gooey.net/Types/GoogleGptPageRequest.cs
create mode 100644 src/Gooey.net/Types/GoogleGptPageRequestEmbeddingModel.cs
create mode 100644 src/Gooey.net/Types/GoogleGptPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/GoogleGptPageResponse.cs
create mode 100644 src/Gooey.net/Types/GoogleGptPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/GoogleImageGenPageOutput.cs
create mode 100644 src/Gooey.net/Types/GoogleImageGenPageRequest.cs
create mode 100644 src/Gooey.net/Types/GoogleImageGenPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/GoogleImageGenPageResponse.cs
create mode 100644 src/Gooey.net/Types/GoogleImageGenPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/HttpValidationError.cs
create mode 100644 src/Gooey.net/Types/ImageSegmentationPageOutput.cs
create mode 100644 src/Gooey.net/Types/ImageSegmentationPageRequest.cs
create mode 100644 src/Gooey.net/Types/ImageSegmentationPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/ImageSegmentationPageResponse.cs
create mode 100644 src/Gooey.net/Types/ImageSegmentationPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/ImageUrl.cs
create mode 100644 src/Gooey.net/Types/Img2ImgPageOutput.cs
create mode 100644 src/Gooey.net/Types/Img2ImgPageRequest.cs
create mode 100644 src/Gooey.net/Types/Img2ImgPageRequestSelectedControlnetModelItem.cs
create mode 100644 src/Gooey.net/Types/Img2ImgPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/Img2ImgPageResponse.cs
create mode 100644 src/Gooey.net/Types/Img2ImgPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/LetterWriterPageOutput.cs
create mode 100644 src/Gooey.net/Types/LetterWriterPageRequest.cs
create mode 100644 src/Gooey.net/Types/LetterWriterPageResponse.cs
create mode 100644 src/Gooey.net/Types/LetterWriterPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/Level.cs
create mode 100644 src/Gooey.net/Types/LipsyncPageOutput.cs
create mode 100644 src/Gooey.net/Types/LipsyncPageRequest.cs
create mode 100644 src/Gooey.net/Types/LipsyncPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/LipsyncPageResponse.cs
create mode 100644 src/Gooey.net/Types/LipsyncPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageOutput.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageRequest.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageRequestOpenaiTtsModel.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageRequestOpenaiVoiceName.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageRequestTtsProvider.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageResponse.cs
create mode 100644 src/Gooey.net/Types/LipsyncTtsPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/MessagePart.cs
create mode 100644 src/Gooey.net/Types/ObjectInpaintingPageOutput.cs
create mode 100644 src/Gooey.net/Types/ObjectInpaintingPageRequest.cs
create mode 100644 src/Gooey.net/Types/ObjectInpaintingPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/ObjectInpaintingPageResponse.cs
create mode 100644 src/Gooey.net/Types/ObjectInpaintingPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/Preprocess.cs
create mode 100644 src/Gooey.net/Types/PromptTreeNode.cs
create mode 100644 src/Gooey.net/Types/QrCodeGeneratorPageOutput.cs
create mode 100644 src/Gooey.net/Types/QrCodeGeneratorPageRequest.cs
create mode 100644 src/Gooey.net/Types/QrCodeGeneratorPageRequestImagePromptControlnetModelsItem.cs
create mode 100644 src/Gooey.net/Types/QrCodeGeneratorPageRequestSelectedControlnetModelItem.cs
create mode 100644 src/Gooey.net/Types/QrCodeGeneratorPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/QrCodeGeneratorPageResponse.cs
create mode 100644 src/Gooey.net/Types/QrCodeGeneratorPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/RecipeFunction.cs
create mode 100644 src/Gooey.net/Types/RecipeRunState.cs
create mode 100644 src/Gooey.net/Types/RelatedDocSearchResponse.cs
create mode 100644 src/Gooey.net/Types/RelatedGoogleGptResponse.cs
create mode 100644 src/Gooey.net/Types/RelatedQnADocPageOutput.cs
create mode 100644 src/Gooey.net/Types/RelatedQnADocPageRequest.cs
create mode 100644 src/Gooey.net/Types/RelatedQnADocPageRequestCitationStyle.cs
create mode 100644 src/Gooey.net/Types/RelatedQnADocPageRequestEmbeddingModel.cs
create mode 100644 src/Gooey.net/Types/RelatedQnADocPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/RelatedQnADocPageResponse.cs
create mode 100644 src/Gooey.net/Types/RelatedQnADocPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/RelatedQnAPageOutput.cs
create mode 100644 src/Gooey.net/Types/RelatedQnAPageRequest.cs
create mode 100644 src/Gooey.net/Types/RelatedQnAPageRequestEmbeddingModel.cs
create mode 100644 src/Gooey.net/Types/RelatedQnAPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/RelatedQnAPageResponse.cs
create mode 100644 src/Gooey.net/Types/RelatedQnAPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/ReplyButton.cs
create mode 100644 src/Gooey.net/Types/ResponseModel.cs
create mode 100644 src/Gooey.net/Types/Role.cs
create mode 100644 src/Gooey.net/Types/RunSettings.cs
create mode 100644 src/Gooey.net/Types/RunSettingsRetentionPolicy.cs
create mode 100644 src/Gooey.net/Types/RunStart.cs
create mode 100644 src/Gooey.net/Types/SadTalkerSettings.cs
create mode 100644 src/Gooey.net/Types/Scheduler.cs
create mode 100644 src/Gooey.net/Types/SearchReference.cs
create mode 100644 src/Gooey.net/Types/SeoSummaryPageOutput.cs
create mode 100644 src/Gooey.net/Types/SeoSummaryPageRequest.cs
create mode 100644 src/Gooey.net/Types/SeoSummaryPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/SeoSummaryPageResponse.cs
create mode 100644 src/Gooey.net/Types/SeoSummaryPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/SerpSearchLocation.cs
create mode 100644 src/Gooey.net/Types/SerpSearchType.cs
create mode 100644 src/Gooey.net/Types/SmartGptPageOutput.cs
create mode 100644 src/Gooey.net/Types/SmartGptPageRequest.cs
create mode 100644 src/Gooey.net/Types/SmartGptPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/SmartGptPageResponse.cs
create mode 100644 src/Gooey.net/Types/SmartGptPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/SocialLookupEmailPageOutput.cs
create mode 100644 src/Gooey.net/Types/SocialLookupEmailPageRequest.cs
create mode 100644 src/Gooey.net/Types/SocialLookupEmailPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/SocialLookupEmailPageResponse.cs
create mode 100644 src/Gooey.net/Types/SocialLookupEmailPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/StreamError.cs
create mode 100644 src/Gooey.net/Types/Text2AudioPageOutput.cs
create mode 100644 src/Gooey.net/Types/Text2AudioPageRequest.cs
create mode 100644 src/Gooey.net/Types/Text2AudioPageResponse.cs
create mode 100644 src/Gooey.net/Types/Text2AudioPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/TextToSpeechPageOutput.cs
create mode 100644 src/Gooey.net/Types/TextToSpeechPageRequest.cs
create mode 100644 src/Gooey.net/Types/TextToSpeechPageRequestOpenaiTtsModel.cs
create mode 100644 src/Gooey.net/Types/TextToSpeechPageRequestOpenaiVoiceName.cs
create mode 100644 src/Gooey.net/Types/TextToSpeechPageRequestTtsProvider.cs
create mode 100644 src/Gooey.net/Types/TextToSpeechPageResponse.cs
create mode 100644 src/Gooey.net/Types/TextToSpeechPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/TrainingDataModel.cs
create mode 100644 src/Gooey.net/Types/TranslationPageOutput.cs
create mode 100644 src/Gooey.net/Types/TranslationPageRequest.cs
create mode 100644 src/Gooey.net/Types/TranslationPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/TranslationPageResponse.cs
create mode 100644 src/Gooey.net/Types/TranslationPageStatusResponse.cs
create mode 100644 src/Gooey.net/Types/Trigger.cs
create mode 100644 src/Gooey.net/Types/ValidationError.cs
create mode 100644 src/Gooey.net/Types/Vcard.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageOutput.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequest.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestAsrModel.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestCitationStyle.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestEmbeddingModel.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestLipsyncModel.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestOpenaiTtsModel.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestOpenaiVoiceName.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestSelectedModel.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestTranslationModel.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageRequestTtsProvider.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageResponse.cs
create mode 100644 src/Gooey.net/Types/VideoBotsPageStatusResponse.cs
create mode 100644 src/Gooey.net/WebSearchGpt3/Requests/StatusGoogleGptRequest.cs
create mode 100644 src/Gooey.net/WebSearchGpt3/WebSearchGpt3Client.cs
diff --git a/.fernignore b/.fernignore
new file mode 100644
index 0000000..084a8eb
--- /dev/null
+++ b/.fernignore
@@ -0,0 +1 @@
+# Specify files that shouldn't be modified by Fern
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..b948754
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,69 @@
+name: ci
+
+on: [push]
+
+jobs:
+ compile:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repo
+ uses: actions/checkout@v3
+
+ - uses: actions/checkout@master
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 8.x
+
+ - name: Install tools
+ run: |
+ dotnet tool restore
+
+ - name: Build Release
+ run: dotnet build src -c Release /p:ContinuousIntegrationBuild=true
+
+ unit-tests:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repo
+ uses: actions/checkout@v3
+
+ - uses: actions/checkout@master
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 8.x
+
+ - name: Install tools
+ run: |
+ dotnet tool restore
+
+ - name: Run Tests
+ run: |
+ dotnet test src
+
+
+ publish:
+ needs: [compile]
+ if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repo
+ uses: actions/checkout@v3
+
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 8.x
+
+ - name: Publish
+ env:
+ NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
+ run: |
+ dotnet pack src -c Release
+ dotnet nuget push src/Gooey.net/bin/Release/*.nupkg --api-key $NUGET_API_KEY --source "nuget.org"
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9965de2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,477 @@
+## Ignore Visual Studio temporary files, build results, and
+## files generated by popular Visual Studio add-ons.
+##
+## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+*.suo
+*.user
+*.userosscache
+*.sln.docstates
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+*.userprefs
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+.vs/
+# Uncomment if you have tasks that create the project's static files in wwwroot
+#wwwroot/
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+[Tt]est[Rr]esult*/
+[Bb]uild[Ll]og.*
+
+# NUnit
+*.VisualState.xml
+TestResult.xml
+nunit-*.xml
+
+# Build Results of an ATL Project
+[Dd]ebugPS/
+[Rr]eleasePS/
+dlldata.c
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET
+project.lock.json
+project.fragment.lock.json
+artifacts/
+
+# Tye
+.tye/
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_i.c
+*_p.c
+*_h.h
+*.ilk
+*.meta
+*.obj
+*.iobj
+*.pch
+*.pdb
+*.ipdb
+*.pgc
+*.pgd
+*.rsp
+*.sbr
+*.tlb
+*.tli
+*.tlh
+*.tmp
+*.tmp_proj
+*_wpftmp.csproj
+*.log
+*.tlog
+*.vspscc
+*.vssscc
+.builds
+*.pidb
+*.svclog
+*.scc
+
+# Chutzpah Test files
+_Chutzpah*
+
+# Visual C++ cache files
+ipch/
+*.aps
+*.ncb
+*.opendb
+*.opensdf
+*.sdf
+*.cachefile
+*.VC.db
+*.VC.VC.opendb
+
+# Visual Studio profiler
+*.psess
+*.vsp
+*.vspx
+*.sap
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+$tf/
+
+# Guidance Automation Toolkit
+*.gpState
+
+# ReSharper is a .NET coding add-in
+_ReSharper*/
+*.[Rr]e[Ss]harper
+*.DotSettings.user
+
+# TeamCity is a build add-in
+_TeamCity*
+
+# DotCover is a Code Coverage Tool
+*.dotCover
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+*.coverage
+*.coveragexml
+
+# NCrunch
+_NCrunch_*
+.*crunch*.local.xml
+nCrunchTemp_*
+
+# MightyMoose
+*.mm.*
+AutoTest.Net/
+
+# Web workbench (sass)
+.sass-cache/
+
+# Installshield output folder
+[Ee]xpress/
+
+# DocProject is a documentation generator add-in
+DocProject/buildhelp/
+DocProject/Help/*.HxT
+DocProject/Help/*.HxC
+DocProject/Help/*.hhc
+DocProject/Help/*.hhk
+DocProject/Help/*.hhp
+DocProject/Help/Html2
+DocProject/Help/html
+
+# Click-Once directory
+publish/
+
+# Publish Web Output
+*.[Pp]ublish.xml
+*.azurePubxml
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+*.pubxml
+*.publishproj
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+PublishScripts/
+
+# NuGet Packages
+*.nupkg
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+*.nuget.props
+*.nuget.targets
+
+# Microsoft Azure Build Output
+csx/
+*.build.csdef
+
+# Microsoft Azure Emulator
+ecf/
+rcf/
+
+# Windows Store app package directories and files
+AppPackages/
+BundleArtifacts/
+Package.StoreAssociation.xml
+_pkginfo.txt
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+*.[Cc]ache
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+ClientBin/
+~$*
+*~
+*.dbmdl
+*.dbproj.schemaview
+*.jfm
+*.pfx
+*.publishsettings
+orleans.codegen.cs
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+#bower_components/
+
+# RIA/Silverlight projects
+Generated_Code/
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+_UpgradeReport_Files/
+Backup*/
+UpgradeLog*.XML
+UpgradeLog*.htm
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.mdf
+*.ldf
+*.ndf
+
+# Business Intelligence projects
+*.rdl.data
+*.bim.layout
+*.bim_*.settings
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+FakesAssemblies/
+
+# GhostDoc plugin setting file
+*.GhostDoc.xml
+
+# Node.js Tools for Visual Studio
+.ntvs_analysis.dat
+node_modules/
+
+# Visual Studio 6 build log
+*.plg
+
+# Visual Studio 6 workspace options file
+*.opt
+
+# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
+*.vbw
+
+# Visual Studio 6 auto-generated project file (contains which files were open etc.)
+*.vbp
+
+# Visual Studio 6 workspace and project file (working project files containing files to include in project)
+*.dsw
+*.dsp
+
+# Visual Studio 6 technical files
+*.ncb
+*.aps
+
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# CodeRush personal settings
+.cr/personal
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/**
+# !tools/packages.config
+
+# Tabs Studio
+*.tss
+
+# Telerik's JustMock configuration file
+*.jmconfig
+
+# BizTalk build output
+*.btp.cs
+*.btm.cs
+*.odx.cs
+*.xsd.cs
+
+# OpenCover UI analysis results
+OpenCover/
+
+# Azure Stream Analytics local run output
+ASALocalRun/
+
+# MSBuild Binary and Structured Log
+*.binlog
+
+# NVidia Nsight GPU debugger configuration file
+*.nvuser
+
+# MFractors (Xamarin productivity tool) working folder
+.mfractor/
+
+# Local History for Visual Studio
+.localhistory/
+
+# Visual Studio History (VSHistory) files
+.vshistory/
+
+# BeatPulse healthcheck temp database
+healthchecksdb
+
+# Backup folder for Package Reference Convert tool in Visual Studio 2017
+MigrationBackup/
+
+# Ionide (cross platform F# VS Code tools) working folder
+.ionide/
+
+# Fody - auto-generated XML schema
+FodyWeavers.xsd
+
+# VS Code files for those working on multiple tools
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+*.code-workspace
+
+# Local History for Visual Studio Code
+.history/
+
+# Windows Installer files from build outputs
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# JetBrains Rider
+*.sln.iml
+
+##
+## Visual studio for Mac
+##
+
+
+# globs
+Makefile.in
+*.userprefs
+*.usertasks
+config.make
+config.status
+aclocal.m4
+install-sh
+autom4te.cache/
+*.tar.gz
+tarballs/
+test-results/
+
+# Mac bundle stuff
+*.dmg
+*.app
+
+# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
+# Windows thumbnail cache files
+Thumbs.db
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 261eeb9..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,201 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/src/Gooey.net.Test/Gooey.net.Test.csproj b/src/Gooey.net.Test/Gooey.net.Test.csproj
new file mode 100644
index 0000000..44fa118
--- /dev/null
+++ b/src/Gooey.net.Test/Gooey.net.Test.csproj
@@ -0,0 +1,24 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Gooey.net.Test/TestClient.cs b/src/Gooey.net.Test/TestClient.cs
new file mode 100644
index 0000000..8fc9efb
--- /dev/null
+++ b/src/Gooey.net.Test/TestClient.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TestClient { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AggFunctionResultTest.cs b/src/Gooey.net.Test/Unit/Serialization/AggFunctionResultTest.cs
new file mode 100644
index 0000000..b873350
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AggFunctionResultTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AggFunctionResultTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AggFunctionTest.cs b/src/Gooey.net.Test/Unit/Serialization/AggFunctionTest.cs
new file mode 100644
index 0000000..54952ac
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AggFunctionTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AggFunctionTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AnimationPromptTest.cs b/src/Gooey.net.Test/Unit/Serialization/AnimationPromptTest.cs
new file mode 100644
index 0000000..413f507
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AnimationPromptTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AnimationPromptTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AsrChunkTest.cs b/src/Gooey.net.Test/Unit/Serialization/AsrChunkTest.cs
new file mode 100644
index 0000000..33bda4b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AsrChunkTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AsrChunkTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AsrOutputJsonTest.cs b/src/Gooey.net.Test/Unit/Serialization/AsrOutputJsonTest.cs
new file mode 100644
index 0000000..ed372d5
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AsrOutputJsonTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AsrOutputJsonTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AsrPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/AsrPageOutputTest.cs
new file mode 100644
index 0000000..a10bb92
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AsrPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AsrPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AsrPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/AsrPageRequestTest.cs
new file mode 100644
index 0000000..7993669
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AsrPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AsrPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AsrPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/AsrPageResponseTest.cs
new file mode 100644
index 0000000..d3f1395
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AsrPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AsrPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AsrPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/AsrPageStatusResponseTest.cs
new file mode 100644
index 0000000..dd73f11
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AsrPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AsrPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/AsyncApiResponseModelV3Test.cs b/src/Gooey.net.Test/Unit/Serialization/AsyncApiResponseModelV3Test.cs
new file mode 100644
index 0000000..7e39951
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/AsyncApiResponseModelV3Test.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class AsyncApiResponseModelV3Test { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BalanceResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/BalanceResponseTest.cs
new file mode 100644
index 0000000..2ca2db2
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BalanceResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BalanceResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BotBroadcastFiltersTest.cs b/src/Gooey.net.Test/Unit/Serialization/BotBroadcastFiltersTest.cs
new file mode 100644
index 0000000..587fc3c
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BotBroadcastFiltersTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BotBroadcastFiltersTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageOutputTest.cs
new file mode 100644
index 0000000..608d762
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkEvalPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageRequestTest.cs
new file mode 100644
index 0000000..b71422f
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkEvalPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageResponseTest.cs
new file mode 100644
index 0000000..2d487f4
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkEvalPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageStatusResponseTest.cs
new file mode 100644
index 0000000..4dff1ff
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkEvalPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkEvalPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageOutputTest.cs
new file mode 100644
index 0000000..42b649a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkRunnerPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageRequestTest.cs
new file mode 100644
index 0000000..ae790e1
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkRunnerPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageResponseTest.cs
new file mode 100644
index 0000000..211ae62
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkRunnerPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageStatusResponseTest.cs
new file mode 100644
index 0000000..6e3a38e
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/BulkRunnerPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class BulkRunnerPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ButtonPressedTest.cs b/src/Gooey.net.Test/Unit/Serialization/ButtonPressedTest.cs
new file mode 100644
index 0000000..8af6ed2
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ButtonPressedTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ButtonPressedTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CalledFunctionResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CalledFunctionResponseTest.cs
new file mode 100644
index 0000000..632fc2a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CalledFunctionResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CalledFunctionResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartImageParamTest.cs b/src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartImageParamTest.cs
new file mode 100644
index 0000000..5488f0b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartImageParamTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ChatCompletionContentPartImageParamTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartTextParamTest.cs b/src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartTextParamTest.cs
new file mode 100644
index 0000000..5cc3497
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ChatCompletionContentPartTextParamTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ChatCompletionContentPartTextParamTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageOutputTest.cs
new file mode 100644
index 0000000..8cf11d8
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ChyronPlantPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageRequestTest.cs
new file mode 100644
index 0000000..95db0e9
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ChyronPlantPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageResponseTest.cs
new file mode 100644
index 0000000..4f5acb6
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ChyronPlantPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageStatusResponseTest.cs
new file mode 100644
index 0000000..49ae7af
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ChyronPlantPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ChyronPlantPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageOutputTest.cs
new file mode 100644
index 0000000..e4a840b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareLlmPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageRequestTest.cs
new file mode 100644
index 0000000..2941b28
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareLlmPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageResponseTest.cs
new file mode 100644
index 0000000..5943ea0
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareLlmPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageStatusResponseTest.cs
new file mode 100644
index 0000000..7dd106d
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareLlmPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareLlmPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageOutputTest.cs
new file mode 100644
index 0000000..a4160b7
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareText2ImgPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageRequestTest.cs
new file mode 100644
index 0000000..d4756e3
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareText2ImgPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageResponseTest.cs
new file mode 100644
index 0000000..ff64db2
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareText2ImgPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageStatusResponseTest.cs
new file mode 100644
index 0000000..25bc4fa
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareText2ImgPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareText2ImgPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageOutputTest.cs
new file mode 100644
index 0000000..ffd2366
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareUpscalerPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageRequestTest.cs
new file mode 100644
index 0000000..1bfa59b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareUpscalerPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageResponseTest.cs
new file mode 100644
index 0000000..1189a16
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareUpscalerPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageStatusResponseTest.cs
new file mode 100644
index 0000000..c418665
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CompareUpscalerPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CompareUpscalerPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ConsoleLogsTest.cs b/src/Gooey.net.Test/Unit/Serialization/ConsoleLogsTest.cs
new file mode 100644
index 0000000..6929779
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ConsoleLogsTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ConsoleLogsTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ConversationEntryTest.cs b/src/Gooey.net.Test/Unit/Serialization/ConversationEntryTest.cs
new file mode 100644
index 0000000..e2999f4
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ConversationEntryTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ConversationEntryTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ConversationStartTest.cs b/src/Gooey.net.Test/Unit/Serialization/ConversationStartTest.cs
new file mode 100644
index 0000000..004b126
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ConversationStartTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ConversationStartTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/CreateStreamResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/CreateStreamResponseTest.cs
new file mode 100644
index 0000000..5b82c5f
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/CreateStreamResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class CreateStreamResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageOutputTest.cs
new file mode 100644
index 0000000..f47872b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DeforumSdPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageRequestTest.cs
new file mode 100644
index 0000000..89c6602
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DeforumSdPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageResponseTest.cs
new file mode 100644
index 0000000..44003db
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DeforumSdPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageStatusResponseTest.cs
new file mode 100644
index 0000000..42470bd
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DeforumSdPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DeforumSdPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocExtractPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageOutputTest.cs
new file mode 100644
index 0000000..a8c8dc8
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocExtractPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocExtractPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageRequestTest.cs
new file mode 100644
index 0000000..39bcaf5
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocExtractPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocExtractPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageResponseTest.cs
new file mode 100644
index 0000000..b8ecf13
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocExtractPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocExtractPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageStatusResponseTest.cs
new file mode 100644
index 0000000..a65576f
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocExtractPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocExtractPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSearchPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageOutputTest.cs
new file mode 100644
index 0000000..dd9232f
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSearchPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSearchPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageRequestTest.cs
new file mode 100644
index 0000000..55ecbea
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSearchPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSearchPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageResponseTest.cs
new file mode 100644
index 0000000..803493a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSearchPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSearchPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageStatusResponseTest.cs
new file mode 100644
index 0000000..2c2e844
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSearchPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSearchPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageOutputTest.cs
new file mode 100644
index 0000000..8824da5
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSummaryPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageRequestTest.cs
new file mode 100644
index 0000000..a52d48b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSummaryPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageResponseTest.cs
new file mode 100644
index 0000000..59c5f96
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSummaryPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageStatusResponseTest.cs
new file mode 100644
index 0000000..3dcb997
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/DocSummaryPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class DocSummaryPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageOutputTest.cs
new file mode 100644
index 0000000..1762b93
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmailFaceInpaintingPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageRequestTest.cs
new file mode 100644
index 0000000..d06adfe
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmailFaceInpaintingPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageResponseTest.cs
new file mode 100644
index 0000000..90030eb
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmailFaceInpaintingPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageStatusResponseTest.cs
new file mode 100644
index 0000000..b414e80
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmailFaceInpaintingPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmailFaceInpaintingPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageOutputTest.cs
new file mode 100644
index 0000000..feb4137
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmbeddingsPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageRequestTest.cs
new file mode 100644
index 0000000..f764b98
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmbeddingsPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageResponseTest.cs
new file mode 100644
index 0000000..bc1520c
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmbeddingsPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageStatusResponseTest.cs
new file mode 100644
index 0000000..697608b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EmbeddingsPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EmbeddingsPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/EvalPromptTest.cs b/src/Gooey.net.Test/Unit/Serialization/EvalPromptTest.cs
new file mode 100644
index 0000000..e1fc0fd
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/EvalPromptTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class EvalPromptTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageOutputTest.cs
new file mode 100644
index 0000000..d7ceaab
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FaceInpaintingPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageRequestTest.cs
new file mode 100644
index 0000000..de99a45
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FaceInpaintingPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageResponseTest.cs
new file mode 100644
index 0000000..72cf208
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FaceInpaintingPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageStatusResponseTest.cs
new file mode 100644
index 0000000..99ed83e
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FaceInpaintingPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FaceInpaintingPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FailedReponseModelV2Test.cs b/src/Gooey.net.Test/Unit/Serialization/FailedReponseModelV2Test.cs
new file mode 100644
index 0000000..ca180fa
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FailedReponseModelV2Test.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FailedReponseModelV2Test { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FailedResponseDetailTest.cs b/src/Gooey.net.Test/Unit/Serialization/FailedResponseDetailTest.cs
new file mode 100644
index 0000000..280d95b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FailedResponseDetailTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FailedResponseDetailTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FinalResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/FinalResponseTest.cs
new file mode 100644
index 0000000..604b66b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FinalResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FinalResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FunctionsPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageOutputTest.cs
new file mode 100644
index 0000000..f9d66ee
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FunctionsPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FunctionsPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageRequestTest.cs
new file mode 100644
index 0000000..a6bf611
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FunctionsPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FunctionsPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageResponseTest.cs
new file mode 100644
index 0000000..9d0b482
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FunctionsPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/FunctionsPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageStatusResponseTest.cs
new file mode 100644
index 0000000..8f0f830
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/FunctionsPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class FunctionsPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseDetailTest.cs b/src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseDetailTest.cs
new file mode 100644
index 0000000..5b3a209
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseDetailTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GenericErrorResponseDetailTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseTest.cs
new file mode 100644
index 0000000..07cd7dc
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GenericErrorResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GenericErrorResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageOutputTest.cs
new file mode 100644
index 0000000..c4909c2
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleGptPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageRequestTest.cs
new file mode 100644
index 0000000..dc4a1b1
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleGptPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageResponseTest.cs
new file mode 100644
index 0000000..75ef65c
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleGptPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageStatusResponseTest.cs
new file mode 100644
index 0000000..5118971
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleGptPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleGptPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageOutputTest.cs
new file mode 100644
index 0000000..8431302
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleImageGenPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageRequestTest.cs
new file mode 100644
index 0000000..8eacff2
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleImageGenPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageResponseTest.cs
new file mode 100644
index 0000000..025d465
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleImageGenPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageStatusResponseTest.cs
new file mode 100644
index 0000000..4dc1353
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/GoogleImageGenPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class GoogleImageGenPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/HttpValidationErrorTest.cs b/src/Gooey.net.Test/Unit/Serialization/HttpValidationErrorTest.cs
new file mode 100644
index 0000000..c5dba5b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/HttpValidationErrorTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class HttpValidationErrorTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageOutputTest.cs
new file mode 100644
index 0000000..e3a616a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ImageSegmentationPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageRequestTest.cs
new file mode 100644
index 0000000..9751c75
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ImageSegmentationPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageResponseTest.cs
new file mode 100644
index 0000000..e7e6864
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ImageSegmentationPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageStatusResponseTest.cs
new file mode 100644
index 0000000..daac485
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ImageSegmentationPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ImageSegmentationPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ImageUrlTest.cs b/src/Gooey.net.Test/Unit/Serialization/ImageUrlTest.cs
new file mode 100644
index 0000000..d867fcb
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ImageUrlTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ImageUrlTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageOutputTest.cs
new file mode 100644
index 0000000..3a50b59
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Img2ImgPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageRequestTest.cs
new file mode 100644
index 0000000..3b72f45
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Img2ImgPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageResponseTest.cs
new file mode 100644
index 0000000..fb227d8
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Img2ImgPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageStatusResponseTest.cs
new file mode 100644
index 0000000..f2a0adc
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Img2ImgPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Img2ImgPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageOutputTest.cs
new file mode 100644
index 0000000..34f674c
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LetterWriterPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageRequestTest.cs
new file mode 100644
index 0000000..ea98232
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LetterWriterPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageResponseTest.cs
new file mode 100644
index 0000000..4599942
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LetterWriterPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageStatusResponseTest.cs
new file mode 100644
index 0000000..287ff2c
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LetterWriterPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LetterWriterPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageOutputTest.cs
new file mode 100644
index 0000000..01cd5b3
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageRequestTest.cs
new file mode 100644
index 0000000..879d3fc
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageResponseTest.cs
new file mode 100644
index 0000000..3541b06
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageStatusResponseTest.cs
new file mode 100644
index 0000000..25349ee
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageOutputTest.cs
new file mode 100644
index 0000000..373d1ae
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncTtsPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageRequestTest.cs
new file mode 100644
index 0000000..519a116
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncTtsPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageResponseTest.cs
new file mode 100644
index 0000000..f32701d
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncTtsPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageStatusResponseTest.cs
new file mode 100644
index 0000000..1c28dd3
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/LipsyncTtsPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class LipsyncTtsPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/MessagePartTest.cs b/src/Gooey.net.Test/Unit/Serialization/MessagePartTest.cs
new file mode 100644
index 0000000..9159d75
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/MessagePartTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class MessagePartTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageOutputTest.cs
new file mode 100644
index 0000000..d30379e
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ObjectInpaintingPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageRequestTest.cs
new file mode 100644
index 0000000..d6bba26
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ObjectInpaintingPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageResponseTest.cs
new file mode 100644
index 0000000..8dc5f13
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ObjectInpaintingPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageStatusResponseTest.cs
new file mode 100644
index 0000000..cfd5108
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ObjectInpaintingPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ObjectInpaintingPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/PromptTreeNodeTest.cs b/src/Gooey.net.Test/Unit/Serialization/PromptTreeNodeTest.cs
new file mode 100644
index 0000000..c193fcd
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/PromptTreeNodeTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class PromptTreeNodeTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageOutputTest.cs
new file mode 100644
index 0000000..2f964f1
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class QrCodeGeneratorPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageRequestTest.cs
new file mode 100644
index 0000000..54abd75
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class QrCodeGeneratorPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageResponseTest.cs
new file mode 100644
index 0000000..a959daa
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class QrCodeGeneratorPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageStatusResponseTest.cs
new file mode 100644
index 0000000..2af9681
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/QrCodeGeneratorPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class QrCodeGeneratorPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RecipeFunctionTest.cs b/src/Gooey.net.Test/Unit/Serialization/RecipeFunctionTest.cs
new file mode 100644
index 0000000..cad9b69
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RecipeFunctionTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RecipeFunctionTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedDocSearchResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedDocSearchResponseTest.cs
new file mode 100644
index 0000000..6c90169
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedDocSearchResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedDocSearchResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedGoogleGptResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedGoogleGptResponseTest.cs
new file mode 100644
index 0000000..193dac8
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedGoogleGptResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedGoogleGptResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageOutputTest.cs
new file mode 100644
index 0000000..75ceea4
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnADocPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageRequestTest.cs
new file mode 100644
index 0000000..cac94ea
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnADocPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageResponseTest.cs
new file mode 100644
index 0000000..18b1a40
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnADocPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageStatusResponseTest.cs
new file mode 100644
index 0000000..bd6b6eb
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnADocPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnADocPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageOutputTest.cs
new file mode 100644
index 0000000..5bbb4ba
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnAPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageRequestTest.cs
new file mode 100644
index 0000000..028a677
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnAPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageResponseTest.cs
new file mode 100644
index 0000000..4aa5c6d
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnAPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageStatusResponseTest.cs
new file mode 100644
index 0000000..9e18bef
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RelatedQnAPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RelatedQnAPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ReplyButtonTest.cs b/src/Gooey.net.Test/Unit/Serialization/ReplyButtonTest.cs
new file mode 100644
index 0000000..999da5e
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ReplyButtonTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ReplyButtonTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ResponseModelTest.cs b/src/Gooey.net.Test/Unit/Serialization/ResponseModelTest.cs
new file mode 100644
index 0000000..c4d0c70
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ResponseModelTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ResponseModelTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RunSettingsTest.cs b/src/Gooey.net.Test/Unit/Serialization/RunSettingsTest.cs
new file mode 100644
index 0000000..fd8ff22
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RunSettingsTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RunSettingsTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/RunStartTest.cs b/src/Gooey.net.Test/Unit/Serialization/RunStartTest.cs
new file mode 100644
index 0000000..5029e5b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/RunStartTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class RunStartTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SadTalkerSettingsTest.cs b/src/Gooey.net.Test/Unit/Serialization/SadTalkerSettingsTest.cs
new file mode 100644
index 0000000..aa0058f
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SadTalkerSettingsTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SadTalkerSettingsTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SearchReferenceTest.cs b/src/Gooey.net.Test/Unit/Serialization/SearchReferenceTest.cs
new file mode 100644
index 0000000..3ce0b9a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SearchReferenceTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SearchReferenceTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageOutputTest.cs
new file mode 100644
index 0000000..9657319
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SeoSummaryPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageRequestTest.cs
new file mode 100644
index 0000000..0ef3573
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SeoSummaryPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageResponseTest.cs
new file mode 100644
index 0000000..82cb486
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SeoSummaryPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageStatusResponseTest.cs
new file mode 100644
index 0000000..e5ca099
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SeoSummaryPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SeoSummaryPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SmartGptPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageOutputTest.cs
new file mode 100644
index 0000000..889e269
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SmartGptPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SmartGptPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageRequestTest.cs
new file mode 100644
index 0000000..674cd4a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SmartGptPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SmartGptPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageResponseTest.cs
new file mode 100644
index 0000000..176a971
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SmartGptPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SmartGptPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageStatusResponseTest.cs
new file mode 100644
index 0000000..05d2029
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SmartGptPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SmartGptPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageOutputTest.cs
new file mode 100644
index 0000000..2da81ea
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SocialLookupEmailPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageRequestTest.cs
new file mode 100644
index 0000000..9602d08
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SocialLookupEmailPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageResponseTest.cs
new file mode 100644
index 0000000..b39685c
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SocialLookupEmailPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageStatusResponseTest.cs
new file mode 100644
index 0000000..795b76e
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/SocialLookupEmailPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class SocialLookupEmailPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/StreamErrorTest.cs b/src/Gooey.net.Test/Unit/Serialization/StreamErrorTest.cs
new file mode 100644
index 0000000..6fbbe67
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/StreamErrorTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class StreamErrorTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageOutputTest.cs
new file mode 100644
index 0000000..9bc104a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Text2AudioPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageRequestTest.cs
new file mode 100644
index 0000000..c138936
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Text2AudioPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageResponseTest.cs
new file mode 100644
index 0000000..e122899
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Text2AudioPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageStatusResponseTest.cs
new file mode 100644
index 0000000..7be3674
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/Text2AudioPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class Text2AudioPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageOutputTest.cs
new file mode 100644
index 0000000..09adb3e
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TextToSpeechPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageRequestTest.cs
new file mode 100644
index 0000000..9afd94b
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TextToSpeechPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageResponseTest.cs
new file mode 100644
index 0000000..0010517
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TextToSpeechPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageStatusResponseTest.cs
new file mode 100644
index 0000000..205ccae
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TextToSpeechPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TextToSpeechPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TrainingDataModelTest.cs b/src/Gooey.net.Test/Unit/Serialization/TrainingDataModelTest.cs
new file mode 100644
index 0000000..393291e
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TrainingDataModelTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TrainingDataModelTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TranslationPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/TranslationPageOutputTest.cs
new file mode 100644
index 0000000..9577d50
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TranslationPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TranslationPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TranslationPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/TranslationPageRequestTest.cs
new file mode 100644
index 0000000..050f56d
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TranslationPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TranslationPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TranslationPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/TranslationPageResponseTest.cs
new file mode 100644
index 0000000..314faf1
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TranslationPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TranslationPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/TranslationPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/TranslationPageStatusResponseTest.cs
new file mode 100644
index 0000000..c06fe69
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/TranslationPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class TranslationPageStatusResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/ValidationErrorTest.cs b/src/Gooey.net.Test/Unit/Serialization/ValidationErrorTest.cs
new file mode 100644
index 0000000..d535c05
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/ValidationErrorTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class ValidationErrorTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/VcardTest.cs b/src/Gooey.net.Test/Unit/Serialization/VcardTest.cs
new file mode 100644
index 0000000..22adfe4
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/VcardTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class VcardTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageOutputTest.cs b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageOutputTest.cs
new file mode 100644
index 0000000..3131b8f
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageOutputTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class VideoBotsPageOutputTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageRequestTest.cs b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageRequestTest.cs
new file mode 100644
index 0000000..2d8e802
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageRequestTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class VideoBotsPageRequestTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageResponseTest.cs
new file mode 100644
index 0000000..ec136cb
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class VideoBotsPageResponseTest { }
diff --git a/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageStatusResponseTest.cs b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageStatusResponseTest.cs
new file mode 100644
index 0000000..51b160a
--- /dev/null
+++ b/src/Gooey.net.Test/Unit/Serialization/VideoBotsPageStatusResponseTest.cs
@@ -0,0 +1,8 @@
+using NUnit.Framework;
+
+#nullable enable
+
+namespace Gooey.net.Test;
+
+[TestFixture]
+public class VideoBotsPageStatusResponseTest { }
diff --git a/src/Gooey.net.sln b/src/Gooey.net.sln
new file mode 100644
index 0000000..12c2c32
--- /dev/null
+++ b/src/Gooey.net.sln
@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.0.31903.59
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gooey.net", "Gooey.net\Gooey.net.csproj", "{8936E526-DE94-47B1-9BE9-EEBE6D73ADD3}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gooey.net.Test", "Gooey.net.Test\Gooey.net.Test.csproj", "{AB22B81E-3D23-42D1-8DD4-1CA4B22CE5C6}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8936E526-DE94-47B1-9BE9-EEBE6D73ADD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8936E526-DE94-47B1-9BE9-EEBE6D73ADD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8936E526-DE94-47B1-9BE9-EEBE6D73ADD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8936E526-DE94-47B1-9BE9-EEBE6D73ADD3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AB22B81E-3D23-42D1-8DD4-1CA4B22CE5C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AB22B81E-3D23-42D1-8DD4-1CA4B22CE5C6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AB22B81E-3D23-42D1-8DD4-1CA4B22CE5C6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AB22B81E-3D23-42D1-8DD4-1CA4B22CE5C6}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/src/Gooey.net/AiAnimationGenerator/AiAnimationGeneratorClient.cs b/src/Gooey.net/AiAnimationGenerator/AiAnimationGeneratorClient.cs
new file mode 100644
index 0000000..ea7ecfc
--- /dev/null
+++ b/src/Gooey.net/AiAnimationGenerator/AiAnimationGeneratorClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class AiAnimationGeneratorClient
+{
+ private RawClient _client;
+
+ public AiAnimationGeneratorClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task DeforumSdAsync(DeforumSdPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/DeforumSD/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncDeforumSdAsync(DeforumSdPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/DeforumSD/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusDeforumSdAsync(
+ StatusDeforumSdRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/DeforumSD/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/AiAnimationGenerator/Requests/StatusDeforumSdRequest.cs b/src/Gooey.net/AiAnimationGenerator/Requests/StatusDeforumSdRequest.cs
new file mode 100644
index 0000000..4ab03dc
--- /dev/null
+++ b/src/Gooey.net/AiAnimationGenerator/Requests/StatusDeforumSdRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusDeforumSdRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/AiArtQrCode/AiArtQrCodeClient.cs b/src/Gooey.net/AiArtQrCode/AiArtQrCodeClient.cs
new file mode 100644
index 0000000..1224f7f
--- /dev/null
+++ b/src/Gooey.net/AiArtQrCode/AiArtQrCodeClient.cs
@@ -0,0 +1,79 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class AiArtQrCodeClient
+{
+ private RawClient _client;
+
+ public AiArtQrCodeClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task ArtQrCodeAsync(
+ QrCodeGeneratorPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/art-qr-code/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncArtQrCodeAsync(
+ QrCodeGeneratorPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/art-qr-code/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusArtQrCodeAsync(
+ StatusArtQrCodeRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/art-qr-code/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/AiArtQrCode/Requests/StatusArtQrCodeRequest.cs b/src/Gooey.net/AiArtQrCode/Requests/StatusArtQrCodeRequest.cs
new file mode 100644
index 0000000..eef16c2
--- /dev/null
+++ b/src/Gooey.net/AiArtQrCode/Requests/StatusArtQrCodeRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusArtQrCodeRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/AiBackgroundChanger/AiBackgroundChangerClient.cs b/src/Gooey.net/AiBackgroundChanger/AiBackgroundChangerClient.cs
new file mode 100644
index 0000000..efc9976
--- /dev/null
+++ b/src/Gooey.net/AiBackgroundChanger/AiBackgroundChangerClient.cs
@@ -0,0 +1,79 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class AiBackgroundChangerClient
+{
+ private RawClient _client;
+
+ public AiBackgroundChangerClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task ImageSegmentationAsync(
+ ImageSegmentationPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/ImageSegmentation/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncImageSegmentationAsync(
+ ImageSegmentationPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/ImageSegmentation/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusImageSegmentationAsync(
+ StatusImageSegmentationRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/ImageSegmentation/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/AiBackgroundChanger/Requests/StatusImageSegmentationRequest.cs b/src/Gooey.net/AiBackgroundChanger/Requests/StatusImageSegmentationRequest.cs
new file mode 100644
index 0000000..ad1191b
--- /dev/null
+++ b/src/Gooey.net/AiBackgroundChanger/Requests/StatusImageSegmentationRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusImageSegmentationRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/AiGeneratedPhotoFromEmailProfileLookupClient.cs b/src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/AiGeneratedPhotoFromEmailProfileLookupClient.cs
new file mode 100644
index 0000000..4cfaada
--- /dev/null
+++ b/src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/AiGeneratedPhotoFromEmailProfileLookupClient.cs
@@ -0,0 +1,79 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class AiGeneratedPhotoFromEmailProfileLookupClient
+{
+ private RawClient _client;
+
+ public AiGeneratedPhotoFromEmailProfileLookupClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task EmailFaceInpaintingAsync(
+ EmailFaceInpaintingPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/EmailFaceInpainting/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncEmailFaceInpaintingAsync(
+ EmailFaceInpaintingPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/EmailFaceInpainting/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusEmailFaceInpaintingAsync(
+ StatusEmailFaceInpaintingRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/EmailFaceInpainting/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/Requests/StatusEmailFaceInpaintingRequest.cs b/src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/Requests/StatusEmailFaceInpaintingRequest.cs
new file mode 100644
index 0000000..e1b7ec5
--- /dev/null
+++ b/src/Gooey.net/AiGeneratedPhotoFromEmailProfileLookup/Requests/StatusEmailFaceInpaintingRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusEmailFaceInpaintingRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/AiImageWithAFace/AiImageWithAFaceClient.cs b/src/Gooey.net/AiImageWithAFace/AiImageWithAFaceClient.cs
new file mode 100644
index 0000000..af59040
--- /dev/null
+++ b/src/Gooey.net/AiImageWithAFace/AiImageWithAFaceClient.cs
@@ -0,0 +1,79 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class AiImageWithAFaceClient
+{
+ private RawClient _client;
+
+ public AiImageWithAFaceClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task FaceInpaintingAsync(
+ FaceInpaintingPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/FaceInpainting/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncFaceInpaintingAsync(
+ FaceInpaintingPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/FaceInpainting/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusFaceInpaintingAsync(
+ StatusFaceInpaintingRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/FaceInpainting/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/AiImageWithAFace/Requests/StatusFaceInpaintingRequest.cs b/src/Gooey.net/AiImageWithAFace/Requests/StatusFaceInpaintingRequest.cs
new file mode 100644
index 0000000..ba848da
--- /dev/null
+++ b/src/Gooey.net/AiImageWithAFace/Requests/StatusFaceInpaintingRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusFaceInpaintingRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/BulkRunner/BulkRunnerClient.cs b/src/Gooey.net/BulkRunner/BulkRunnerClient.cs
new file mode 100644
index 0000000..eed6ac7
--- /dev/null
+++ b/src/Gooey.net/BulkRunner/BulkRunnerClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class BulkRunnerClient
+{
+ private RawClient _client;
+
+ public BulkRunnerClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task PostAsync(BulkRunnerPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/bulk-runner/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncBulkRunnerAsync(BulkRunnerPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/bulk-runner/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusBulkRunnerAsync(
+ StatusBulkRunnerRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/bulk-runner/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/BulkRunner/Requests/StatusBulkRunnerRequest.cs b/src/Gooey.net/BulkRunner/Requests/StatusBulkRunnerRequest.cs
new file mode 100644
index 0000000..29964b6
--- /dev/null
+++ b/src/Gooey.net/BulkRunner/Requests/StatusBulkRunnerRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusBulkRunnerRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/ChyronPlantBot/ChyronPlantBotClient.cs b/src/Gooey.net/ChyronPlantBot/ChyronPlantBotClient.cs
new file mode 100644
index 0000000..5bd5f65
--- /dev/null
+++ b/src/Gooey.net/ChyronPlantBot/ChyronPlantBotClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class ChyronPlantBotClient
+{
+ private RawClient _client;
+
+ public ChyronPlantBotClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task ChyronPlantAsync(ChyronPlantPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/ChyronPlant/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncChyronPlantAsync(ChyronPlantPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/ChyronPlant/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusChyronPlantAsync(
+ StatusChyronPlantRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/ChyronPlant/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/ChyronPlantBot/Requests/StatusChyronPlantRequest.cs b/src/Gooey.net/ChyronPlantBot/Requests/StatusChyronPlantRequest.cs
new file mode 100644
index 0000000..be3ed3d
--- /dev/null
+++ b/src/Gooey.net/ChyronPlantBot/Requests/StatusChyronPlantRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusChyronPlantRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/CompareAiImageGenerators/CompareAiImageGeneratorsClient.cs b/src/Gooey.net/CompareAiImageGenerators/CompareAiImageGeneratorsClient.cs
new file mode 100644
index 0000000..5691078
--- /dev/null
+++ b/src/Gooey.net/CompareAiImageGenerators/CompareAiImageGeneratorsClient.cs
@@ -0,0 +1,79 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class CompareAiImageGeneratorsClient
+{
+ private RawClient _client;
+
+ public CompareAiImageGeneratorsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task CompareText2ImgAsync(
+ CompareText2ImgPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/CompareText2Img/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncCompareText2ImgAsync(
+ CompareText2ImgPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/CompareText2Img/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusCompareText2ImgAsync(
+ StatusCompareText2ImgRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/CompareText2Img/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/CompareAiImageGenerators/Requests/StatusCompareText2ImgRequest.cs b/src/Gooey.net/CompareAiImageGenerators/Requests/StatusCompareText2ImgRequest.cs
new file mode 100644
index 0000000..94f47c4
--- /dev/null
+++ b/src/Gooey.net/CompareAiImageGenerators/Requests/StatusCompareText2ImgRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusCompareText2ImgRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/CompareAiImageUpscalers/CompareAiImageUpscalersClient.cs b/src/Gooey.net/CompareAiImageUpscalers/CompareAiImageUpscalersClient.cs
new file mode 100644
index 0000000..294dcee
--- /dev/null
+++ b/src/Gooey.net/CompareAiImageUpscalers/CompareAiImageUpscalersClient.cs
@@ -0,0 +1,79 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class CompareAiImageUpscalersClient
+{
+ private RawClient _client;
+
+ public CompareAiImageUpscalersClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task CompareAiUpscalersAsync(
+ CompareUpscalerPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/compare-ai-upscalers/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncCompareAiUpscalersAsync(
+ CompareUpscalerPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/compare-ai-upscalers/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusCompareAiUpscalersAsync(
+ StatusCompareAiUpscalersRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/compare-ai-upscalers/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/CompareAiImageUpscalers/Requests/StatusCompareAiUpscalersRequest.cs b/src/Gooey.net/CompareAiImageUpscalers/Requests/StatusCompareAiUpscalersRequest.cs
new file mode 100644
index 0000000..df97c97
--- /dev/null
+++ b/src/Gooey.net/CompareAiImageUpscalers/Requests/StatusCompareAiUpscalersRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusCompareAiUpscalersRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/CompareAiTranslations/CompareAiTranslationsClient.cs b/src/Gooey.net/CompareAiTranslations/CompareAiTranslationsClient.cs
new file mode 100644
index 0000000..021430e
--- /dev/null
+++ b/src/Gooey.net/CompareAiTranslations/CompareAiTranslationsClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class CompareAiTranslationsClient
+{
+ private RawClient _client;
+
+ public CompareAiTranslationsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task TranslateAsync(TranslationPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/translate/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncTranslateAsync(TranslationPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/translate/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusTranslateAsync(
+ StatusTranslateRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/translate/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/CompareAiTranslations/Requests/StatusTranslateRequest.cs b/src/Gooey.net/CompareAiTranslations/Requests/StatusTranslateRequest.cs
new file mode 100644
index 0000000..1e371a9
--- /dev/null
+++ b/src/Gooey.net/CompareAiTranslations/Requests/StatusTranslateRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusTranslateRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/CompareAiVoiceGenerators/CompareAiVoiceGeneratorsClient.cs b/src/Gooey.net/CompareAiVoiceGenerators/CompareAiVoiceGeneratorsClient.cs
new file mode 100644
index 0000000..529caee
--- /dev/null
+++ b/src/Gooey.net/CompareAiVoiceGenerators/CompareAiVoiceGeneratorsClient.cs
@@ -0,0 +1,77 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class CompareAiVoiceGeneratorsClient
+{
+ private RawClient _client;
+
+ public CompareAiVoiceGeneratorsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task TextToSpeechAsync(TextToSpeechPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/TextToSpeech/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncTextToSpeechAsync(
+ TextToSpeechPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/TextToSpeech/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusTextToSpeechAsync(
+ StatusTextToSpeechRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/TextToSpeech/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/CompareAiVoiceGenerators/Requests/StatusTextToSpeechRequest.cs b/src/Gooey.net/CompareAiVoiceGenerators/Requests/StatusTextToSpeechRequest.cs
new file mode 100644
index 0000000..cfaa91e
--- /dev/null
+++ b/src/Gooey.net/CompareAiVoiceGenerators/Requests/StatusTextToSpeechRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusTextToSpeechRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/CopilotForYourEnterprise/CopilotForYourEnterpriseClient.cs b/src/Gooey.net/CopilotForYourEnterprise/CopilotForYourEnterpriseClient.cs
new file mode 100644
index 0000000..701d109
--- /dev/null
+++ b/src/Gooey.net/CopilotForYourEnterprise/CopilotForYourEnterpriseClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class CopilotForYourEnterpriseClient
+{
+ private RawClient _client;
+
+ public CopilotForYourEnterpriseClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task VideoBotsAsync(VideoBotsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/video-bots/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncVideoBotsAsync(VideoBotsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/video-bots/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusVideoBotsAsync(
+ StatusVideoBotsRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/video-bots/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/CopilotForYourEnterprise/Requests/StatusVideoBotsRequest.cs b/src/Gooey.net/CopilotForYourEnterprise/Requests/StatusVideoBotsRequest.cs
new file mode 100644
index 0000000..5d2555d
--- /dev/null
+++ b/src/Gooey.net/CopilotForYourEnterprise/Requests/StatusVideoBotsRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusVideoBotsRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/CopilotIntegrations/CopilotIntegrationsClient.cs b/src/Gooey.net/CopilotIntegrations/CopilotIntegrationsClient.cs
new file mode 100644
index 0000000..a71b177
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/CopilotIntegrationsClient.cs
@@ -0,0 +1,58 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+using OneOf;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class CopilotIntegrationsClient
+{
+ private RawClient _client;
+
+ public CopilotIntegrationsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task VideoBotsStreamCreateAsync(CreateStreamRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/integrations/stream/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task<
+ OneOf
+ > VideoBotsStreamAsync(string requestId)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = $"v3/integrations/stream/{requestId}/"
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize<
+ OneOf
+ >(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Requests/CreateStreamRequest.cs b/src/Gooey.net/CopilotIntegrations/Requests/CreateStreamRequest.cs
new file mode 100644
index 0000000..e97f1c2
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Requests/CreateStreamRequest.cs
@@ -0,0 +1,270 @@
+using System.Text.Json.Serialization;
+using Gooey.net;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public record CreateStreamRequest
+{
+ ///
+ /// Your Integration ID as shown in the Copilot Integrations tab
+ ///
+ [JsonPropertyName("integration_id")]
+ public required string IntegrationId { get; init; }
+
+ ///
+ /// The gooey conversation ID.
+ ///
+ /// If not provided, a new conversation will be started and a new ID will be returned in the response. Use this to maintain the state of the conversation between requests.
+ ///
+ /// Note that you may not provide a custom ID here, and must only use the `conversation_id` returned in a previous response.
+ ///
+ [JsonPropertyName("conversation_id")]
+ public string? ConversationId { get; init; }
+
+ ///
+ /// Your app's custom user ID.
+ ///
+ /// If not provided, a random user will be created and a new ID will be returned in the response. If a `conversation_id` is provided, this field is automatically set to the user's id associated with that conversation.
+ ///
+ [JsonPropertyName("user_id")]
+ public string? UserId { get; init; }
+
+ ///
+ /// Your app's custom message ID for the user message.
+ ///
+ /// If not provided, a random ID will be generated and returned in the response. This is useful for tracking messages in the conversation.
+ ///
+ [JsonPropertyName("user_message_id")]
+ public string? UserMessageId { get; init; }
+
+ ///
+ /// The button that was pressed by the user.
+ ///
+ [JsonPropertyName("button_pressed")]
+ public ButtonPressed? ButtonPressed { get; init; }
+
+ [JsonPropertyName("functions")]
+ public IEnumerable? Functions { get; init; }
+
+ ///
+ /// Variables to be used as Jinja prompt templates and in functions as arguments
+ ///
+ [JsonPropertyName("variables")]
+ public Dictionary? Variables { get; init; }
+
+ [JsonPropertyName("input_prompt")]
+ public string? InputPrompt { get; init; }
+
+ [JsonPropertyName("input_audio")]
+ public string? InputAudio { get; init; }
+
+ [JsonPropertyName("input_images")]
+ public IEnumerable? InputImages { get; init; }
+
+ [JsonPropertyName("input_documents")]
+ public IEnumerable? InputDocuments { get; init; }
+
+ ///
+ /// Select a workflow to extract text from documents and images.
+ ///
+ [JsonPropertyName("doc_extract_url")]
+ public string? DocExtractUrl { get; init; }
+
+ [JsonPropertyName("messages")]
+ public IEnumerable? Messages { get; init; }
+
+ [JsonPropertyName("bot_script")]
+ public string? BotScript { get; init; }
+
+ [JsonPropertyName("selected_model")]
+ public CreateStreamRequestSelectedModel? SelectedModel { get; init; }
+
+ ///
+ /// When your copilot users upload a photo or pdf, what kind of document are they mostly likely to upload? (via [Azure](https://learn.microsoft.com/en-us/azure/ai-services/document-intelligence/how-to-guides/use-sdk-rest-api?view=doc-intel-3.1.0&tabs=linux&pivots=programming-language-rest-api))
+ ///
+ [JsonPropertyName("document_model")]
+ public string? DocumentModel { get; init; }
+
+ [JsonPropertyName("avoid_repetition")]
+ public bool? AvoidRepetition { get; init; }
+
+ [JsonPropertyName("num_outputs")]
+ public int? NumOutputs { get; init; }
+
+ [JsonPropertyName("quality")]
+ public double? Quality { get; init; }
+
+ [JsonPropertyName("max_tokens")]
+ public int? MaxTokens { get; init; }
+
+ [JsonPropertyName("sampling_temperature")]
+ public double? SamplingTemperature { get; init; }
+
+ [JsonPropertyName("task_instructions")]
+ public string? TaskInstructions { get; init; }
+
+ [JsonPropertyName("query_instructions")]
+ public string? QueryInstructions { get; init; }
+
+ [JsonPropertyName("keyword_instructions")]
+ public string? KeywordInstructions { get; init; }
+
+ [JsonPropertyName("documents")]
+ public IEnumerable? Documents { get; init; }
+
+ [JsonPropertyName("max_references")]
+ public int? MaxReferences { get; init; }
+
+ [JsonPropertyName("max_context_words")]
+ public int? MaxContextWords { get; init; }
+
+ [JsonPropertyName("scroll_jump")]
+ public int? ScrollJump { get; init; }
+
+ [JsonPropertyName("embedding_model")]
+ public CreateStreamRequestEmbeddingModel? EmbeddingModel { get; init; }
+
+ ///
+ ///
+ /// Weightage for dense vs sparse embeddings. `0` for sparse, `1` for dense, `0.5` for equal weight.
+ /// Generally speaking, dense embeddings excel at understanding the context of the query, whereas sparse vectors excel at keyword matches.
+ ///
+ ///
+ [JsonPropertyName("dense_weight")]
+ public double? DenseWeight { get; init; }
+
+ [JsonPropertyName("citation_style")]
+ public CreateStreamRequestCitationStyle? CitationStyle { get; init; }
+
+ [JsonPropertyName("use_url_shortener")]
+ public bool? UseUrlShortener { get; init; }
+
+ ///
+ /// Choose a model to transcribe incoming audio messages to text.
+ ///
+ [JsonPropertyName("asr_model")]
+ public CreateStreamRequestAsrModel? AsrModel { get; init; }
+
+ ///
+ /// Choose a language to transcribe incoming audio messages to text.
+ ///
+ [JsonPropertyName("asr_language")]
+ public string? AsrLanguage { get; init; }
+
+ [JsonPropertyName("translation_model")]
+ public CreateStreamRequestTranslationModel? TranslationModel { get; init; }
+
+ ///
+ /// Choose a language to translate incoming text & audio messages to English and responses back to your selected language. Useful for low-resource languages.
+ ///
+ [JsonPropertyName("user_language")]
+ public string? UserLanguage { get; init; }
+
+ ///
+ ///
+ /// Translation Glossary for User Langauge -> LLM Language (English)
+ ///
+ ///
+ [JsonPropertyName("input_glossary_document")]
+ public string? InputGlossaryDocument { get; init; }
+
+ ///
+ ///
+ /// Translation Glossary for LLM Language (English) -> User Langauge
+ ///
+ ///
+ [JsonPropertyName("output_glossary_document")]
+ public string? OutputGlossaryDocument { get; init; }
+
+ [JsonPropertyName("lipsync_model")]
+ public CreateStreamRequestLipsyncModel? LipsyncModel { get; init; }
+
+ ///
+ /// Give your copilot superpowers by giving it access to tools. Powered by [Function calling](https://platform.openai.com/docs/guides/function-calling).
+ ///
+ [JsonPropertyName("tools")]
+ public IEnumerable? Tools { get; init; }
+
+ [JsonPropertyName("tts_provider")]
+ public CreateStreamRequestTtsProvider? TtsProvider { get; init; }
+
+ [JsonPropertyName("uberduck_voice_name")]
+ public string? UberduckVoiceName { get; init; }
+
+ [JsonPropertyName("uberduck_speaking_rate")]
+ public double? UberduckSpeakingRate { get; init; }
+
+ [JsonPropertyName("google_voice_name")]
+ public string? GoogleVoiceName { get; init; }
+
+ [JsonPropertyName("google_speaking_rate")]
+ public double? GoogleSpeakingRate { get; init; }
+
+ [JsonPropertyName("google_pitch")]
+ public double? GooglePitch { get; init; }
+
+ [JsonPropertyName("bark_history_prompt")]
+ public string? BarkHistoryPrompt { get; init; }
+
+ ///
+ /// Use `elevenlabs_voice_id` instead
+ ///
+ [JsonPropertyName("elevenlabs_voice_name")]
+ public string? ElevenlabsVoiceName { get; init; }
+
+ [JsonPropertyName("elevenlabs_api_key")]
+ public string? ElevenlabsApiKey { get; init; }
+
+ [JsonPropertyName("elevenlabs_voice_id")]
+ public string? ElevenlabsVoiceId { get; init; }
+
+ [JsonPropertyName("elevenlabs_model")]
+ public string? ElevenlabsModel { get; init; }
+
+ [JsonPropertyName("elevenlabs_stability")]
+ public double? ElevenlabsStability { get; init; }
+
+ [JsonPropertyName("elevenlabs_similarity_boost")]
+ public double? ElevenlabsSimilarityBoost { get; init; }
+
+ [JsonPropertyName("elevenlabs_style")]
+ public double? ElevenlabsStyle { get; init; }
+
+ [JsonPropertyName("elevenlabs_speaker_boost")]
+ public bool? ElevenlabsSpeakerBoost { get; init; }
+
+ [JsonPropertyName("azure_voice_name")]
+ public string? AzureVoiceName { get; init; }
+
+ [JsonPropertyName("openai_voice_name")]
+ public CreateStreamRequestOpenaiVoiceName? OpenaiVoiceName { get; init; }
+
+ [JsonPropertyName("openai_tts_model")]
+ public CreateStreamRequestOpenaiTtsModel? OpenaiTtsModel { get; init; }
+
+ [JsonPropertyName("input_face")]
+ public string? InputFace { get; init; }
+
+ [JsonPropertyName("face_padding_top")]
+ public int? FacePaddingTop { get; init; }
+
+ [JsonPropertyName("face_padding_bottom")]
+ public int? FacePaddingBottom { get; init; }
+
+ [JsonPropertyName("face_padding_left")]
+ public int? FacePaddingLeft { get; init; }
+
+ [JsonPropertyName("face_padding_right")]
+ public int? FacePaddingRight { get; init; }
+
+ [JsonPropertyName("sadtalker_settings")]
+ public SadTalkerSettings? SadtalkerSettings { get; init; }
+
+ ///
+ /// Use `input_prompt` instead
+ ///
+ [JsonPropertyName("input_text")]
+ public string? InputText { get; init; }
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestAsrModel.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestAsrModel.cs
new file mode 100644
index 0000000..65a9a9a
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestAsrModel.cs
@@ -0,0 +1,51 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestAsrModel
+{
+ [EnumMember(Value = "whisper_large_v2")]
+ WhisperLargeV2,
+
+ [EnumMember(Value = "whisper_large_v3")]
+ WhisperLargeV3,
+
+ [EnumMember(Value = "whisper_hindi_large_v2")]
+ WhisperHindiLargeV2,
+
+ [EnumMember(Value = "whisper_telugu_large_v2")]
+ WhisperTeluguLargeV2,
+
+ [EnumMember(Value = "nemo_english")]
+ NemoEnglish,
+
+ [EnumMember(Value = "nemo_hindi")]
+ NemoHindi,
+
+ [EnumMember(Value = "vakyansh_bhojpuri")]
+ VakyanshBhojpuri,
+
+ [EnumMember(Value = "gcp_v1")]
+ GcpV1,
+
+ [EnumMember(Value = "usm")]
+ Usm,
+
+ [EnumMember(Value = "deepgram")]
+ Deepgram,
+
+ [EnumMember(Value = "azure")]
+ Azure,
+
+ [EnumMember(Value = "seamless_m4t")]
+ SeamlessM4T,
+
+ [EnumMember(Value = "mms_1b_all")]
+ Mms1BAll
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestCitationStyle.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestCitationStyle.cs
new file mode 100644
index 0000000..3c8815b
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestCitationStyle.cs
@@ -0,0 +1,60 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestCitationStyle
+{
+ [EnumMember(Value = "number")]
+ Number,
+
+ [EnumMember(Value = "title")]
+ Title,
+
+ [EnumMember(Value = "url")]
+ Url,
+
+ [EnumMember(Value = "symbol")]
+ Symbol,
+
+ [EnumMember(Value = "markdown")]
+ Markdown,
+
+ [EnumMember(Value = "html")]
+ Html,
+
+ [EnumMember(Value = "slack_mrkdwn")]
+ SlackMrkdwn,
+
+ [EnumMember(Value = "plaintext")]
+ Plaintext,
+
+ [EnumMember(Value = "number_markdown")]
+ NumberMarkdown,
+
+ [EnumMember(Value = "number_html")]
+ NumberHtml,
+
+ [EnumMember(Value = "number_slack_mrkdwn")]
+ NumberSlackMrkdwn,
+
+ [EnumMember(Value = "number_plaintext")]
+ NumberPlaintext,
+
+ [EnumMember(Value = "symbol_markdown")]
+ SymbolMarkdown,
+
+ [EnumMember(Value = "symbol_html")]
+ SymbolHtml,
+
+ [EnumMember(Value = "symbol_slack_mrkdwn")]
+ SymbolSlackMrkdwn,
+
+ [EnumMember(Value = "symbol_plaintext")]
+ SymbolPlaintext
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestEmbeddingModel.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestEmbeddingModel.cs
new file mode 100644
index 0000000..14b15f6
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestEmbeddingModel.cs
@@ -0,0 +1,39 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestEmbeddingModel
+{
+ [EnumMember(Value = "openai_3_large")]
+ Openai3Large,
+
+ [EnumMember(Value = "openai_3_small")]
+ Openai3Small,
+
+ [EnumMember(Value = "openai_ada_2")]
+ OpenaiAda2,
+
+ [EnumMember(Value = "e5_large_v2")]
+ E5LargeV2,
+
+ [EnumMember(Value = "e5_base_v2")]
+ E5BaseV2,
+
+ [EnumMember(Value = "multilingual_e5_base")]
+ MultilingualE5Base,
+
+ [EnumMember(Value = "multilingual_e5_large")]
+ MultilingualE5Large,
+
+ [EnumMember(Value = "gte_large")]
+ GteLarge,
+
+ [EnumMember(Value = "gte_base")]
+ GteBase
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestLipsyncModel.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestLipsyncModel.cs
new file mode 100644
index 0000000..0767b53
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestLipsyncModel.cs
@@ -0,0 +1,18 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestLipsyncModel
+{
+ [EnumMember(Value = "Wav2Lip")]
+ Wav2Lip,
+
+ [EnumMember(Value = "SadTalker")]
+ SadTalker
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiTtsModel.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiTtsModel.cs
new file mode 100644
index 0000000..3db4562
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiTtsModel.cs
@@ -0,0 +1,18 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestOpenaiTtsModel
+{
+ [EnumMember(Value = "tts_1")]
+ Tts1,
+
+ [EnumMember(Value = "tts_1_hd")]
+ Tts1Hd
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiVoiceName.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiVoiceName.cs
new file mode 100644
index 0000000..9012654
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestOpenaiVoiceName.cs
@@ -0,0 +1,30 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestOpenaiVoiceName
+{
+ [EnumMember(Value = "alloy")]
+ Alloy,
+
+ [EnumMember(Value = "echo")]
+ Echo,
+
+ [EnumMember(Value = "fable")]
+ Fable,
+
+ [EnumMember(Value = "onyx")]
+ Onyx,
+
+ [EnumMember(Value = "nova")]
+ Nova,
+
+ [EnumMember(Value = "shimmer")]
+ Shimmer
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestSelectedModel.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestSelectedModel.cs
new file mode 100644
index 0000000..bdd4819
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestSelectedModel.cs
@@ -0,0 +1,102 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestSelectedModel
+{
+ [EnumMember(Value = "gpt_4_o")]
+ Gpt4O,
+
+ [EnumMember(Value = "gpt_4_turbo_vision")]
+ Gpt4TurboVision,
+
+ [EnumMember(Value = "gpt_4_vision")]
+ Gpt4Vision,
+
+ [EnumMember(Value = "gpt_4_turbo")]
+ Gpt4Turbo,
+
+ [EnumMember(Value = "gpt_4")]
+ Gpt4,
+
+ [EnumMember(Value = "gpt_4_32k")]
+ Gpt432K,
+
+ [EnumMember(Value = "gpt_3_5_turbo")]
+ Gpt35Turbo,
+
+ [EnumMember(Value = "gpt_3_5_turbo_16k")]
+ Gpt35Turbo16K,
+
+ [EnumMember(Value = "gpt_3_5_turbo_instruct")]
+ Gpt35TurboInstruct,
+
+ [EnumMember(Value = "llama3_70b")]
+ Llama370B,
+
+ [EnumMember(Value = "llama3_8b")]
+ Llama38B,
+
+ [EnumMember(Value = "llama2_70b_chat")]
+ Llama270BChat,
+
+ [EnumMember(Value = "mixtral_8x7b_instruct_0_1")]
+ Mixtral8X7BInstruct01,
+
+ [EnumMember(Value = "gemma_7b_it")]
+ Gemma7BIt,
+
+ [EnumMember(Value = "gemini_1_5_pro")]
+ Gemini15Pro,
+
+ [EnumMember(Value = "gemini_1_pro_vision")]
+ Gemini1ProVision,
+
+ [EnumMember(Value = "gemini_1_pro")]
+ Gemini1Pro,
+
+ [EnumMember(Value = "palm2_chat")]
+ Palm2Chat,
+
+ [EnumMember(Value = "palm2_text")]
+ Palm2Text,
+
+ [EnumMember(Value = "claude_3_5_sonnet")]
+ Claude35Sonnet,
+
+ [EnumMember(Value = "claude_3_opus")]
+ Claude3Opus,
+
+ [EnumMember(Value = "claude_3_sonnet")]
+ Claude3Sonnet,
+
+ [EnumMember(Value = "claude_3_haiku")]
+ Claude3Haiku,
+
+ [EnumMember(Value = "sea_lion_7b_instruct")]
+ SeaLion7BInstruct,
+
+ [EnumMember(Value = "text_davinci_003")]
+ TextDavinci003,
+
+ [EnumMember(Value = "text_davinci_002")]
+ TextDavinci002,
+
+ [EnumMember(Value = "code_davinci_002")]
+ CodeDavinci002,
+
+ [EnumMember(Value = "text_curie_001")]
+ TextCurie001,
+
+ [EnumMember(Value = "text_babbage_001")]
+ TextBabbage001,
+
+ [EnumMember(Value = "text_ada_001")]
+ TextAda001
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTranslationModel.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTranslationModel.cs
new file mode 100644
index 0000000..96c8a76
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTranslationModel.cs
@@ -0,0 +1,18 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestTranslationModel
+{
+ [EnumMember(Value = "google")]
+ Google,
+
+ [EnumMember(Value = "ghana_nlp")]
+ GhanaNlp
+}
diff --git a/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTtsProvider.cs b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTtsProvider.cs
new file mode 100644
index 0000000..7216c88
--- /dev/null
+++ b/src/Gooey.net/CopilotIntegrations/Types/CreateStreamRequestTtsProvider.cs
@@ -0,0 +1,30 @@
+using System.Runtime.Serialization;
+using System.Text.Json.Serialization;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+[JsonConverter(typeof(StringEnumSerializer))]
+public enum CreateStreamRequestTtsProvider
+{
+ [EnumMember(Value = "GOOGLE_TTS")]
+ GoogleTts,
+
+ [EnumMember(Value = "ELEVEN_LABS")]
+ ElevenLabs,
+
+ [EnumMember(Value = "UBERDUCK")]
+ Uberduck,
+
+ [EnumMember(Value = "BARK")]
+ Bark,
+
+ [EnumMember(Value = "AZURE_TTS")]
+ AzureTts,
+
+ [EnumMember(Value = "OPEN_AI")]
+ OpenAi
+}
diff --git a/src/Gooey.net/Core/ClientOptions.cs b/src/Gooey.net/Core/ClientOptions.cs
new file mode 100644
index 0000000..b2c9627
--- /dev/null
+++ b/src/Gooey.net/Core/ClientOptions.cs
@@ -0,0 +1,29 @@
+using System.Net.Http;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net.Core;
+
+public partial class ClientOptions
+{
+ ///
+ /// The Base URL for the API.
+ ///
+ public string BaseUrl { get; init; } = Environments.DEFAULT;
+
+ ///
+ /// The http client used to make requests.
+ ///
+ public HttpClient HttpClient { get; init; } = new HttpClient();
+
+ ///
+ /// The http client used to make requests.
+ ///
+ public int MaxRetries { get; init; } = 2;
+
+ ///
+ /// The timeout for the request in seconds.
+ ///
+ public int TimeoutInSeconds { get; init; } = 30;
+}
diff --git a/src/Gooey.net/Core/CollectionItemSerializer.cs b/src/Gooey.net/Core/CollectionItemSerializer.cs
new file mode 100644
index 0000000..0cc2d9d
--- /dev/null
+++ b/src/Gooey.net/Core/CollectionItemSerializer.cs
@@ -0,0 +1,91 @@
+using System;
+using System.Collections.Generic;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Gooey.net.Core;
+
+///
+/// Json collection converter.
+///
+/// Type of item to convert.
+/// Converter to use for individual items.
+public class CollectionItemSerializer
+ : JsonConverter>
+ where TConverterType : JsonConverter
+{
+ ///
+ /// Reads a json string and deserializes it into an object.
+ ///
+ /// Json reader.
+ /// Type to convert.
+ /// Serializer options.
+ /// Created object.
+ public override IEnumerable? Read(
+ ref Utf8JsonReader reader,
+ System.Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ if (reader.TokenType == JsonTokenType.Null)
+ {
+ return default;
+ }
+
+ var jsonSerializerOptions = new JsonSerializerOptions(options);
+ jsonSerializerOptions.Converters.Clear();
+ jsonSerializerOptions.Converters.Add(Activator.CreateInstance());
+
+ var returnValue = new List();
+
+ while (reader.TokenType != JsonTokenType.EndArray)
+ {
+ if (reader.TokenType != JsonTokenType.StartArray)
+ {
+ var item = (TDatatype)(
+ JsonSerializer.Deserialize(ref reader, typeof(TDatatype), jsonSerializerOptions)
+ ?? throw new Exception(
+ $"Failed to deserialize collection item of type {typeof(TDatatype)}"
+ )
+ );
+ returnValue.Add(item);
+ }
+
+ reader.Read();
+ }
+
+ return returnValue;
+ }
+
+ ///
+ /// Writes a json string.
+ ///
+ /// Json writer.
+ /// Value to write.
+ /// Serializer options.
+ public override void Write(
+ Utf8JsonWriter writer,
+ IEnumerable? value,
+ JsonSerializerOptions options
+ )
+ {
+ if (value == null)
+ {
+ writer.WriteNullValue();
+ return;
+ }
+
+ JsonSerializerOptions jsonSerializerOptions = new JsonSerializerOptions(options);
+ jsonSerializerOptions.Converters.Clear();
+ jsonSerializerOptions.Converters.Add(Activator.CreateInstance());
+
+ writer.WriteStartArray();
+
+ foreach (var data in value)
+ {
+ JsonSerializer.Serialize(writer, data, jsonSerializerOptions);
+ }
+
+ writer.WriteEndArray();
+ }
+}
diff --git a/src/Gooey.net/Core/Environments.cs b/src/Gooey.net/Core/Environments.cs
new file mode 100644
index 0000000..ebcd95a
--- /dev/null
+++ b/src/Gooey.net/Core/Environments.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net.Core;
+
+public class Environments
+{
+ public static string DEFAULT = "https://api.gooey.ai";
+}
diff --git a/src/Gooey.net/Core/HttpMethodExtensions.cs b/src/Gooey.net/Core/HttpMethodExtensions.cs
new file mode 100644
index 0000000..440080d
--- /dev/null
+++ b/src/Gooey.net/Core/HttpMethodExtensions.cs
@@ -0,0 +1,8 @@
+using System.Net.Http;
+
+namespace Gooey.net.Core;
+
+public static class HttpMethodExtensions
+{
+ public static readonly HttpMethod Patch = new("PATCH");
+}
diff --git a/src/Gooey.net/Core/OneOfSerializer.cs b/src/Gooey.net/Core/OneOfSerializer.cs
new file mode 100644
index 0000000..afc06c0
--- /dev/null
+++ b/src/Gooey.net/Core/OneOfSerializer.cs
@@ -0,0 +1,67 @@
+using System.Reflection;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+using OneOf;
+
+namespace Gooey.net.Core;
+
+public class OneOfSerializer : JsonConverter
+ where TOneOf : IOneOf
+{
+ public override TOneOf? Read(
+ ref Utf8JsonReader reader,
+ System.Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ if (reader.TokenType is JsonTokenType.Null)
+ return default;
+
+ foreach (var (type, cast) in s_types)
+ {
+ try
+ {
+ var readerCopy = reader;
+ var result = JsonSerializer.Deserialize(ref readerCopy, type, options);
+ reader.Skip();
+ return (TOneOf)cast.Invoke(null, [result])!;
+ }
+ catch (JsonException) { }
+ }
+
+ throw new JsonException(
+ $"Cannot deserialize into one of the supported types for {typeToConvert}"
+ );
+ }
+
+ private static readonly (System.Type type, MethodInfo cast)[] s_types = GetOneOfTypes();
+
+ public override void Write(Utf8JsonWriter writer, TOneOf value, JsonSerializerOptions options)
+ {
+ JsonSerializer.Serialize(writer, value.Value, options);
+ }
+
+ private static (System.Type type, MethodInfo cast)[] GetOneOfTypes()
+ {
+ var casts = typeof(TOneOf)
+ .GetRuntimeMethods()
+ .Where(m => m.IsSpecialName && m.Name == "op_Implicit")
+ .ToArray();
+ var type = typeof(TOneOf);
+ while (type != null)
+ {
+ if (
+ type.IsGenericType
+ && (type.Name.StartsWith("OneOf`") || type.Name.StartsWith("OneOfBase`"))
+ )
+ {
+ return type.GetGenericArguments()
+ .Select(t => (t, casts.First(c => c.GetParameters()[0].ParameterType == t)))
+ .ToArray();
+ }
+
+ type = type.BaseType;
+ }
+ throw new InvalidOperationException($"{typeof(TOneOf)} isn't OneOf or OneOfBase");
+ }
+}
diff --git a/src/Gooey.net/Core/RawClient.cs b/src/Gooey.net/Core/RawClient.cs
new file mode 100644
index 0000000..e6cdae9
--- /dev/null
+++ b/src/Gooey.net/Core/RawClient.cs
@@ -0,0 +1,120 @@
+using System.Net.Http;
+using System.Text;
+using System.Text.Json;
+
+namespace Gooey.net.Core;
+
+#nullable enable
+
+///
+/// Utility class for making raw HTTP requests to the API.
+///
+public class RawClient(Dictionary headers, ClientOptions clientOptions)
+{
+ ///
+ /// The http client used to make requests.
+ ///
+ private readonly ClientOptions _clientOptions = clientOptions;
+
+ ///
+ /// Global headers to be sent with every request.
+ ///
+ private readonly Dictionary _headers = headers;
+
+ public async Task MakeRequestAsync(BaseApiRequest request)
+ {
+ var url = BuildUrl(request.Path, request.Query);
+ var httpRequest = new HttpRequestMessage(request.Method, url);
+ if (request.ContentType != null)
+ {
+ request.Headers.Add("Content-Type", request.ContentType);
+ }
+ // Add global headers to the request
+ foreach (var header in _headers)
+ {
+ httpRequest.Headers.Add(header.Key, header.Value);
+ }
+ // Add request headers to the request
+ foreach (var header in request.Headers)
+ {
+ httpRequest.Headers.Add(header.Key, header.Value);
+ }
+ // Add the request body to the request
+ if (request is JsonApiRequest jsonRequest)
+ {
+ if (jsonRequest.Body != null)
+ {
+ var serializerOptions = new JsonSerializerOptions { WriteIndented = true, };
+ httpRequest.Content = new StringContent(
+ JsonSerializer.Serialize(jsonRequest.Body, serializerOptions),
+ Encoding.UTF8,
+ "application/json"
+ );
+ }
+ }
+ else if (request is StreamApiRequest { Body: not null } streamRequest)
+ {
+ httpRequest.Content = new StreamContent(streamRequest.Body);
+ }
+ // Send the request
+ var response = await _clientOptions.HttpClient.SendAsync(httpRequest);
+ return new ApiResponse { StatusCode = (int)response.StatusCode, Raw = response };
+ }
+
+ public record BaseApiRequest
+ {
+ public required HttpMethod Method { get; init; }
+
+ public required string Path { get; init; }
+
+ public string? ContentType { get; init; }
+
+ public Dictionary Query { get; init; } = new();
+
+ public Dictionary Headers { get; init; } = new();
+
+ public object? RequestOptions { get; init; }
+ }
+
+ ///
+ /// The request object to be sent for streaming uploads.
+ ///
+ public record StreamApiRequest : BaseApiRequest
+ {
+ public Stream? Body { get; init; }
+ }
+
+ ///
+ /// The request object to be sent for JSON APIs.
+ ///
+ public record JsonApiRequest : BaseApiRequest
+ {
+ public object? Body { get; init; }
+ }
+
+ ///
+ /// The response object returned from the API.
+ ///
+ public record ApiResponse
+ {
+ public required int StatusCode { get; init; }
+
+ public required HttpResponseMessage Raw { get; init; }
+ }
+
+ private string BuildUrl(string path, Dictionary query)
+ {
+ var trimmedBaseUrl = _clientOptions.BaseUrl.TrimEnd('/');
+ var trimmedBasePath = path.TrimStart('/');
+ var url = $"{trimmedBaseUrl}/{trimmedBasePath}";
+ if (query.Count <= 0)
+ return url;
+ url += "?";
+ url = query.Aggregate(
+ url,
+ (current, queryItem) => current + $"{queryItem.Key}={queryItem.Value}&"
+ );
+ url = url.Substring(0, url.Length - 1);
+ return url;
+ }
+}
diff --git a/src/Gooey.net/Core/StringEnumSerializer.cs b/src/Gooey.net/Core/StringEnumSerializer.cs
new file mode 100644
index 0000000..4cf7be2
--- /dev/null
+++ b/src/Gooey.net/Core/StringEnumSerializer.cs
@@ -0,0 +1,53 @@
+using System.Runtime.Serialization;
+using System.Text.Json;
+using System.Text.Json.Serialization;
+
+namespace Gooey.net.Core;
+
+public class StringEnumSerializer : JsonConverter
+ where TEnum : struct, System.Enum
+{
+ private readonly Dictionary _enumToString = new();
+ private readonly Dictionary _stringToEnum = new();
+
+ public StringEnumSerializer()
+ {
+ var type = typeof(TEnum);
+ var values = Enum.GetValues(type);
+
+ foreach (var value in values)
+ {
+ var enumValue = (TEnum)value;
+ var enumMember = type.GetMember(enumValue.ToString())[0];
+ var attr = enumMember
+ .GetCustomAttributes(typeof(EnumMemberAttribute), false)
+ .Cast()
+ .FirstOrDefault();
+
+ var stringValue =
+ attr?.Value
+ ?? value.ToString()
+ ?? throw new Exception("Unexpected null enum toString value");
+
+ _enumToString.Add(enumValue, stringValue);
+ _stringToEnum.Add(stringValue, enumValue);
+ }
+ }
+
+ public override TEnum Read(
+ ref Utf8JsonReader reader,
+ System.Type typeToConvert,
+ JsonSerializerOptions options
+ )
+ {
+ var stringValue =
+ reader.GetString()
+ ?? throw new Exception("The JSON value could not be read as a string.");
+ return _stringToEnum.TryGetValue(stringValue, out var enumValue) ? enumValue : default;
+ }
+
+ public override void Write(Utf8JsonWriter writer, TEnum value, JsonSerializerOptions options)
+ {
+ writer.WriteStringValue(_enumToString[value]);
+ }
+}
diff --git a/src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/CreateAPerfectSeoOptimizedTitleParagraphClient.cs b/src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/CreateAPerfectSeoOptimizedTitleParagraphClient.cs
new file mode 100644
index 0000000..76dcd18
--- /dev/null
+++ b/src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/CreateAPerfectSeoOptimizedTitleParagraphClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class CreateAPerfectSeoOptimizedTitleParagraphClient
+{
+ private RawClient _client;
+
+ public CreateAPerfectSeoOptimizedTitleParagraphClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task SeoSummaryAsync(SeoSummaryPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/SEOSummary/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncSeoSummaryAsync(SeoSummaryPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/SEOSummary/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusSeoSummaryAsync(
+ StatusSeoSummaryRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/SEOSummary/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/Requests/StatusSeoSummaryRequest.cs b/src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/Requests/StatusSeoSummaryRequest.cs
new file mode 100644
index 0000000..17d53fb
--- /dev/null
+++ b/src/Gooey.net/CreateAPerfectSeoOptimizedTitleParagraph/Requests/StatusSeoSummaryRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusSeoSummaryRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/EditAnImageWithAiPrompt/EditAnImageWithAiPromptClient.cs b/src/Gooey.net/EditAnImageWithAiPrompt/EditAnImageWithAiPromptClient.cs
new file mode 100644
index 0000000..c6a2aee
--- /dev/null
+++ b/src/Gooey.net/EditAnImageWithAiPrompt/EditAnImageWithAiPromptClient.cs
@@ -0,0 +1,73 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class EditAnImageWithAiPromptClient
+{
+ private RawClient _client;
+
+ public EditAnImageWithAiPromptClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task Img2ImgAsync(Img2ImgPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/Img2Img/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncImg2ImgAsync(Img2ImgPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/Img2Img/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusImg2ImgAsync(StatusImg2ImgRequest request)
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/Img2Img/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/EditAnImageWithAiPrompt/Requests/StatusImg2ImgRequest.cs b/src/Gooey.net/EditAnImageWithAiPrompt/Requests/StatusImg2ImgRequest.cs
new file mode 100644
index 0000000..ed4ea8b
--- /dev/null
+++ b/src/Gooey.net/EditAnImageWithAiPrompt/Requests/StatusImg2ImgRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusImg2ImgRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/Embeddings/EmbeddingsClient.cs b/src/Gooey.net/Embeddings/EmbeddingsClient.cs
new file mode 100644
index 0000000..494417a
--- /dev/null
+++ b/src/Gooey.net/Embeddings/EmbeddingsClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class EmbeddingsClient
+{
+ private RawClient _client;
+
+ public EmbeddingsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task PostAsync(EmbeddingsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/embeddings/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncEmbeddingsAsync(EmbeddingsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/embeddings/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusEmbeddingsAsync(
+ StatusEmbeddingsRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/embeddings/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/Embeddings/Requests/StatusEmbeddingsRequest.cs b/src/Gooey.net/Embeddings/Requests/StatusEmbeddingsRequest.cs
new file mode 100644
index 0000000..faccde9
--- /dev/null
+++ b/src/Gooey.net/Embeddings/Requests/StatusEmbeddingsRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusEmbeddingsRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/Evaluator/EvaluatorClient.cs b/src/Gooey.net/Evaluator/EvaluatorClient.cs
new file mode 100644
index 0000000..fb7895a
--- /dev/null
+++ b/src/Gooey.net/Evaluator/EvaluatorClient.cs
@@ -0,0 +1,73 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class EvaluatorClient
+{
+ private RawClient _client;
+
+ public EvaluatorClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task BulkEvalAsync(BulkEvalPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/bulk-eval/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncBulkEvalAsync(BulkEvalPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/bulk-eval/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusBulkEvalAsync(StatusBulkEvalRequest request)
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/bulk-eval/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/Evaluator/Requests/StatusBulkEvalRequest.cs b/src/Gooey.net/Evaluator/Requests/StatusBulkEvalRequest.cs
new file mode 100644
index 0000000..a1905a9
--- /dev/null
+++ b/src/Gooey.net/Evaluator/Requests/StatusBulkEvalRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusBulkEvalRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/Functions/FunctionsClient.cs b/src/Gooey.net/Functions/FunctionsClient.cs
new file mode 100644
index 0000000..4b4e9b6
--- /dev/null
+++ b/src/Gooey.net/Functions/FunctionsClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class FunctionsClient
+{
+ private RawClient _client;
+
+ public FunctionsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task PostAsync(FunctionsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/functions/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncFunctionsAsync(FunctionsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/functions/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusFunctionsAsync(
+ StatusFunctionsRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/functions/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/Functions/Requests/StatusFunctionsRequest.cs b/src/Gooey.net/Functions/Requests/StatusFunctionsRequest.cs
new file mode 100644
index 0000000..889f283
--- /dev/null
+++ b/src/Gooey.net/Functions/Requests/StatusFunctionsRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusFunctionsRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/GeneratePeopleAlsoAskSeoContent/GeneratePeopleAlsoAskSeoContentClient.cs b/src/Gooey.net/GeneratePeopleAlsoAskSeoContent/GeneratePeopleAlsoAskSeoContentClient.cs
new file mode 100644
index 0000000..518ec14
--- /dev/null
+++ b/src/Gooey.net/GeneratePeopleAlsoAskSeoContent/GeneratePeopleAlsoAskSeoContentClient.cs
@@ -0,0 +1,77 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class GeneratePeopleAlsoAskSeoContentClient
+{
+ private RawClient _client;
+
+ public GeneratePeopleAlsoAskSeoContentClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task RelatedQnaMakerAsync(RelatedQnAPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/related-qna-maker/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncRelatedQnaMakerAsync(
+ RelatedQnAPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/related-qna-maker/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusRelatedQnaMakerAsync(
+ StatusRelatedQnaMakerRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/related-qna-maker/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/GeneratePeopleAlsoAskSeoContent/Requests/StatusRelatedQnaMakerRequest.cs b/src/Gooey.net/GeneratePeopleAlsoAskSeoContent/Requests/StatusRelatedQnaMakerRequest.cs
new file mode 100644
index 0000000..ab56f73
--- /dev/null
+++ b/src/Gooey.net/GeneratePeopleAlsoAskSeoContent/Requests/StatusRelatedQnaMakerRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusRelatedQnaMakerRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/GenerateProductPhotoBackgrounds/GenerateProductPhotoBackgroundsClient.cs b/src/Gooey.net/GenerateProductPhotoBackgrounds/GenerateProductPhotoBackgroundsClient.cs
new file mode 100644
index 0000000..f5e4ae8
--- /dev/null
+++ b/src/Gooey.net/GenerateProductPhotoBackgrounds/GenerateProductPhotoBackgroundsClient.cs
@@ -0,0 +1,79 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class GenerateProductPhotoBackgroundsClient
+{
+ private RawClient _client;
+
+ public GenerateProductPhotoBackgroundsClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task ObjectInpaintingAsync(
+ ObjectInpaintingPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/ObjectInpainting/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncObjectInpaintingAsync(
+ ObjectInpaintingPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/ObjectInpainting/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusObjectInpaintingAsync(
+ StatusObjectInpaintingRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/ObjectInpainting/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/GenerateProductPhotoBackgrounds/Requests/StatusObjectInpaintingRequest.cs b/src/Gooey.net/GenerateProductPhotoBackgrounds/Requests/StatusObjectInpaintingRequest.cs
new file mode 100644
index 0000000..02ba988
--- /dev/null
+++ b/src/Gooey.net/GenerateProductPhotoBackgrounds/Requests/StatusObjectInpaintingRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusObjectInpaintingRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/Gooey.cs b/src/Gooey.net/Gooey.cs
new file mode 100644
index 0000000..3bfb5b2
--- /dev/null
+++ b/src/Gooey.net/Gooey.cs
@@ -0,0 +1,134 @@
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public partial class Gooey
+{
+ private RawClient _client;
+
+ public Gooey(string? authorization = null, ClientOptions? clientOptions = null)
+ {
+ _client = new RawClient(
+ new Dictionary()
+ {
+ { "Authorization", authorization },
+ { "X-Fern-Language", "C#" },
+ { "X-Fern-SDK-Name", "Gooey.net" },
+ { "X-Fern-SDK-Version", "0.0.0" },
+ },
+ clientOptions ?? new ClientOptions()
+ );
+ CopilotIntegrations = new CopilotIntegrationsClient(_client);
+ CopilotForYourEnterprise = new CopilotForYourEnterpriseClient(_client);
+ AiAnimationGenerator = new AiAnimationGeneratorClient(_client);
+ AiArtQrCode = new AiArtQrCodeClient(_client);
+ GeneratePeopleAlsoAskSeoContent = new GeneratePeopleAlsoAskSeoContentClient(_client);
+ CreateAPerfectSeoOptimizedTitleParagraph =
+ new CreateAPerfectSeoOptimizedTitleParagraphClient(_client);
+ WebSearchGpt3 = new WebSearchGpt3Client(_client);
+ ProfileLookupGpt3ForAiPersonalizedEmails =
+ new ProfileLookupGpt3ForAiPersonalizedEmailsClient(_client);
+ BulkRunner = new BulkRunnerClient(_client);
+ Evaluator = new EvaluatorClient(_client);
+ SyntheticDataMakerForVideosPdFs = new SyntheticDataMakerForVideosPdFsClient(_client);
+ LargeLanguageModelsGpt3 = new LargeLanguageModelsGpt3Client(_client);
+ SearchYourDocsWithGpt = new SearchYourDocsWithGptClient(_client);
+ SmartGpt = new SmartGptClient(_client);
+ SummarizeYourDocsWithGpt = new SummarizeYourDocsWithGptClient(_client);
+ Functions = new FunctionsClient(_client);
+ LipSyncing = new LipSyncingClient(_client);
+ LipsyncVideoWithAnyText = new LipsyncVideoWithAnyTextClient(_client);
+ CompareAiVoiceGenerators = new CompareAiVoiceGeneratorsClient(_client);
+ SpeechRecognitionTranslation = new SpeechRecognitionTranslationClient(_client);
+ TextGuidedAudioGenerator = new TextGuidedAudioGeneratorClient(_client);
+ CompareAiTranslations = new CompareAiTranslationsClient(_client);
+ EditAnImageWithAiPrompt = new EditAnImageWithAiPromptClient(_client);
+ CompareAiImageGenerators = new CompareAiImageGeneratorsClient(_client);
+ GenerateProductPhotoBackgrounds = new GenerateProductPhotoBackgroundsClient(_client);
+ AiImageWithAFace = new AiImageWithAFaceClient(_client);
+ AiGeneratedPhotoFromEmailProfileLookup = new AiGeneratedPhotoFromEmailProfileLookupClient(
+ _client
+ );
+ RenderImageSearchResultsWithAi = new RenderImageSearchResultsWithAiClient(_client);
+ AiBackgroundChanger = new AiBackgroundChangerClient(_client);
+ CompareAiImageUpscalers = new CompareAiImageUpscalersClient(_client);
+ ChyronPlantBot = new ChyronPlantBotClient(_client);
+ LetterWriter = new LetterWriterClient(_client);
+ Embeddings = new EmbeddingsClient(_client);
+ PeopleAlsoAskAnswersFromADoc = new PeopleAlsoAskAnswersFromADocClient(_client);
+ Misc = new MiscClient(_client);
+ }
+
+ public CopilotIntegrationsClient CopilotIntegrations { get; init; }
+
+ public CopilotForYourEnterpriseClient CopilotForYourEnterprise { get; init; }
+
+ public AiAnimationGeneratorClient AiAnimationGenerator { get; init; }
+
+ public AiArtQrCodeClient AiArtQrCode { get; init; }
+
+ public GeneratePeopleAlsoAskSeoContentClient GeneratePeopleAlsoAskSeoContent { get; init; }
+
+ public CreateAPerfectSeoOptimizedTitleParagraphClient CreateAPerfectSeoOptimizedTitleParagraph { get; init; }
+
+ public WebSearchGpt3Client WebSearchGpt3 { get; init; }
+
+ public ProfileLookupGpt3ForAiPersonalizedEmailsClient ProfileLookupGpt3ForAiPersonalizedEmails { get; init; }
+
+ public BulkRunnerClient BulkRunner { get; init; }
+
+ public EvaluatorClient Evaluator { get; init; }
+
+ public SyntheticDataMakerForVideosPdFsClient SyntheticDataMakerForVideosPdFs { get; init; }
+
+ public LargeLanguageModelsGpt3Client LargeLanguageModelsGpt3 { get; init; }
+
+ public SearchYourDocsWithGptClient SearchYourDocsWithGpt { get; init; }
+
+ public SmartGptClient SmartGpt { get; init; }
+
+ public SummarizeYourDocsWithGptClient SummarizeYourDocsWithGpt { get; init; }
+
+ public FunctionsClient Functions { get; init; }
+
+ public LipSyncingClient LipSyncing { get; init; }
+
+ public LipsyncVideoWithAnyTextClient LipsyncVideoWithAnyText { get; init; }
+
+ public CompareAiVoiceGeneratorsClient CompareAiVoiceGenerators { get; init; }
+
+ public SpeechRecognitionTranslationClient SpeechRecognitionTranslation { get; init; }
+
+ public TextGuidedAudioGeneratorClient TextGuidedAudioGenerator { get; init; }
+
+ public CompareAiTranslationsClient CompareAiTranslations { get; init; }
+
+ public EditAnImageWithAiPromptClient EditAnImageWithAiPrompt { get; init; }
+
+ public CompareAiImageGeneratorsClient CompareAiImageGenerators { get; init; }
+
+ public GenerateProductPhotoBackgroundsClient GenerateProductPhotoBackgrounds { get; init; }
+
+ public AiImageWithAFaceClient AiImageWithAFace { get; init; }
+
+ public AiGeneratedPhotoFromEmailProfileLookupClient AiGeneratedPhotoFromEmailProfileLookup { get; init; }
+
+ public RenderImageSearchResultsWithAiClient RenderImageSearchResultsWithAi { get; init; }
+
+ public AiBackgroundChangerClient AiBackgroundChanger { get; init; }
+
+ public CompareAiImageUpscalersClient CompareAiImageUpscalers { get; init; }
+
+ public ChyronPlantBotClient ChyronPlantBot { get; init; }
+
+ public LetterWriterClient LetterWriter { get; init; }
+
+ public EmbeddingsClient Embeddings { get; init; }
+
+ public PeopleAlsoAskAnswersFromADocClient PeopleAlsoAskAnswersFromADoc { get; init; }
+
+ public MiscClient Misc { get; init; }
+}
diff --git a/src/Gooey.net/Gooey.net.csproj b/src/Gooey.net/Gooey.net.csproj
new file mode 100644
index 0000000..8fb8aac
--- /dev/null
+++ b/src/Gooey.net/Gooey.net.csproj
@@ -0,0 +1,45 @@
+
+
+
+
+ net462;net8.0;net7.0;net6.0;netstandard2.0
+ enable
+ false
+ 12
+ enable
+ 0.0.0
+ README.md
+ https://github.com/GooeyAI/csharp-sdk
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Gooey.net/LargeLanguageModelsGpt3/LargeLanguageModelsGpt3Client.cs b/src/Gooey.net/LargeLanguageModelsGpt3/LargeLanguageModelsGpt3Client.cs
new file mode 100644
index 0000000..80a775a
--- /dev/null
+++ b/src/Gooey.net/LargeLanguageModelsGpt3/LargeLanguageModelsGpt3Client.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class LargeLanguageModelsGpt3Client
+{
+ private RawClient _client;
+
+ public LargeLanguageModelsGpt3Client(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task CompareLlmAsync(CompareLlmPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/CompareLLM/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncCompareLlmAsync(CompareLlmPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/CompareLLM/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusCompareLlmAsync(
+ StatusCompareLlmRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/CompareLLM/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/LargeLanguageModelsGpt3/Requests/StatusCompareLlmRequest.cs b/src/Gooey.net/LargeLanguageModelsGpt3/Requests/StatusCompareLlmRequest.cs
new file mode 100644
index 0000000..8def5d6
--- /dev/null
+++ b/src/Gooey.net/LargeLanguageModelsGpt3/Requests/StatusCompareLlmRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusCompareLlmRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/LetterWriter/LetterWriterClient.cs b/src/Gooey.net/LetterWriter/LetterWriterClient.cs
new file mode 100644
index 0000000..d40242f
--- /dev/null
+++ b/src/Gooey.net/LetterWriter/LetterWriterClient.cs
@@ -0,0 +1,77 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class LetterWriterClient
+{
+ private RawClient _client;
+
+ public LetterWriterClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task LetterWriterAsync(LetterWriterPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/LetterWriter/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncLetterWriterAsync(
+ LetterWriterPageRequest request
+ )
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/LetterWriter/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusLetterWriterAsync(
+ StatusLetterWriterRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/LetterWriter/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/LetterWriter/Requests/StatusLetterWriterRequest.cs b/src/Gooey.net/LetterWriter/Requests/StatusLetterWriterRequest.cs
new file mode 100644
index 0000000..4906654
--- /dev/null
+++ b/src/Gooey.net/LetterWriter/Requests/StatusLetterWriterRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusLetterWriterRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/LipSyncing/LipSyncingClient.cs b/src/Gooey.net/LipSyncing/LipSyncingClient.cs
new file mode 100644
index 0000000..0cb55eb
--- /dev/null
+++ b/src/Gooey.net/LipSyncing/LipSyncingClient.cs
@@ -0,0 +1,73 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class LipSyncingClient
+{
+ private RawClient _client;
+
+ public LipSyncingClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task LipsyncAsync(LipsyncPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/Lipsync/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncLipsyncAsync(LipsyncPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/Lipsync/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusLipsyncAsync(StatusLipsyncRequest request)
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/Lipsync/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/LipSyncing/Requests/StatusLipsyncRequest.cs b/src/Gooey.net/LipSyncing/Requests/StatusLipsyncRequest.cs
new file mode 100644
index 0000000..0f7adba
--- /dev/null
+++ b/src/Gooey.net/LipSyncing/Requests/StatusLipsyncRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusLipsyncRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/LipsyncVideoWithAnyText/LipsyncVideoWithAnyTextClient.cs b/src/Gooey.net/LipsyncVideoWithAnyText/LipsyncVideoWithAnyTextClient.cs
new file mode 100644
index 0000000..ce33e37
--- /dev/null
+++ b/src/Gooey.net/LipsyncVideoWithAnyText/LipsyncVideoWithAnyTextClient.cs
@@ -0,0 +1,75 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class LipsyncVideoWithAnyTextClient
+{
+ private RawClient _client;
+
+ public LipsyncVideoWithAnyTextClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task LipsyncTtsAsync(LipsyncTtsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v2/LipsyncTTS/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task AsyncLipsyncTtsAsync(LipsyncTtsPageRequest request)
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Post,
+ Path = "v3/LipsyncTTS/async/",
+ Body = request
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task StatusLipsyncTtsAsync(
+ StatusLipsyncTtsRequest request
+ )
+ {
+ var _query = new Dictionary() { { "run_id", request.RunId }, };
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest
+ {
+ Method = HttpMethod.Get,
+ Path = "v3/LipsyncTTS/status/",
+ Query = _query
+ }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+}
diff --git a/src/Gooey.net/LipsyncVideoWithAnyText/Requests/StatusLipsyncTtsRequest.cs b/src/Gooey.net/LipsyncVideoWithAnyText/Requests/StatusLipsyncTtsRequest.cs
new file mode 100644
index 0000000..c86de8a
--- /dev/null
+++ b/src/Gooey.net/LipsyncVideoWithAnyText/Requests/StatusLipsyncTtsRequest.cs
@@ -0,0 +1,6 @@
+namespace Gooey.net;
+
+public record StatusLipsyncTtsRequest
+{
+ public required string RunId { get; init; }
+}
diff --git a/src/Gooey.net/Misc/MiscClient.cs b/src/Gooey.net/Misc/MiscClient.cs
new file mode 100644
index 0000000..40b2dce
--- /dev/null
+++ b/src/Gooey.net/Misc/MiscClient.cs
@@ -0,0 +1,71 @@
+using System.Net.Http;
+using System.Text.Json;
+using Gooey.net;
+using Gooey.net.Core;
+
+#nullable enable
+
+namespace Gooey.net;
+
+public class MiscClient
+{
+ private RawClient _client;
+
+ public MiscClient(RawClient client)
+ {
+ _client = client;
+ }
+
+ public async Task GetBalanceAsync()
+ {
+ var response = await _client.MakeRequestAsync(
+ new RawClient.JsonApiRequest { Method = HttpMethod.Get, Path = "v1/balance/" }
+ );
+ var responseBody = await response.Raw.Content.ReadAsStringAsync();
+ if (response.StatusCode is >= 200 and < 400)
+ {
+ return JsonSerializer.Deserialize(responseBody)!;
+ }
+ throw new Exception(responseBody);
+ }
+
+ public async Task