Skip to content

Commit cd511f1

Browse files
authored
Simple overload for StartTranslation (Azure#19557)
1 parent f2aa20c commit cd511f1

File tree

4 files changed

+58
-120
lines changed

4 files changed

+58
-120
lines changed

sdk/documenttranslation/Azure.AI.DocumentTranslation/api/Azure.AI.DocumentTranslation.netstandard2.0.cs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ public DocumentTranslationClient(System.Uri endpoint, Azure.Core.TokenCredential
3636
public override int GetHashCode() { throw null; }
3737
public virtual Azure.Pageable<Azure.AI.DocumentTranslation.TranslationStatusDetail> GetTranslations(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
3838
public virtual Azure.AsyncPageable<Azure.AI.DocumentTranslation.TranslationStatusDetail> GetTranslationsAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
39+
public virtual Azure.AI.DocumentTranslation.DocumentTranslationOperation StartTranslation(Azure.AI.DocumentTranslation.TranslationConfiguration configuration, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
3940
public virtual Azure.AI.DocumentTranslation.DocumentTranslationOperation StartTranslation(System.Collections.Generic.IEnumerable<Azure.AI.DocumentTranslation.TranslationConfiguration> configurations, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
40-
public virtual Azure.AI.DocumentTranslation.DocumentTranslationOperation StartTranslation(System.Uri sourceBlobContainerSas, System.Uri targetBlobContainerSas, string targetLanguageCode, Azure.AI.DocumentTranslation.TranslationGlossary glossary = null, Azure.AI.DocumentTranslation.TranslationOperationOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
41+
public virtual System.Threading.Tasks.Task<Azure.AI.DocumentTranslation.DocumentTranslationOperation> StartTranslationAsync(Azure.AI.DocumentTranslation.TranslationConfiguration configuration, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
4142
public virtual System.Threading.Tasks.Task<Azure.AI.DocumentTranslation.DocumentTranslationOperation> StartTranslationAsync(System.Collections.Generic.IEnumerable<Azure.AI.DocumentTranslation.TranslationConfiguration> configurations, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
42-
public virtual System.Threading.Tasks.Task<Azure.AI.DocumentTranslation.DocumentTranslationOperation> StartTranslationAsync(System.Uri sourceBlobContainerSas, System.Uri targetBlobContainerSas, string targetLanguageCode, Azure.AI.DocumentTranslation.TranslationGlossary glossary = null, Azure.AI.DocumentTranslation.TranslationOperationOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
4343
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
4444
public override string ToString() { throw null; }
4545
}
@@ -157,9 +157,11 @@ protected PageableOperation() { }
157157
public partial class TranslationConfiguration
158158
{
159159
public TranslationConfiguration(Azure.AI.DocumentTranslation.TranslationSource source, System.Collections.Generic.IEnumerable<Azure.AI.DocumentTranslation.TranslationTarget> targets) { }
160+
public TranslationConfiguration(System.Uri sourceUri, System.Uri targetUri, string targetLanguageCode, Azure.AI.DocumentTranslation.TranslationGlossary glossary = null) { }
160161
public Azure.AI.DocumentTranslation.TranslationSource Source { get { throw null; } }
161162
public Azure.AI.DocumentTranslation.StorageType? StorageType { get { throw null; } set { } }
162163
public System.Collections.Generic.IList<Azure.AI.DocumentTranslation.TranslationTarget> Targets { get { throw null; } }
164+
public void AddTarget(System.Uri targetUri, string languageCode, Azure.AI.DocumentTranslation.TranslationGlossary glossary = null) { }
163165
}
164166
public partial class TranslationGlossary
165167
{
@@ -168,14 +170,6 @@ public TranslationGlossary(System.Uri glossaryUri) { }
168170
public System.Uri GlossaryUri { get { throw null; } }
169171
public string Version { get { throw null; } set { } }
170172
}
171-
public partial class TranslationOperationOptions
172-
{
173-
public TranslationOperationOptions() { }
174-
public string Category { get { throw null; } set { } }
175-
public Azure.AI.DocumentTranslation.DocumentFilter Filter { get { throw null; } set { } }
176-
public string SourceLanguage { get { throw null; } set { } }
177-
public Azure.AI.DocumentTranslation.StorageType? StorageType { get { throw null; } set { } }
178-
}
179173
public partial class TranslationSource
180174
{
181175
public TranslationSource(System.Uri sourceUri) { }

sdk/documenttranslation/Azure.AI.DocumentTranslation/src/DocumentTranslationClient.cs

Lines changed: 16 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public DocumentTranslationClient(Uri endpoint, AzureKeyCredential credential)
106106
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/document-translation/overview"/>.
107107
/// </summary>
108108
/// <param name="configurations">Sets the configurations for the translation operation
109-
/// including source and target storage for documents to be translated. </param>
109+
/// including source and target containers for documents to be translated. </param>
110110
/// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param>
111111
/// <exception cref="RequestFailedException">Service returned a non-success status code. </exception>
112112
public virtual DocumentTranslationOperation StartTranslation(IEnumerable<TranslationConfiguration> configurations, CancellationToken cancellationToken = default)
@@ -133,7 +133,7 @@ public virtual DocumentTranslationOperation StartTranslation(IEnumerable<Transla
133133
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/document-translation/overview"/>.
134134
/// </summary>
135135
/// <param name="configurations">Sets the configurations for the translation operation
136-
/// including source and target storage for documents to be translated. </param>
136+
/// including source and target containers for documents to be translated. </param>
137137
/// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param>
138138
/// <exception cref="RequestFailedException">Service returned a non-success status code. </exception>
139139
public virtual async Task<DocumentTranslationOperation> StartTranslationAsync(IEnumerable<TranslationConfiguration> configurations, CancellationToken cancellationToken = default)
@@ -155,49 +155,18 @@ public virtual async Task<DocumentTranslationOperation> StartTranslationAsync(IE
155155
}
156156

157157
/// <summary>
158-
/// Starts a translation operation for documents in an Azure Blob Container.
158+
/// Starts a translation operation.
159159
/// For document length limits, maximum batch size, and supported document formats, see
160160
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/document-translation/overview"/>.
161161
/// </summary>
162-
/// <param name="sourceBlobContainerSas">The SAS URL for the source container containing documents to be translated. </param>
163-
/// <param name="targetBlobContainerSas">The SAS URL for the target container to which the translated documents will be written. </param>
164-
/// <param name="targetLanguageCode">Language code to translate documents to. For supported languages see
165-
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/language-support#translate"/>.</param>
166-
/// <param name="glossary">Custom translation glossary to be used in the translation operation. For supported file types see
167-
/// <see cref="GetGlossaryFormatsAsync(CancellationToken)"/>.</param>
168-
/// <param name="options">Set translation options including source language and custom translation category.</param>
162+
/// <param name="configuration">Sets the configurations for the translation operation
163+
/// including source and target containers for documents to be translated. </param>
169164
/// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param>
170-
public virtual DocumentTranslationOperation StartTranslation(Uri sourceBlobContainerSas, Uri targetBlobContainerSas, string targetLanguageCode, TranslationGlossary glossary = default, TranslationOperationOptions options = default, CancellationToken cancellationToken = default)
165+
/// <exception cref="RequestFailedException">Service returned a non-success status code. </exception>
166+
public virtual DocumentTranslationOperation StartTranslation(TranslationConfiguration configuration, CancellationToken cancellationToken = default)
171167
{
172-
var source = new TranslationSource(sourceBlobContainerSas)
173-
{
174-
LanguageCode = options?.SourceLanguage,
175-
Filter = options?.Filter
176-
};
177-
178-
var target = new TranslationTarget(targetBlobContainerSas, targetLanguageCode)
179-
{
180-
CategoryId = options?.Category
181-
};
182-
183-
if (glossary != null)
184-
{
185-
target.Glossaries.Add(glossary);
186-
}
187-
188-
var targets = new List<TranslationTarget>
189-
{
190-
target
191-
};
192-
193-
var request = new BatchSubmissionRequest(new List<TranslationConfiguration>
194-
{
195-
new TranslationConfiguration(source, targets)
196-
{
197-
StorageType = options?.StorageType
198-
}
199-
}
200-
);
168+
Argument.AssertNotNull(configuration, nameof(configuration));
169+
var request = new BatchSubmissionRequest(new List<TranslationConfiguration> { configuration });
201170
using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(DocumentTranslationClient)}.{nameof(StartTranslation)}");
202171
scope.Start();
203172

@@ -214,50 +183,18 @@ public virtual DocumentTranslationOperation StartTranslation(Uri sourceBlobConta
214183
}
215184

216185
/// <summary>
217-
/// Starts a translation operation for documents in an Azure Blob Container.
186+
/// Starts a translation operation
218187
/// For document length limits, maximum batch size, and supported document formats, see
219188
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/document-translation/overview"/>.
220189
/// </summary>
221-
/// <param name="sourceBlobContainerSas">The SAS URL for the source container containing documents to be translated. </param>
222-
/// <param name="targetBlobContainerSas">The SAS URL for the target container to which the translated documents will be written. </param>
223-
/// <param name="targetLanguageCode">Language code to translate documents to. For supported languages see
224-
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/language-support#translate"/>.</param>
225-
/// <param name="glossary">Custom translation glossary to be used in the translation operation. For supported file types see
226-
/// <see cref="GetGlossaryFormatsAsync(CancellationToken)"/>.</param>
227-
/// <param name="options">Set translation options including source language and custom translation category.</param>
190+
/// <param name="configuration">Sets the configurations for the translation operation
191+
/// including source and target containers for documents to be translated. </param>
228192
/// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param>
229-
public virtual async Task<DocumentTranslationOperation> StartTranslationAsync(Uri sourceBlobContainerSas, Uri targetBlobContainerSas, string targetLanguageCode, TranslationGlossary glossary = default, TranslationOperationOptions options = default, CancellationToken cancellationToken = default)
193+
/// <exception cref="RequestFailedException">Service returned a non-success status code. </exception>
194+
public virtual async Task<DocumentTranslationOperation> StartTranslationAsync(TranslationConfiguration configuration, CancellationToken cancellationToken = default)
230195
{
231-
var source = new TranslationSource(sourceBlobContainerSas)
232-
{
233-
LanguageCode = options?.SourceLanguage,
234-
Filter = options?.Filter
235-
};
236-
237-
var target = new TranslationTarget(targetBlobContainerSas, targetLanguageCode)
238-
{
239-
CategoryId = options?.Category
240-
};
241-
242-
if (glossary != null)
243-
{
244-
target.Glossaries.Add(glossary);
245-
}
246-
247-
var targets = new List<TranslationTarget>
248-
{
249-
target
250-
};
251-
252-
var request = new BatchSubmissionRequest(new List<TranslationConfiguration>
253-
{
254-
new TranslationConfiguration(source, targets)
255-
{
256-
StorageType = options?.StorageType
257-
}
258-
}
259-
);
260-
196+
Argument.AssertNotNull(configuration, nameof(configuration));
197+
var request = new BatchSubmissionRequest(new List<TranslationConfiguration> { configuration });
261198
using DiagnosticScope scope = _clientDiagnostics.CreateScope($"{nameof(DocumentTranslationClient)}.{nameof(StartTranslationAsync)}");
262199
scope.Start();
263200

sdk/documenttranslation/Azure.AI.DocumentTranslation/src/TranslationConfiguration.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Copyright (c) Microsoft Corporation. All rights reserved.
22
// Licensed under the MIT License.
33

4+
using System;
45
using Azure.Core;
56

67
namespace Azure.AI.DocumentTranslation
@@ -9,5 +10,42 @@ namespace Azure.AI.DocumentTranslation
910
[CodeGenModel("BatchRequest")]
1011
public partial class TranslationConfiguration
1112
{
13+
/// <summary>
14+
/// Initializes a new instance of TranslationConfiguration.
15+
/// </summary>
16+
/// <param name="sourceUri">The SAS URI for the source container containing documents to be translated.</param>
17+
/// <param name="targetUri">The SAS URI for the target container to which the translated documents will be written.</param>
18+
/// <param name="targetLanguageCode">Language code to translate documents to. For supported languages see
19+
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/language-support#translate"/>.</param>
20+
/// <param name="glossary">Custom <see cref="TranslationGlossary"/> to be used in the translation operation. For supported file types see
21+
/// <see cref="DocumentTranslationClient.GetGlossaryFormatsAsync(System.Threading.CancellationToken)"/>.</param>
22+
public TranslationConfiguration(Uri sourceUri, Uri targetUri, string targetLanguageCode, TranslationGlossary glossary = default)
23+
{
24+
Source = new TranslationSource(sourceUri);
25+
var target = new TranslationTarget(targetUri, targetLanguageCode);
26+
if (glossary != null)
27+
{
28+
target.Glossaries.Add(glossary);
29+
}
30+
Targets.Add(target);
31+
}
32+
33+
/// <summary>
34+
/// Add Translation Target to the configuration.
35+
/// </summary>
36+
/// <param name="targetUri">The SAS URI for the target container to which the translated documents will be written.</param>
37+
/// <param name="languageCode">Language code to translate documents to. For supported languages see
38+
/// <a href="https://docs.microsoft.com/azure/cognitive-services/translator/language-support#translate"/>.</param>
39+
/// <param name="glossary">Custom <see cref="TranslationGlossary"/> to be used in the translation operation. For supported file types see
40+
/// <see cref="DocumentTranslationClient.GetGlossaryFormatsAsync(System.Threading.CancellationToken)"/>.</param>
41+
public void AddTarget(Uri targetUri, string languageCode, TranslationGlossary glossary = default)
42+
{
43+
var target = new TranslationTarget(targetUri, languageCode);
44+
if (glossary != null)
45+
{
46+
target.Glossaries.Add(glossary);
47+
}
48+
Targets.Add(target);
49+
}
1250
}
1351
}

sdk/documenttranslation/Azure.AI.DocumentTranslation/src/TranslationOperationOptions.cs

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)