@novo-learning/novo-sdk
Version:
SDK for the Novolanguage Speech Analysis API
1 lines • 19 kB
JSON
{"openapi":"3.0.0","paths":{"/publishers":{"get":{"operationId":"findAllPublishers","summary":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublisherDescriptorDto"}}}}}},"tags":["publishers"]},"post":{"operationId":"addPublisher","summary":"","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublisherDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePublisherDto"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublisherResponseDto"}}}}},"tags":["publishers"]}},"/publishers/usage":{"get":{"operationId":"getUsageSummary","summary":"","parameters":[{"name":"from","required":true,"in":"query","description":"The first day of usage report in the format YYYY-MM-DD","schema":{"format":"date-time","type":"string"}},{"name":"to","required":true,"in":"query","description":"The last day of usage report in the format YYYY-MM-DD","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":""}},"tags":["publishers"]}},"/publishers/{id}":{"get":{"operationId":"getAndValidatePublisher","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"apiKey","required":false,"in":"query","description":"if supplied, the publisher is validated and no JWT token is necessary","schema":{"type":"string"}},{"name":"anonymous","required":false,"in":"query","description":"if supplied, the publisher (id) is returned if they allow anonymous login, no JWT necessary","schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublisherResponseDto"}}}}},"tags":["publishers"]},"patch":{"operationId":"updatePublisher","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"apiKey","required":false,"in":"query","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePublisherDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublisherResponseDto"}}}}},"tags":["publishers"]},"delete":{"operationId":"deletePublisher","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["publishers"]}},"/publishers/{id}/oauth":{"get":{"operationId":"getPublisherOAuthSettings","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthSettingsDto"}}}},"404":{"description":""}},"tags":["publishers"]}},"/publishers/requestAccount":{"post":{"operationId":"requestAccount","summary":"","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestAccountDto"}}}},"responses":{"200":{"description":""},"201":{"description":""}},"tags":["publishers"]}},"/publishers/{id}/usage":{"get":{"operationId":"getPublisherUsageSummary","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"from","required":true,"in":"query","description":"The first day of usage report in the format YYYY-MM-DD","schema":{"format":"date-time","type":"string"}},{"name":"to","required":true,"in":"query","description":"The last day of usage report in the format YYYY-MM-DD","schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":""}},"tags":["publishers"]},"post":{"operationId":"addUsageData","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"responses":{"200":{"description":""},"201":{"description":""},"404":{"description":""}},"tags":["publishers"]}},"/configurations":{"get":{"operationId":"findAllConfigurations","summary":"","parameters":[],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConfigurationResponseDtoV1"}}}}}},"tags":["configurations"]},"post":{"operationId":"createConfiguration","summary":"","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationCreateDtoV1"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponseDtoV1"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponseDtoV1"}}}}},"tags":["configurations"]}},"/configurations/{id}":{"get":{"operationId":"findConfiguration","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponseDtoV1"}}}}},"tags":["configurations"]},"post":{"operationId":"editConfiguration","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationDtoV1"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponseDtoV1"}}}},"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigurationResponseDtoV1"}}}}},"tags":["configurations"]},"delete":{"operationId":"deleteConfiguration","summary":"","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["configurations"]}}},"info":{"title":"Publisher API","description":"the publisher api stores publishers","version":"1.0","contact":{}},"tags":[{"name":"publishers","description":""}],"servers":[],"components":{"schemas":{"PublisherDescriptorDto":{"type":"object","properties":{"name":{"type":"string"},"id":{"type":"string"}},"required":["name","id"]},"OAuthSettingsDto":{"type":"object","properties":{"authorizationURL":{"type":"string"},"tokenURL":{"type":"string"},"clientID":{"type":"string"},"clientSecret":{"type":"string"}},"required":["authorizationURL","tokenURL","clientID","clientSecret"]},"AuthSettingsDto":{"type":"object","properties":{"oauth":{"description":"Authentication settings","allOf":[{"$ref":"#/components/schemas/OAuthSettingsDto"}]},"apiKey":{"type":"string","description":"Api key a publisher uses to authenticate with the auth-api to get signed JWT tokens"},"allowAnonymousLogin":{"type":"boolean","description":"Whether a user is allowed to log in anonymously, e.g. to try out the application"}},"required":["apiKey","allowAnonymousLogin"]},"LogSettingsDto":{"type":"object","properties":{"confirmAudioReceived":{"type":"boolean","description":"The log settings for this publisher"}}},"FeedbackSettingsDto":{"type":"object","properties":{"correctness":{"type":"boolean"},"phone":{"type":"boolean"},"timing":{"type":"boolean"},"confidence":{"type":"boolean"},"alignment":{"type":"boolean"},"accuracy":{"type":"boolean"},"fluency":{"type":"boolean"},"attempt":{"enum":["immediate","none","delayed"],"type":"string"},"purpose":{"enum":["reading","pronunciation"],"type":"string"},"detectSpeech":{"type":"boolean"},"duration":{"type":"boolean"},"letterAlignment":{"type":"boolean"},"pauses":{"type":"boolean"},"intonation":{"type":"boolean"},"evaluateWordFeature":{"type":"boolean"}}},"IntermediateResultSettingsDto":{"type":"object","properties":{"eosDetection":{"type":"boolean","description":"When true sends an eos signal when the entire prompt has been recognized","default":false},"reportRecognized":{"type":"boolean","description":"When true sends the prompt up until the next word to be recognized","default":false},"speechTimeout":{"type":"number","minimum":-1,"description":"Timeout in milliseconds for speech detection. When the timeout has passed a timeout signal is given"}},"required":["speechTimeout"]},"PermissionType":{"type":"string","description":"Permissions the publisher can give their users through the auth-api","enum":["attempt_read_result","attempt_read_audio","attempt_read_group_result","attempt_read_group_audio","attempt_edit","attempt_delete","attempt_maintenance","exercise_edit","exercise_delete","exercise_maintenance","publisher_edit","publisher_read","publisher_maintenance","publisher_configuration_read","publisher_configuration_edit","pronunciation_edit"]},"LanguageCode":{"type":"string","description":"The language for which this is a configuration","enum":["ar-idn","de","en","nl","zh","fr","es"]},"ModelConfigurationDto":{"type":"object","properties":{"model":{"type":"string","description":"The identifier for the acoustic model"},"phoneSet":{"enum":["cmu69","novo-nl37","novo-cmn111","novo-fr37","novo-fr-nl61","novo-de45","novo-es27","novo-ar38","novo-ar37"],"type":"string","description":"Phone set identifier"}},"required":["model","phoneSet"]},"LanguageSettingsDto":{"type":"object","properties":{"configurations":{"type":"object","description":"Language configurations","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ModelConfigurationDto"}}}}},"PublisherSettingsDto":{"type":"object","properties":{"retentionDays":{"type":"number","minimum":-1,"description":"Number of days to retain analysis data in the data-api, use -1 to keep them forever"},"authSettings":{"description":"Authentication settings","allOf":[{"$ref":"#/components/schemas/AuthSettingsDto"}]},"logSettings":{"description":"Log settings","allOf":[{"$ref":"#/components/schemas/LogSettingsDto"}]},"feedbackSettings":{"description":"Feedback settings to include in the output of the speech api","allOf":[{"$ref":"#/components/schemas/FeedbackSettingsDto"}]},"intermediateResultsSettings":{"description":"Feedback settings to include in the output of the speech api","allOf":[{"$ref":"#/components/schemas/IntermediateResultSettingsDto"}]},"allowedPermissions":{"type":"array","items":{"$ref":"#/components/schemas/PermissionType"}},"allowedLanguages":{"type":"array","items":{"$ref":"#/components/schemas/LanguageCode"}},"expirationDate":{"format":"date-time","type":"string","description":"The last day the publisher is able to generate access tokens"},"languageSettings":{"description":"Custom language settings for the publisher","allOf":[{"$ref":"#/components/schemas/LanguageSettingsDto"}]}},"required":["retentionDays","authSettings","logSettings","feedbackSettings","intermediateResultsSettings","allowedPermissions","allowedLanguages"]},"CreatePublisherDto":{"type":"object","properties":{"name":{"type":"string","description":"Publisher name"},"key":{"type":"string","description":"Identifier for the publisher. Used for authorization"},"settings":{"description":"Specific settings for the publisher. Include storage settings, recognition settings, etc.","allOf":[{"$ref":"#/components/schemas/PublisherSettingsDto"}]}},"required":["name","settings"]},"AuthSettingsResponseDto":{"type":"object","properties":{"allowAnonymousLogin":{"type":"boolean","description":"Is anonymous login enabled for this publisher"}},"required":["allowAnonymousLogin"]},"PublisherSettingsResponseDto":{"type":"object","properties":{"retentionDays":{"type":"number","description":"Number of days to retain analysis data in the data-api, use -1 to keep them forever","minimum":-1},"authSettings":{"description":"Authentication settings","allOf":[{"$ref":"#/components/schemas/AuthSettingsResponseDto"}]},"feedbackSettings":{"description":"Feedback settings to include in the output of the speech api","allOf":[{"$ref":"#/components/schemas/FeedbackSettingsDto"}]},"intermediateResultsSettings":{"description":"Feedback settings to include in the output of the speech api","allOf":[{"$ref":"#/components/schemas/IntermediateResultSettingsDto"}]},"logSettings":{"description":"Log settings","allOf":[{"$ref":"#/components/schemas/LogSettingsDto"}]},"languageSettings":{"description":"Language settings","allOf":[{"$ref":"#/components/schemas/LanguageSettingsDto"}]},"allowedPermissions":{"type":"array","items":{"$ref":"#/components/schemas/PermissionType"}},"allowedLanguages":{"type":"array","items":{"$ref":"#/components/schemas/LanguageCode"}},"expirationDate":{"type":"string","description":"The last day an access token can be issued by this publisher"}},"required":["retentionDays","authSettings","feedbackSettings","intermediateResultsSettings","logSettings","languageSettings","allowedPermissions","allowedLanguages"]},"PublisherResponseDto":{"type":"object","properties":{"id":{"type":"string","description":"Unique publisher id"},"name":{"type":"string","description":"Publisher name"},"settings":{"description":"Specific settings for the publisher. Include storage settings, recognition settings, etc.","allOf":[{"$ref":"#/components/schemas/PublisherSettingsResponseDto"}]}},"required":["id"]},"UpdateOAuthSettingsDto":{"type":"object","properties":{"authorizationURL":{"type":"string"},"tokenURL":{"type":"string"},"clientID":{"type":"string"},"clientSecret":{"type":"string"}}},"UpdateAuthSettingsDto":{"type":"object","properties":{"apiKey":{"type":"string","description":"Api key a publisher uses to authenticate with the auth-api to get signed JWT tokens"},"allowAnonymousLogin":{"type":"boolean","description":"Whether a user is allowed to log in anonymously, e.g. to try out the application"},"oauth":{"description":"Authentication settings","allOf":[{"$ref":"#/components/schemas/UpdateOAuthSettingsDto"}]}}},"UpdateFeedbackSettings":{"type":"object","properties":{"correctness":{"type":"boolean"},"phone":{"type":"boolean"},"timing":{"type":"boolean"},"confidence":{"type":"boolean"},"alignment":{"type":"boolean"},"accuracy":{"type":"boolean"},"fluency":{"type":"boolean"},"attempt":{"enum":["immediate","none","delayed"],"type":"string"},"purpose":{"enum":["reading","pronunciation"],"type":"string"},"detectSpeech":{"type":"boolean"},"duration":{"type":"boolean"},"letterAlignment":{"type":"boolean"},"pauses":{"type":"boolean"},"intonation":{"type":"boolean"},"evaluateWordFeature":{"type":"boolean"}}},"UpdateIntermediateResultSettingsDto":{"type":"object","properties":{"eosDetection":{"type":"boolean","description":"When true sends an eos signal when the entire prompt has been recognized","default":false},"reportRecognized":{"type":"boolean","description":"When true sends the prompt up until the next word to be recognized","default":false},"speechTimeout":{"type":"number","minimum":-1,"description":"Timeout in milliseconds for speech detection. When the timeout has passed a timeout signal is given"}}},"UpdateLanguageSettings":{"type":"object","properties":{"configurations":{"type":"object","description":"Language configurations","additionalProperties":{"type":"array","items":{"$ref":"#/components/schemas/ModelConfigurationDto"}}}}},"UpdatePublisherSettingsDto":{"type":"object","properties":{"retentionDays":{"type":"number","minimum":-1,"description":"Number of days to retain analysis data in the data-api, use -1 to keep them forever"},"logSettings":{"description":"Log settings","allOf":[{"$ref":"#/components/schemas/LogSettingsDto"}]},"allowedPermissions":{"type":"array","items":{"$ref":"#/components/schemas/PermissionType"}},"allowedLanguages":{"type":"array","items":{"$ref":"#/components/schemas/LanguageCode"}},"expirationDate":{"format":"date-time","type":"string","description":"The last day the publisher is able to generate access tokens"},"authSettings":{"description":"Authentication settings","allOf":[{"$ref":"#/components/schemas/UpdateAuthSettingsDto"}]},"feedbackSettings":{"description":"Feedback settings to include in the output of the speech api","allOf":[{"$ref":"#/components/schemas/UpdateFeedbackSettings"}]},"intermediateResultsSettings":{"description":"Intermediate results settings","allOf":[{"$ref":"#/components/schemas/UpdateIntermediateResultSettingsDto"}]},"languageSettings":{"description":"Language settings","allOf":[{"$ref":"#/components/schemas/UpdateLanguageSettings"}]}}},"UpdatePublisherDto":{"type":"object","properties":{"name":{"type":"string","description":"Publisher name"},"key":{"type":"string","description":"Identifier for the publisher. Used for authorization"},"settings":{"$ref":"#/components/schemas/UpdatePublisherSettingsDto"}}},"RequestAccountDto":{"type":"object","properties":{"contactName":{"type":"string","description":"Contact name"},"email":{"type":"string","description":"E-mail contact"},"accountName":{"type":"string","description":"Name of the account"},"languages":{"type":"array","items":{"$ref":"#/components/schemas/LanguageCode"}},"metadata":{"type":"object","description":"Additional information about the account requester"}},"required":["contactName","email","accountName","languages"]},"ThresholdsDtoV1":{"type":"object","properties":{"defaultThreshold":{"type":"number"}},"required":["defaultThreshold"]},"ConfigurationResponseDtoV1":{"type":"object","properties":{"id":{"type":"string","description":"The identifier of the configuration"},"name":{"type":"string","description":"The name of the configuration"},"languageCode":{"$ref":"#/components/schemas/LanguageCode"},"isDefault":{"type":"boolean","description":"Is this the default configuration to use"},"thresholds":{"description":"The thresholds to use in this configuration","allOf":[{"$ref":"#/components/schemas/ThresholdsDtoV1"}]},"publisherId":{"type":"string","description":"The owner of the configuration"}},"required":["id","name","languageCode","isDefault","thresholds","publisherId"]},"ConfigurationCreateDtoV1":{"type":"object","properties":{"name":{"type":"string","description":"The name of the configuration"},"languageCode":{"$ref":"#/components/schemas/LanguageCode"},"isDefault":{"type":"boolean","description":"Is this the default configuration to use"},"thresholds":{"description":"The thresholds to use in this configuration","allOf":[{"$ref":"#/components/schemas/ThresholdsDtoV1"}]}},"required":["name","languageCode","isDefault","thresholds"]},"ConfigurationDtoV1":{"type":"object","properties":{"id":{"type":"string","description":"The identifier of the configuration"},"name":{"type":"string","description":"The name of the configuration"},"languageCode":{"$ref":"#/components/schemas/LanguageCode"},"isDefault":{"type":"boolean","description":"Is this the default configuration to use"},"thresholds":{"description":"The thresholds to use in this configuration","allOf":[{"$ref":"#/components/schemas/ThresholdsDtoV1"}]}},"required":["id","name","languageCode","isDefault","thresholds"]}}}}