/// <summary>
        /// Initializes a new instance of <see cref="DocumentTranslationInput"/>.
        /// </summary>
        /// <param name="sourceUri">The SAS URI for the source container containing documents to be translated. Read and List permissions are needed.</param>
        /// <param name="targetUri">The SAS URI for the target container to which the translated documents will be written. Read and Write permissions are needed.</param>
        /// <param name="targetLanguageCode">Language code to translate documents to. For supported languages see
        /// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/language-support#translate"/>.</param>
        /// <param name="glossary">Custom <see cref="TranslationGlossary"/> to be used in the translation operation. For supported file types see
        /// <see cref="DocumentTranslationClient.GetGlossaryFormatsAsync(System.Threading.CancellationToken)"/>.</param>
        public DocumentTranslationInput(Uri sourceUri, Uri targetUri, string targetLanguageCode, TranslationGlossary glossary = default)
        {
            Source = new TranslationSource(sourceUri);
            var target = new TranslationTarget(targetUri, targetLanguageCode);

            if (glossary != null)
            {
                target.Glossaries.Add(glossary);
            }
            Targets = new List <TranslationTarget> {
                target
            };
        }
        public DocumentTranslationInput(TranslationSource source, IEnumerable <TranslationTarget> targets)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (targets == null)
            {
                throw new ArgumentNullException(nameof(targets));
            }

            Source  = source;
            Targets = targets.ToList();
        }