public async Task Update() { SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync(); ResourceGroupResource rg = await CreateResourceGroup(subscription, "testRg-"); string afdProfileName = Recording.GenerateAssetName("AFDProfile-"); ProfileResource afdProfile = await CreateAfdProfile(rg, afdProfileName, CdnSkuName.StandardAzureFrontDoor); string afdRuleSetName = Recording.GenerateAssetName("AFDRuleSet"); AfdRuleSetResource afdRuleSet = await CreateAfdRuleSet(afdProfile, afdRuleSetName); string afdRuleName = Recording.GenerateAssetName("AFDRule"); AfdRuleResource afdRule = await CreateAfdRule(afdRuleSet, afdRuleName); PatchableAfdRuleData updateOptions = new PatchableAfdRuleData { Order = 2 }; updateOptions.Conditions.Add(ResourceDataHelper.CreateDeliveryRuleCondition()); updateOptions.Actions.Add(ResourceDataHelper.CreateDeliveryRuleOperation()); var lro = await afdRule.UpdateAsync(WaitUntil.Completed, updateOptions); AfdRuleResource updatedAfdRule = lro.Value; ResourceDataHelper.AssertAfdRuleUpdate(updatedAfdRule, updateOptions); }
public async Task UpdateAfdRules() { #region Snippet:Managing_AfdRules_UpdateAnAzureFrontDoorRule // First we need to get the azure front door rule collection from the specific rule set ProfileResource AfdProfileResource = await resourceGroup.GetProfiles().GetAsync("myAfdProfile"); AfdRuleSetResource ruleSet = await AfdProfileResource.GetAfdRuleSets().GetAsync("myAfdRuleSet"); AfdRuleCollection ruleCollection = ruleSet.GetAfdRules(); // Now we can get the rule with GetAsync() AfdRuleResource rule = await ruleCollection.GetAsync("myAfdRule"); // With UpdateAsync(), we can update the rule PatchableAfdRuleData input = new PatchableAfdRuleData { Order = 2 }; input.Conditions.Add(new DeliveryRuleRequestUriCondition(new RequestUriMatchConditionParameters(RequestUriMatchConditionParametersTypeName.DeliveryRuleRequestUriConditionParameters, RequestUriOperator.Any))); input.Actions.Add(new DeliveryRuleCacheExpirationAction(new CacheExpirationActionParameters(CacheExpirationActionParametersTypeName.DeliveryRuleCacheExpirationActionParameters, CacheBehavior.Override, CacheType.All) { CacheDuration = new TimeSpan(0, 0, 30) })); ArmOperation <AfdRuleResource> lro = await rule.UpdateAsync(WaitUntil.Completed, input); rule = lro.Value; #endregion Snippet:Managing_AfdRules_UpdateAnAzureFrontDoorRule }
public virtual ArmOperation <AfdRuleResource> Update(WaitUntil waitUntil, PatchableAfdRuleData data, CancellationToken cancellationToken = default) { Argument.AssertNotNull(data, nameof(data)); using var scope = _afdRuleClientDiagnostics.CreateScope("AfdRuleResource.Update"); scope.Start(); try { var response = _afdRuleRestClient.Update(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Parent.Name, Id.Parent.Name, Id.Name, data, cancellationToken); var operation = new CdnArmOperation <AfdRuleResource>(new AfdRuleOperationSource(Client), _afdRuleClientDiagnostics, Pipeline, _afdRuleRestClient.CreateUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Parent.Parent.Name, Id.Parent.Name, Id.Name, data).Request, response, OperationFinalStateVia.AzureAsyncOperation); if (waitUntil == WaitUntil.Completed) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public static void AssertAfdRuleUpdate(AfdRuleResource updatedRule, PatchableAfdRuleData updateOptions) { Assert.AreEqual(updatedRule.Data.Order, updateOptions.Order); }