/// <inheritdoc /> public async Task <LanguageVariantModel <T> > UpsertLanguageVariantAsync <T>(LanguageVariantIdentifier identifier, T variantElements, WorkflowStepIdentifier workflow = null) where T : new() { if (identifier == null) { throw new ArgumentNullException(nameof(identifier)); } if (variantElements == null) { throw new ArgumentNullException(nameof(variantElements)); } var endpointUrl = _urlBuilder.BuildVariantsUrl(identifier); var variantUpsertModel = _modelProvider.GetLanguageVariantUpsertModel(variantElements, workflow); var response = await _actionInvoker.InvokeMethodAsync <LanguageVariantUpsertModel, LanguageVariantModel>(endpointUrl, HttpMethod.Put, variantUpsertModel); return(_modelProvider.GetLanguageVariantModel <T>(response)); }