public virtual async Task <FirewallPolicyRuleGroupsCreateOrUpdateOperation> StartCreateOrUpdateAsync(string resourceGroupName, string firewallPolicyName, string ruleGroupName, FirewallPolicyRuleGroup parameters, CancellationToken cancellationToken = default) { if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (firewallPolicyName == null) { throw new ArgumentNullException(nameof(firewallPolicyName)); } if (ruleGroupName == null) { throw new ArgumentNullException(nameof(ruleGroupName)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _clientDiagnostics.CreateScope("FirewallPolicyRuleGroupsOperations.StartCreateOrUpdate"); scope.Start(); try { var originalResponse = await RestClient.CreateOrUpdateAsync(resourceGroupName, firewallPolicyName, ruleGroupName, parameters, cancellationToken).ConfigureAwait(false); return(new FirewallPolicyRuleGroupsCreateOrUpdateOperation(_clientDiagnostics, _pipeline, RestClient.CreateCreateOrUpdateRequest(resourceGroupName, firewallPolicyName, ruleGroupName, parameters).Request, originalResponse)); } catch (Exception e) { scope.Failed(e); throw; } }