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));
        }
示例#2
0
        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);
        }
示例#3
0
        ///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);
        }
示例#5
0
        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);
        }
示例#6
0
        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
        }
示例#7
0
        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)));
        }