public async Task LoadAndPurge() { SubscriptionResource subscription = await Client.GetDefaultSubscriptionAsync(); ResourceGroupResource rg = await CreateResourceGroup(subscription, "testRg-"); string cdnProfileName = Recording.GenerateAssetName("profile-"); ProfileResource cdnProfile = await CreateCdnProfile(rg, cdnProfileName, CdnSkuName.StandardVerizon); string cdnEndpointName = Recording.GenerateAssetName("endpoint-"); CdnEndpointData cdnEndpointData = ResourceDataHelper.CreateEndpointData(); DeepCreatedOrigin deepCreatedOrigin = new DeepCreatedOrigin("testOrigin") { HostName = "testsa4dotnetsdk.blob.core.windows.net" }; cdnEndpointData.Origins.Add(deepCreatedOrigin); var lro = await cdnProfile.GetCdnEndpoints().CreateOrUpdateAsync(WaitUntil.Completed, cdnEndpointName, cdnEndpointData); CdnEndpointResource cdnEndpoint = lro.Value; PurgeOptions purgeParameters = new PurgeOptions(new List <string> { "/*" }); Assert.DoesNotThrowAsync(async() => await cdnEndpoint.PurgeContentAsync(WaitUntil.Completed, purgeParameters)); LoadOptions loadParameters = new LoadOptions(new List <string> { "/testfile/file1.txt" }); Assert.DoesNotThrowAsync(async() => await cdnEndpoint.LoadContentAsync(WaitUntil.Completed, loadParameters)); }
protected async Task <CdnEndpoint> CreateCdnEndpoint(Profile profile, string endpointName) { CdnEndpointData input = ResourceDataHelper.CreateEndpointData(); DeepCreatedOrigin deepCreatedOrigin = ResourceDataHelper.CreateDeepCreatedOrigin(); input.Origins.Add(deepCreatedOrigin); var lro = await profile.GetCdnEndpoints().CreateOrUpdateAsync(true, endpointName, input); return(lro.Value); }
///GENMHASH:F08598A17ADD014E223DFD77272641FF:F733ABC4C4375BDE663CF05B96352BF2 public async override Task <Microsoft.Azure.Management.Cdn.Fluent.ICdnEndpoint> UpdateAsync(CancellationToken cancellationToken = default(CancellationToken)) { EndpointUpdateParameters updateInner = new EndpointUpdateParameters { IsHttpAllowed = Inner.IsHttpAllowed, IsHttpsAllowed = Inner.IsHttpsAllowed, OriginPath = Inner.OriginPath, OriginHostHeader = Inner.OriginHostHeader, IsCompressionEnabled = Inner.IsCompressionEnabled, ContentTypesToCompress = Inner.ContentTypesToCompress, GeoFilters = Inner.GeoFilters, OptimizationType = Inner.OptimizationType, QueryStringCachingBehavior = Inner.QueryStringCachingBehavior, Tags = Inner.Tags }; DeepCreatedOrigin originInner = Inner.Origins.ElementAt(0); OriginUpdateParameters originParameters = new OriginUpdateParameters { HostName = originInner.HostName, HttpPort = originInner.HttpPort, HttpsPort = originInner.HttpsPort }; await Task.WhenAll(deletedCustomDomainList .Select(itemToDelete => Parent.Manager.Inner.CustomDomains.DeleteAsync( Parent.ResourceGroupName, Parent.Name, Name(), itemToDelete.Name, cancellationToken))); deletedCustomDomainList.Clear(); await Parent.Manager.Inner.Origins.UpdateAsync( Parent.ResourceGroupName, Parent.Name, Name(), originInner.Name, originParameters, cancellationToken); var endpointInner = await Parent.Manager.Inner.Endpoints.UpdateAsync( Parent.ResourceGroupName, Parent.Name, Name(), updateInner, cancellationToken); SetInner(endpointInner); return(this); }
private DeepCreatedOrigin CreateOrigin() { DeepCreatedOrigin origin = new DeepCreatedOrigin(); origin.Name = OriginName; origin.HostName = OriginHostName; origin.HttpPort = HttpPort; origin.HttpsPort = HttpsPort; origin.Priority = Priority; origin.Weight = Weight; origin.PrivateLinkApprovalMessage = PrivateLinkApprovalMessage; origin.PrivateLinkLocation = PrivateLinkLocation; origin.PrivateLinkResourceId = PrivateLinkResourceId; return(origin); }
protected async Task <CdnEndpoint> CreateCdnEndpointWithOriginGroup(Profile profile, string endpointName) { CdnEndpointData input = ResourceDataHelper.CreateEndpointData(); DeepCreatedOrigin deepCreatedOrigin = ResourceDataHelper.CreateDeepCreatedOrigin(); DeepCreatedOriginGroup deepCreatedOriginGroup = ResourceDataHelper.CreateDeepCreatedOriginGroup(); deepCreatedOriginGroup.Origins.Add(new WritableSubResource { Id = new ResourceIdentifier($"{profile.Id}/endpoints/{endpointName}/origins/{deepCreatedOrigin.Name}") }); input.Origins.Add(deepCreatedOrigin); input.OriginGroups.Add(deepCreatedOriginGroup); input.DefaultOriginGroup = new EndpointPropertiesUpdateParametersDefaultOriginGroup { Id = new ResourceIdentifier($"{profile.Id}/endpoints/{endpointName}/originGroups/{deepCreatedOriginGroup.Name}") }; var lro = await profile.GetCdnEndpoints().CreateOrUpdateAsync(true, endpointName, input); return(lro.Value); }
public async Task CreateOriginGroups() { #region Snippet:Managing_OriginGroups_CreateAnOriginGroup // Create a new cdn profile string profileName = "myProfile"; var input1 = new ProfileData(AzureLocation.WestUS, new CdnSku { Name = CdnSkuName.StandardMicrosoft }); ArmOperation <ProfileResource> lro1 = await resourceGroup.GetProfiles().CreateOrUpdateAsync(WaitUntil.Completed, profileName, input1); ProfileResource profile = lro1.Value; // Get the cdn endpoint collection from the specific ProfileResource and create an endpoint string endpointName = "myEndpoint"; var input2 = new CdnEndpointData(AzureLocation.WestUS) { IsHttpAllowed = true, IsHttpsAllowed = true, OptimizationType = OptimizationType.GeneralWebDelivery }; DeepCreatedOrigin deepCreatedOrigin = new DeepCreatedOrigin("myOrigin") { HostName = "testsa4dotnetsdk.blob.core.windows.net", Priority = 3, Weight = 100 }; input2.Origins.Add(deepCreatedOrigin); ArmOperation <CdnEndpointResource> lro2 = await profile.GetCdnEndpoints().CreateOrUpdateAsync(WaitUntil.Completed, endpointName, input2); CdnEndpointResource endpoint = lro2.Value; // Get the cdn origin group collection from the specific endpoint and create an origin group string originGroupName = "myOriginGroup"; var input3 = new CdnOriginGroupData(); input3.Origins.Add(new WritableSubResource { Id = new ResourceIdentifier($"{endpoint.Id}/origins/myOrigin") }); ArmOperation <CdnOriginGroupResource> lro3 = await endpoint.GetCdnOriginGroups().CreateOrUpdateAsync(WaitUntil.Completed, originGroupName, input3); CdnOriginGroupResource originGroup = lro3.Value; #endregion Snippet:Managing_OriginGroups_CreateAnOriginGroup }
internal static CdnEndpointData DeserializeCdnEndpointData(JsonElement element) { IDictionary <string, string> tags = default; AzureLocation location = default; ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <string> originPath = default; Optional <IList <string> > contentTypesToCompress = default; Optional <string> originHostHeader = default; Optional <bool> isCompressionEnabled = default; Optional <bool> isHttpAllowed = default; Optional <bool> isHttpsAllowed = default; Optional <QueryStringCachingBehavior> queryStringCachingBehavior = default; Optional <OptimizationType?> optimizationType = default; Optional <string> probePath = default; Optional <IList <GeoFilter> > geoFilters = default; Optional <EndpointPropertiesUpdateParametersDefaultOriginGroup> defaultOriginGroup = default; Optional <IList <UriSigningKey> > urlSigningKeys = default; Optional <EndpointDeliveryPolicy> deliveryPolicy = default; Optional <EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLink> webApplicationFirewallPolicyLink = default; Optional <string> hostName = default; Optional <IList <DeepCreatedOrigin> > origins = default; Optional <IList <DeepCreatedOriginGroup> > originGroups = default; Optional <IReadOnlyList <CdnCustomDomainData> > customDomains = default; Optional <EndpointResourceState> resourceState = default; Optional <EndpointProvisioningState> provisioningState = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("tags")) { Dictionary <string, string> dictionary = new Dictionary <string, string>(); foreach (var property0 in property.Value.EnumerateObject()) { dictionary.Add(property0.Name, property0.Value.GetString()); } tags = dictionary; continue; } if (property.NameEquals("location")) { location = property.Value.GetString(); continue; } if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = property.Value.GetString(); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("originPath")) { originPath = property0.Value.GetString(); continue; } if (property0.NameEquals("contentTypesToCompress")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <string> array = new List <string>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(item.GetString()); } contentTypesToCompress = array; continue; } if (property0.NameEquals("originHostHeader")) { originHostHeader = property0.Value.GetString(); continue; } if (property0.NameEquals("isCompressionEnabled")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isCompressionEnabled = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("isHttpAllowed")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isHttpAllowed = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("isHttpsAllowed")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } isHttpsAllowed = property0.Value.GetBoolean(); continue; } if (property0.NameEquals("queryStringCachingBehavior")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } queryStringCachingBehavior = property0.Value.GetString().ToQueryStringCachingBehavior(); continue; } if (property0.NameEquals("optimizationType")) { if (property0.Value.ValueKind == JsonValueKind.Null) { optimizationType = null; continue; } optimizationType = new OptimizationType(property0.Value.GetString()); continue; } if (property0.NameEquals("probePath")) { probePath = property0.Value.GetString(); continue; } if (property0.NameEquals("geoFilters")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <GeoFilter> array = new List <GeoFilter>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(GeoFilter.DeserializeGeoFilter(item)); } geoFilters = array; continue; } if (property0.NameEquals("defaultOriginGroup")) { if (property0.Value.ValueKind == JsonValueKind.Null) { defaultOriginGroup = null; continue; } defaultOriginGroup = EndpointPropertiesUpdateParametersDefaultOriginGroup.DeserializeEndpointPropertiesUpdateParametersDefaultOriginGroup(property0.Value); continue; } if (property0.NameEquals("urlSigningKeys")) { if (property0.Value.ValueKind == JsonValueKind.Null) { urlSigningKeys = null; continue; } List <UriSigningKey> array = new List <UriSigningKey>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(UriSigningKey.DeserializeUriSigningKey(item)); } urlSigningKeys = array; continue; } if (property0.NameEquals("deliveryPolicy")) { if (property0.Value.ValueKind == JsonValueKind.Null) { deliveryPolicy = null; continue; } deliveryPolicy = EndpointDeliveryPolicy.DeserializeEndpointDeliveryPolicy(property0.Value); continue; } if (property0.NameEquals("webApplicationFirewallPolicyLink")) { if (property0.Value.ValueKind == JsonValueKind.Null) { webApplicationFirewallPolicyLink = null; continue; } webApplicationFirewallPolicyLink = EndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLink.DeserializeEndpointPropertiesUpdateParametersWebApplicationFirewallPolicyLink(property0.Value); continue; } if (property0.NameEquals("hostName")) { hostName = property0.Value.GetString(); continue; } if (property0.NameEquals("origins")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <DeepCreatedOrigin> array = new List <DeepCreatedOrigin>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(DeepCreatedOrigin.DeserializeDeepCreatedOrigin(item)); } origins = array; continue; } if (property0.NameEquals("originGroups")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <DeepCreatedOriginGroup> array = new List <DeepCreatedOriginGroup>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(DeepCreatedOriginGroup.DeserializeDeepCreatedOriginGroup(item)); } originGroups = array; continue; } if (property0.NameEquals("customDomains")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <CdnCustomDomainData> array = new List <CdnCustomDomainData>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(CdnCustomDomainData.DeserializeCdnCustomDomainData(item)); } customDomains = array; continue; } if (property0.NameEquals("resourceState")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } resourceState = new EndpointResourceState(property0.Value.GetString()); continue; } if (property0.NameEquals("provisioningState")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } provisioningState = new EndpointProvisioningState(property0.Value.GetString()); continue; } } continue; } } return(new CdnEndpointData(id, name, type, systemData, tags, location, originPath.Value, Optional.ToList(contentTypesToCompress), originHostHeader.Value, Optional.ToNullable(isCompressionEnabled), Optional.ToNullable(isHttpAllowed), Optional.ToNullable(isHttpsAllowed), Optional.ToNullable(queryStringCachingBehavior), Optional.ToNullable(optimizationType), probePath.Value, Optional.ToList(geoFilters), defaultOriginGroup.Value, Optional.ToList(urlSigningKeys), deliveryPolicy.Value, webApplicationFirewallPolicyLink.Value, hostName.Value, Optional.ToList(origins), Optional.ToList(originGroups), Optional.ToList(customDomains), Optional.ToNullable(resourceState), Optional.ToNullable(provisioningState))); }