Decouples the shared model components between Live and PreRecorded. This will introduce complexity when doing API versioning if they are tightly coupled. There may be a bump to v2/listen for the PreRecorded client but Live client will stay on v1/listen. This doesn't create a dependency on something that is shared between the two. (This will be cleaned up later... since there are some deprecated options exposed. Please see note below.)
Removes some redundancy in the model names. Since we have broken the model components into Live, PreRecorded, OnPrem, Manage, and soon to be Analyze... this removes the folder name Live from the class name, for example LiveTranscriptionResponse.cs -> TranscriptionResponse.cs since the class is scoped in the Live/v1/TranscriptionResponse.cs module.
This shortens the names for Schema and Response class names in the Manage model. Since nearly every Manage API call requires a project ID (with the exception of project calls), we can reduce the name of classes for convenience. For example, GetProjectInvitesResponse -> InvitesResponse and CreateProjectKeySchema -> KeySchema. The likelihood of the API creating naming collision is low since they probably wont change, and even if they do, we can:
Create a non-colliding name for the new class
Worst case (avoid at all costs), can now version the model and could more granular as needed.
Moves the remaining shared class DeepgramClientOptions from Shared/v1 to Authenticate/v1. This Authenticate/v1 can and will be shared with OnPrem auth in a bit.
Renames DeepgramHttpClient to Encapsulations since the function of the classes within do exactly that, plus to be inline with Abstractions name. For example, there is an HttpClientWrapper class that just encapsulates the native .NET HttpClient.
All unit tests pass with these updated names, modules, etc.
TODOs in subsequent PRs:
Fix the README
Perform an audit of existing Schema Options (input) and Response (output) based on the master document.
This PR makes the following changes:
v2/listen
for the PreRecorded client but Live client will stay onv1/listen
. This doesn't create a dependency on something that is shared between the two. (This will be cleaned up later... since there are some deprecated options exposed. Please see note below.)Live
,PreRecorded
,OnPrem
,Manage
, and soon to beAnalyze
... this removes the folder nameLive
from the class name, for exampleLiveTranscriptionResponse.cs
->TranscriptionResponse.cs
since the class is scoped in theLive/v1/TranscriptionResponse.cs
module.Manage
model. Since nearly every Manage API call requires a project ID (with the exception of project calls), we can reduce the name of classes for convenience. For example,GetProjectInvitesResponse
->InvitesResponse
andCreateProjectKeySchema
->KeySchema
. The likelihood of the API creating naming collision is low since they probably wont change, and even if they do, we can:DeepgramClientOptions
fromShared/v1
toAuthenticate/v1
. ThisAuthenticate/v1
can and will be shared withOnPrem
auth in a bit.DeepgramHttpClient
toEncapsulations
since the function of the classes within do exactly that, plus to be inline withAbstractions
name. For example, there is anHttpClientWrapper
class that just encapsulates the native .NET HttpClient.All unit tests pass with these updated names, modules, etc.
TODOs in subsequent PRs: