scopes = new ArrayList<>();
+ private RetryPolicy retryPolicy;
+ private RetryOptions retryOptions;
+ private Duration defaultPollInterval;
+
+ private Configurable() {
+ }
+
+ /**
+ * Sets the http client.
+ *
+ * @param httpClient the HTTP client.
+ * @return the configurable object itself.
+ */
+ public Configurable withHttpClient(HttpClient httpClient) {
+ this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the logging options to the HTTP pipeline.
+ *
+ * @param httpLogOptions the HTTP log options.
+ * @return the configurable object itself.
+ */
+ public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
+ this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Adds the pipeline policy to the HTTP pipeline.
+ *
+ * @param policy the HTTP pipeline policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withPolicy(HttpPipelinePolicy policy) {
+ this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Adds the scope to permission sets.
+ *
+ * @param scope the scope.
+ * @return the configurable object itself.
+ */
+ public Configurable withScope(String scope) {
+ this.scopes.add(Objects.requireNonNull(scope, "'scope' cannot be null."));
+ return this;
+ }
+
+ /**
+ * Sets the retry policy to the HTTP pipeline.
+ *
+ * @param retryPolicy the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
+ this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the retry options for the HTTP pipeline retry policy.
+ *
+ * This setting has no effect, if retry policy is set via {@link #withRetryPolicy(RetryPolicy)}.
+ *
+ * @param retryOptions the retry options for the HTTP pipeline retry policy.
+ * @return the configurable object itself.
+ */
+ public Configurable withRetryOptions(RetryOptions retryOptions) {
+ this.retryOptions = Objects.requireNonNull(retryOptions, "'retryOptions' cannot be null.");
+ return this;
+ }
+
+ /**
+ * Sets the default poll interval, used when service does not provide "Retry-After" header.
+ *
+ * @param defaultPollInterval the default poll interval.
+ * @return the configurable object itself.
+ */
+ public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
+ this.defaultPollInterval
+ = Objects.requireNonNull(defaultPollInterval, "'defaultPollInterval' cannot be null.");
+ if (this.defaultPollInterval.isNegative()) {
+ throw LOGGER
+ .logExceptionAsError(new IllegalArgumentException("'defaultPollInterval' cannot be negative"));
+ }
+ return this;
+ }
+
+ /**
+ * Creates an instance of Cdn service API entry point.
+ *
+ * @param credential the credential to use.
+ * @param profile the Azure profile for client.
+ * @return the Cdn service API instance.
+ */
+ public CdnManager authenticate(TokenCredential credential, AzureProfile profile) {
+ Objects.requireNonNull(credential, "'credential' cannot be null.");
+ Objects.requireNonNull(profile, "'profile' cannot be null.");
+
+ String clientVersion = PROPERTIES.getOrDefault(SDK_VERSION, "UnknownVersion");
+
+ StringBuilder userAgentBuilder = new StringBuilder();
+ userAgentBuilder.append("azsdk-java")
+ .append("-")
+ .append("com.azure.resourcemanager.cdn.generated")
+ .append("/")
+ .append(clientVersion);
+ if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
+ userAgentBuilder.append(" (")
+ .append(Configuration.getGlobalConfiguration().get("java.version"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.name"))
+ .append("; ")
+ .append(Configuration.getGlobalConfiguration().get("os.version"))
+ .append("; auto-generated)");
+ } else {
+ userAgentBuilder.append(" (auto-generated)");
+ }
+
+ if (scopes.isEmpty()) {
+ scopes.add(profile.getEnvironment().getManagementEndpoint() + "/.default");
+ }
+ if (retryPolicy == null) {
+ if (retryOptions != null) {
+ retryPolicy = new RetryPolicy(retryOptions);
+ } else {
+ retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
+ }
+ }
+ List policies = new ArrayList<>();
+ policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
+ policies.add(new AddHeadersFromContextPolicy());
+ policies.add(new RequestIdPolicy());
+ policies.addAll(this.policies.stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_CALL)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addBeforeRetryPolicies(policies);
+ policies.add(retryPolicy);
+ policies.add(new AddDatePolicy());
+ policies.add(new BearerTokenAuthenticationPolicy(credential, scopes.toArray(new String[0])));
+ policies.addAll(this.policies.stream()
+ .filter(p -> p.getPipelinePosition() == HttpPipelinePosition.PER_RETRY)
+ .collect(Collectors.toList()));
+ HttpPolicyProviders.addAfterRetryPolicies(policies);
+ policies.add(new HttpLoggingPolicy(httpLogOptions));
+ HttpPipeline httpPipeline = new HttpPipelineBuilder().httpClient(httpClient)
+ .policies(policies.toArray(new HttpPipelinePolicy[0]))
+ .build();
+ return new CdnManager(httpPipeline, profile, defaultPollInterval);
+ }
+ }
+
+ /**
+ * Gets the resource collection API of ResourceProviders.
+ *
+ * @return Resource collection API of ResourceProviders.
+ */
+ public ResourceProviders resourceProviders() {
+ if (this.resourceProviders == null) {
+ this.resourceProviders = new ResourceProvidersImpl(clientObject.getResourceProviders(), this);
+ }
+ return resourceProviders;
+ }
+
+ /**
+ * Gets the resource collection API of AfdProfiles.
+ *
+ * @return Resource collection API of AfdProfiles.
+ */
+ public AfdProfiles afdProfiles() {
+ if (this.afdProfiles == null) {
+ this.afdProfiles = new AfdProfilesImpl(clientObject.getAfdProfiles(), this);
+ }
+ return afdProfiles;
+ }
+
+ /**
+ * Gets the resource collection API of AfdCustomDomains. It manages AfdDomain.
+ *
+ * @return Resource collection API of AfdCustomDomains.
+ */
+ public AfdCustomDomains afdCustomDomains() {
+ if (this.afdCustomDomains == null) {
+ this.afdCustomDomains = new AfdCustomDomainsImpl(clientObject.getAfdCustomDomains(), this);
+ }
+ return afdCustomDomains;
+ }
+
+ /**
+ * Gets the resource collection API of AfdEndpoints. It manages AfdEndpoint.
+ *
+ * @return Resource collection API of AfdEndpoints.
+ */
+ public AfdEndpoints afdEndpoints() {
+ if (this.afdEndpoints == null) {
+ this.afdEndpoints = new AfdEndpointsImpl(clientObject.getAfdEndpoints(), this);
+ }
+ return afdEndpoints;
+ }
+
+ /**
+ * Gets the resource collection API of AfdOriginGroups. It manages AfdOriginGroup.
+ *
+ * @return Resource collection API of AfdOriginGroups.
+ */
+ public AfdOriginGroups afdOriginGroups() {
+ if (this.afdOriginGroups == null) {
+ this.afdOriginGroups = new AfdOriginGroupsImpl(clientObject.getAfdOriginGroups(), this);
+ }
+ return afdOriginGroups;
+ }
+
+ /**
+ * Gets the resource collection API of AfdOrigins. It manages AfdOrigin.
+ *
+ * @return Resource collection API of AfdOrigins.
+ */
+ public AfdOrigins afdOrigins() {
+ if (this.afdOrigins == null) {
+ this.afdOrigins = new AfdOriginsImpl(clientObject.getAfdOrigins(), this);
+ }
+ return afdOrigins;
+ }
+
+ /**
+ * Gets the resource collection API of Routes. It manages Route.
+ *
+ * @return Resource collection API of Routes.
+ */
+ public Routes routes() {
+ if (this.routes == null) {
+ this.routes = new RoutesImpl(clientObject.getRoutes(), this);
+ }
+ return routes;
+ }
+
+ /**
+ * Gets the resource collection API of RuleSets.
+ *
+ * @return Resource collection API of RuleSets.
+ */
+ public RuleSets ruleSets() {
+ if (this.ruleSets == null) {
+ this.ruleSets = new RuleSetsImpl(clientObject.getRuleSets(), this);
+ }
+ return ruleSets;
+ }
+
+ /**
+ * Gets the resource collection API of Rules. It manages Rule.
+ *
+ * @return Resource collection API of Rules.
+ */
+ public Rules rules() {
+ if (this.rules == null) {
+ this.rules = new RulesImpl(clientObject.getRules(), this);
+ }
+ return rules;
+ }
+
+ /**
+ * Gets the resource collection API of SecurityPolicies. It manages SecurityPolicy.
+ *
+ * @return Resource collection API of SecurityPolicies.
+ */
+ public SecurityPolicies securityPolicies() {
+ if (this.securityPolicies == null) {
+ this.securityPolicies = new SecurityPoliciesImpl(clientObject.getSecurityPolicies(), this);
+ }
+ return securityPolicies;
+ }
+
+ /**
+ * Gets the resource collection API of Secrets. It manages Secret.
+ *
+ * @return Resource collection API of Secrets.
+ */
+ public Secrets secrets() {
+ if (this.secrets == null) {
+ this.secrets = new SecretsImpl(clientObject.getSecrets(), this);
+ }
+ return secrets;
+ }
+
+ /**
+ * Gets the resource collection API of LogAnalytics.
+ *
+ * @return Resource collection API of LogAnalytics.
+ */
+ public LogAnalytics logAnalytics() {
+ if (this.logAnalytics == null) {
+ this.logAnalytics = new LogAnalyticsImpl(clientObject.getLogAnalytics(), this);
+ }
+ return logAnalytics;
+ }
+
+ /**
+ * Gets the resource collection API of Profiles. It manages Profile.
+ *
+ * @return Resource collection API of Profiles.
+ */
+ public Profiles profiles() {
+ if (this.profiles == null) {
+ this.profiles = new ProfilesImpl(clientObject.getProfiles(), this);
+ }
+ return profiles;
+ }
+
+ /**
+ * Gets the resource collection API of Endpoints. It manages Endpoint.
+ *
+ * @return Resource collection API of Endpoints.
+ */
+ public Endpoints endpoints() {
+ if (this.endpoints == null) {
+ this.endpoints = new EndpointsImpl(clientObject.getEndpoints(), this);
+ }
+ return endpoints;
+ }
+
+ /**
+ * Gets the resource collection API of Origins. It manages Origin.
+ *
+ * @return Resource collection API of Origins.
+ */
+ public Origins origins() {
+ if (this.origins == null) {
+ this.origins = new OriginsImpl(clientObject.getOrigins(), this);
+ }
+ return origins;
+ }
+
+ /**
+ * Gets the resource collection API of OriginGroups. It manages OriginGroup.
+ *
+ * @return Resource collection API of OriginGroups.
+ */
+ public OriginGroups originGroups() {
+ if (this.originGroups == null) {
+ this.originGroups = new OriginGroupsImpl(clientObject.getOriginGroups(), this);
+ }
+ return originGroups;
+ }
+
+ /**
+ * Gets the resource collection API of CustomDomains. It manages CustomDomain.
+ *
+ * @return Resource collection API of CustomDomains.
+ */
+ public CustomDomains customDomains() {
+ if (this.customDomains == null) {
+ this.customDomains = new CustomDomainsImpl(clientObject.getCustomDomains(), this);
+ }
+ return customDomains;
+ }
+
+ /**
+ * Gets the resource collection API of ResourceUsages.
+ *
+ * @return Resource collection API of ResourceUsages.
+ */
+ public ResourceUsages resourceUsages() {
+ if (this.resourceUsages == null) {
+ this.resourceUsages = new ResourceUsagesImpl(clientObject.getResourceUsages(), this);
+ }
+ return resourceUsages;
+ }
+
+ /**
+ * Gets the resource collection API of Operations.
+ *
+ * @return Resource collection API of Operations.
+ */
+ public Operations operations() {
+ if (this.operations == null) {
+ this.operations = new OperationsImpl(clientObject.getOperations(), this);
+ }
+ return operations;
+ }
+
+ /**
+ * Gets the resource collection API of EdgeNodes.
+ *
+ * @return Resource collection API of EdgeNodes.
+ */
+ public EdgeNodes edgeNodes() {
+ if (this.edgeNodes == null) {
+ this.edgeNodes = new EdgeNodesImpl(clientObject.getEdgeNodes(), this);
+ }
+ return edgeNodes;
+ }
+
+ /**
+ * Gets the resource collection API of Policies. It manages CdnWebApplicationFirewallPolicy.
+ *
+ * @return Resource collection API of Policies.
+ */
+ public Policies policies() {
+ if (this.policies == null) {
+ this.policies = new PoliciesImpl(clientObject.getPolicies(), this);
+ }
+ return policies;
+ }
+
+ /**
+ * Gets the resource collection API of ManagedRuleSets.
+ *
+ * @return Resource collection API of ManagedRuleSets.
+ */
+ public ManagedRuleSets managedRuleSets() {
+ if (this.managedRuleSets == null) {
+ this.managedRuleSets = new ManagedRuleSetsImpl(clientObject.getManagedRuleSets(), this);
+ }
+ return managedRuleSets;
+ }
+
+ /**
+ * Gets wrapped service client CdnManagementClient providing direct access to the underlying auto-generated API
+ * implementation, based on Azure REST API.
+ *
+ * @return Wrapped service client CdnManagementClient.
+ */
+ public CdnManagementClient serviceClient() {
+ return this.clientObject;
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdCustomDomainsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdCustomDomainsClient.java
new file mode 100644
index 000000000000..8e3cb9f39141
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdCustomDomainsClient.java
@@ -0,0 +1,361 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.AfdDomainInner;
+import com.azure.resourcemanager.cdn.generated.models.AfdDomainUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in AfdCustomDomainsClient.
+ */
+public interface AfdCustomDomainsClient {
+ /**
+ * Lists existing AzureFrontDoor domains.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list domains as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName);
+
+ /**
+ * Lists existing AzureFrontDoor domains.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list domains as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets an existing AzureFrontDoor domain with the specified domain name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing AzureFrontDoor domain with the specified domain name under the specified subscription,
+ * resource group and profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String customDomainName,
+ Context context);
+
+ /**
+ * Gets an existing AzureFrontDoor domain with the specified domain name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing AzureFrontDoor domain with the specified domain name under the specified subscription,
+ * resource group and profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdDomainInner get(String resourceGroupName, String profileName, String customDomainName);
+
+ /**
+ * Creates a new domain within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomain Domain properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdDomainInner> beginCreate(String resourceGroupName, String profileName,
+ String customDomainName, AfdDomainInner customDomain);
+
+ /**
+ * Creates a new domain within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomain Domain properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdDomainInner> beginCreate(String resourceGroupName, String profileName,
+ String customDomainName, AfdDomainInner customDomain, Context context);
+
+ /**
+ * Creates a new domain within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomain Domain properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdDomainInner create(String resourceGroupName, String profileName, String customDomainName,
+ AfdDomainInner customDomain);
+
+ /**
+ * Creates a new domain within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomain Domain properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdDomainInner create(String resourceGroupName, String profileName, String customDomainName,
+ AfdDomainInner customDomain, Context context);
+
+ /**
+ * Updates an existing domain within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomainUpdateProperties Domain properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdDomainInner> beginUpdate(String resourceGroupName, String profileName,
+ String customDomainName, AfdDomainUpdateParameters customDomainUpdateProperties);
+
+ /**
+ * Updates an existing domain within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomainUpdateProperties Domain properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdDomainInner> beginUpdate(String resourceGroupName, String profileName,
+ String customDomainName, AfdDomainUpdateParameters customDomainUpdateProperties, Context context);
+
+ /**
+ * Updates an existing domain within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomainUpdateProperties Domain properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdDomainInner update(String resourceGroupName, String profileName, String customDomainName,
+ AfdDomainUpdateParameters customDomainUpdateProperties);
+
+ /**
+ * Updates an existing domain within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param customDomainUpdateProperties Domain properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdDomainInner update(String resourceGroupName, String profileName, String customDomainName,
+ AfdDomainUpdateParameters customDomainUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing AzureFrontDoor domain with the specified domain name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName,
+ String customDomainName);
+
+ /**
+ * Deletes an existing AzureFrontDoor domain with the specified domain name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName,
+ String customDomainName, Context context);
+
+ /**
+ * Deletes an existing AzureFrontDoor domain with the specified domain name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String customDomainName);
+
+ /**
+ * Deletes an existing AzureFrontDoor domain with the specified domain name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String customDomainName, Context context);
+
+ /**
+ * Updates the domain validation token.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginRefreshValidationToken(String resourceGroupName, String profileName,
+ String customDomainName);
+
+ /**
+ * Updates the domain validation token.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginRefreshValidationToken(String resourceGroupName, String profileName,
+ String customDomainName, Context context);
+
+ /**
+ * Updates the domain validation token.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void refreshValidationToken(String resourceGroupName, String profileName, String customDomainName);
+
+ /**
+ * Updates the domain validation token.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param customDomainName Name of the domain under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void refreshValidationToken(String resourceGroupName, String profileName, String customDomainName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdEndpointsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdEndpointsClient.java
new file mode 100644
index 000000000000..f65226b384c0
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdEndpointsClient.java
@@ -0,0 +1,460 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.AfdEndpointInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.UsageInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ValidateCustomDomainOutputInner;
+import com.azure.resourcemanager.cdn.generated.models.AfdEndpointUpdateParameters;
+import com.azure.resourcemanager.cdn.generated.models.AfdPurgeParameters;
+import com.azure.resourcemanager.cdn.generated.models.ValidateCustomDomainInput;
+
+/**
+ * An instance of this class provides access to all the operations defined in AfdEndpointsClient.
+ */
+public interface AfdEndpointsClient {
+ /**
+ * Lists existing AzureFrontDoor endpoints.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list endpoints as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName);
+
+ /**
+ * Lists existing AzureFrontDoor endpoints.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list endpoints as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Gets an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdEndpointInner get(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Creates a new AzureFrontDoor endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door endpoint is the entity within a Azure Front Door
+ * profile containing configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdEndpointInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, AfdEndpointInner endpointParam);
+
+ /**
+ * Creates a new AzureFrontDoor endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door endpoint is the entity within a Azure Front Door
+ * profile containing configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdEndpointInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, AfdEndpointInner endpointParam, Context context);
+
+ /**
+ * Creates a new AzureFrontDoor endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door endpoint is the entity within a Azure Front Door profile containing configuration
+ * information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdEndpointInner create(String resourceGroupName, String profileName, String endpointName,
+ AfdEndpointInner endpointParam);
+
+ /**
+ * Creates a new AzureFrontDoor endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door endpoint is the entity within a Azure Front Door profile containing configuration
+ * information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdEndpointInner create(String resourceGroupName, String profileName, String endpointName,
+ AfdEndpointInner endpointParam, Context context);
+
+ /**
+ * Updates an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile. Only tags can be updated after creating an endpoint. To update origins, use the
+ * Update Origin operation. To update origin groups, use the Update Origin group operation. To update domains, use
+ * the Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door endpoint is the entity within a Azure Front Door
+ * profile containing configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdEndpointInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, AfdEndpointUpdateParameters endpointUpdateProperties);
+
+ /**
+ * Updates an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile. Only tags can be updated after creating an endpoint. To update origins, use the
+ * Update Origin operation. To update origin groups, use the Update Origin group operation. To update domains, use
+ * the Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door endpoint is the entity within a Azure Front Door
+ * profile containing configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdEndpointInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, AfdEndpointUpdateParameters endpointUpdateProperties, Context context);
+
+ /**
+ * Updates an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile. Only tags can be updated after creating an endpoint. To update origins, use the
+ * Update Origin operation. To update origin groups, use the Update Origin group operation. To update domains, use
+ * the Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door endpoint is the entity within a Azure Front Door profile containing configuration
+ * information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdEndpointInner update(String resourceGroupName, String profileName, String endpointName,
+ AfdEndpointUpdateParameters endpointUpdateProperties);
+
+ /**
+ * Updates an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile. Only tags can be updated after creating an endpoint. To update origins, use the
+ * Update Origin operation. To update origin groups, use the Update Origin group operation. To update domains, use
+ * the Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door endpoint is the entity within a Azure Front Door profile containing configuration
+ * information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdEndpointInner update(String resourceGroupName, String profileName, String endpointName,
+ AfdEndpointUpdateParameters endpointUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Deletes an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Deletes an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Deletes an existing AzureFrontDoor endpoint with the specified endpoint name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, Context context);
+
+ /**
+ * Removes a content from AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contents The list of paths to the content and the list of linked domains to be purged. Path can be a full
+ * URL, e.g. '/pictures/city.png' which removes a single file, or a directory with a wildcard, e.g. '/pictures/*'
+ * which removes all folders and files in the directory.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginPurgeContent(String resourceGroupName, String profileName,
+ String endpointName, AfdPurgeParameters contents);
+
+ /**
+ * Removes a content from AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contents The list of paths to the content and the list of linked domains to be purged. Path can be a full
+ * URL, e.g. '/pictures/city.png' which removes a single file, or a directory with a wildcard, e.g. '/pictures/*'
+ * which removes all folders and files in the directory.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginPurgeContent(String resourceGroupName, String profileName,
+ String endpointName, AfdPurgeParameters contents, Context context);
+
+ /**
+ * Removes a content from AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contents The list of paths to the content and the list of linked domains to be purged. Path can be a full
+ * URL, e.g. '/pictures/city.png' which removes a single file, or a directory with a wildcard, e.g. '/pictures/*'
+ * which removes all folders and files in the directory.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void purgeContent(String resourceGroupName, String profileName, String endpointName, AfdPurgeParameters contents);
+
+ /**
+ * Removes a content from AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contents The list of paths to the content and the list of linked domains to be purged. Path can be a full
+ * URL, e.g. '/pictures/city.png' which removes a single file, or a directory with a wildcard, e.g. '/pictures/*'
+ * which removes all folders and files in the directory.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void purgeContent(String resourceGroupName, String profileName, String endpointName, AfdPurgeParameters contents,
+ Context context);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Validates the custom domain mapping to ensure it maps to the correct Azure Front Door endpoint in DNS.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainProperties Custom domain to be validated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of custom domain validation along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateCustomDomainWithResponse(String resourceGroupName,
+ String profileName, String endpointName, ValidateCustomDomainInput customDomainProperties, Context context);
+
+ /**
+ * Validates the custom domain mapping to ensure it maps to the correct Azure Front Door endpoint in DNS.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainProperties Custom domain to be validated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of custom domain validation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ValidateCustomDomainOutputInner validateCustomDomain(String resourceGroupName, String profileName,
+ String endpointName, ValidateCustomDomainInput customDomainProperties);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdOriginGroupsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdOriginGroupsClient.java
new file mode 100644
index 000000000000..8ae6cab95ad1
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdOriginGroupsClient.java
@@ -0,0 +1,325 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.AfdOriginGroupInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.UsageInner;
+import com.azure.resourcemanager.cdn.generated.models.AfdOriginGroupUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in AfdOriginGroupsClient.
+ */
+public interface AfdOriginGroupsClient {
+ /**
+ * Lists all of the existing origin groups within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origin groups as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName);
+
+ /**
+ * Lists all of the existing origin groups within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origin groups as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin group within a profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String originGroupName,
+ Context context);
+
+ /**
+ * Gets an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin group within a profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginGroupInner get(String resourceGroupName, String profileName, String originGroupName);
+
+ /**
+ * Creates a new origin group within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of aFDOrigin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginGroupInner> beginCreate(String resourceGroupName,
+ String profileName, String originGroupName, AfdOriginGroupInner originGroup);
+
+ /**
+ * Creates a new origin group within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of aFDOrigin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginGroupInner> beginCreate(String resourceGroupName,
+ String profileName, String originGroupName, AfdOriginGroupInner originGroup, Context context);
+
+ /**
+ * Creates a new origin group within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return aFDOrigin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginGroupInner create(String resourceGroupName, String profileName, String originGroupName,
+ AfdOriginGroupInner originGroup);
+
+ /**
+ * Creates a new origin group within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return aFDOrigin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginGroupInner create(String resourceGroupName, String profileName, String originGroupName,
+ AfdOriginGroupInner originGroup, Context context);
+
+ /**
+ * Updates an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of aFDOrigin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginGroupInner> beginUpdate(String resourceGroupName,
+ String profileName, String originGroupName, AfdOriginGroupUpdateParameters originGroupUpdateProperties);
+
+ /**
+ * Updates an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of aFDOrigin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginGroupInner> beginUpdate(String resourceGroupName,
+ String profileName, String originGroupName, AfdOriginGroupUpdateParameters originGroupUpdateProperties,
+ Context context);
+
+ /**
+ * Updates an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return aFDOrigin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginGroupInner update(String resourceGroupName, String profileName, String originGroupName,
+ AfdOriginGroupUpdateParameters originGroupUpdateProperties);
+
+ /**
+ * Updates an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return aFDOrigin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginGroupInner update(String resourceGroupName, String profileName, String originGroupName,
+ AfdOriginGroupUpdateParameters originGroupUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName,
+ String originGroupName);
+
+ /**
+ * Deletes an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String originGroupName,
+ Context context);
+
+ /**
+ * Deletes an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String originGroupName);
+
+ /**
+ * Deletes an existing origin group within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String originGroupName, Context context);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile..
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, String originGroupName);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile..
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, String originGroupName,
+ Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdOriginsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdOriginsClient.java
new file mode 100644
index 000000000000..5a687cf28bd1
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdOriginsClient.java
@@ -0,0 +1,306 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.AfdOriginInner;
+import com.azure.resourcemanager.cdn.generated.models.AfdOriginUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in AfdOriginsClient.
+ */
+public interface AfdOriginsClient {
+ /**
+ * Lists all of the existing origins within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origins as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByOriginGroup(String resourceGroupName, String profileName,
+ String originGroupName);
+
+ /**
+ * Lists all of the existing origins within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origins as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByOriginGroup(String resourceGroupName, String profileName,
+ String originGroupName, Context context);
+
+ /**
+ * Gets an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin within an origin group along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String originGroupName,
+ String originName, Context context);
+
+ /**
+ * Gets an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin within an origin group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginInner get(String resourceGroupName, String profileName, String originGroupName, String originName);
+
+ /**
+ * Creates a new origin within the specified origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin that is unique within the profile.
+ * @param origin Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door origin is the source of the content being
+ * delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginInner> beginCreate(String resourceGroupName, String profileName,
+ String originGroupName, String originName, AfdOriginInner origin);
+
+ /**
+ * Creates a new origin within the specified origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin that is unique within the profile.
+ * @param origin Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door origin is the source of the content being
+ * delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginInner> beginCreate(String resourceGroupName, String profileName,
+ String originGroupName, String originName, AfdOriginInner origin, Context context);
+
+ /**
+ * Creates a new origin within the specified origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin that is unique within the profile.
+ * @param origin Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door origin is the source of the content being delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginInner create(String resourceGroupName, String profileName, String originGroupName, String originName,
+ AfdOriginInner origin);
+
+ /**
+ * Creates a new origin within the specified origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin that is unique within the profile.
+ * @param origin Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door origin is the source of the content being delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginInner create(String resourceGroupName, String profileName, String originGroupName, String originName,
+ AfdOriginInner origin, Context context);
+
+ /**
+ * Updates an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @param originUpdateProperties Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door origin is the source of the content being
+ * delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginInner> beginUpdate(String resourceGroupName, String profileName,
+ String originGroupName, String originName, AfdOriginUpdateParameters originUpdateProperties);
+
+ /**
+ * Updates an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @param originUpdateProperties Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of azure Front Door origin is the source of the content being
+ * delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, AfdOriginInner> beginUpdate(String resourceGroupName, String profileName,
+ String originGroupName, String originName, AfdOriginUpdateParameters originUpdateProperties, Context context);
+
+ /**
+ * Updates an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @param originUpdateProperties Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door origin is the source of the content being delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginInner update(String resourceGroupName, String profileName, String originGroupName, String originName,
+ AfdOriginUpdateParameters originUpdateProperties);
+
+ /**
+ * Updates an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @param originUpdateProperties Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return azure Front Door origin is the source of the content being delivered via Azure Front Door.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ AfdOriginInner update(String resourceGroupName, String profileName, String originGroupName, String originName,
+ AfdOriginUpdateParameters originUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String originGroupName,
+ String originName);
+
+ /**
+ * Deletes an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String originGroupName,
+ String originName, Context context);
+
+ /**
+ * Deletes an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String originGroupName, String originName);
+
+ /**
+ * Deletes an existing origin within an origin group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param originGroupName Name of the origin group which is unique within the profile.
+ * @param originName Name of the origin which is unique within the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String originGroupName, String originName,
+ Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdProfilesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdProfilesClient.java
new file mode 100644
index 000000000000..e0d2ab28b435
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/AfdProfilesClient.java
@@ -0,0 +1,224 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.CheckEndpointNameAvailabilityOutputInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.CheckNameAvailabilityOutputInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ProfileInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.UsageInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ValidateSecretOutputInner;
+import com.azure.resourcemanager.cdn.generated.models.CheckEndpointNameAvailabilityInput;
+import com.azure.resourcemanager.cdn.generated.models.CheckHostnameAvailabilityInput;
+import com.azure.resourcemanager.cdn.generated.models.ProfileUpgradeParameters;
+import com.azure.resourcemanager.cdn.generated.models.ValidateSecretInput;
+
+/**
+ * An instance of this class provides access to all the operations defined in AfdProfilesClient.
+ */
+public interface AfdProfilesClient {
+ /**
+ * Check the availability of an afdx endpoint name, and return the globally unique endpoint host name.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param checkEndpointNameAvailabilityInput Input to check.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkEndpointNameAvailabilityWithResponse(
+ String resourceGroupName, String profileName,
+ CheckEndpointNameAvailabilityInput checkEndpointNameAvailabilityInput, Context context);
+
+ /**
+ * Check the availability of an afdx endpoint name, and return the globally unique endpoint host name.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param checkEndpointNameAvailabilityInput Input to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckEndpointNameAvailabilityOutputInner checkEndpointNameAvailability(String resourceGroupName, String profileName,
+ CheckEndpointNameAvailabilityInput checkEndpointNameAvailabilityInput);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Validates the custom domain mapping to ensure it maps to the correct Azure Front Door endpoint in DNS.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param checkHostnameAvailabilityInput Custom domain to be validated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkHostnameAvailabilityWithResponse(String resourceGroupName,
+ String profileName, CheckHostnameAvailabilityInput checkHostnameAvailabilityInput, Context context);
+
+ /**
+ * Validates the custom domain mapping to ensure it maps to the correct Azure Front Door endpoint in DNS.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param checkHostnameAvailabilityInput Custom domain to be validated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckNameAvailabilityOutputInner checkHostnameAvailability(String resourceGroupName, String profileName,
+ CheckHostnameAvailabilityInput checkHostnameAvailabilityInput);
+
+ /**
+ * Validate a Secret in the profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param validateSecretInput The Secret source.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of the validated secret along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateSecretWithResponse(String resourceGroupName, String profileName,
+ ValidateSecretInput validateSecretInput, Context context);
+
+ /**
+ * Validate a Secret in the profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param validateSecretInput The Secret source.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of the validated secret.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ValidateSecretOutputInner validateSecret(String resourceGroupName, String profileName,
+ ValidateSecretInput validateSecretInput);
+
+ /**
+ * Upgrade a profile from Standard_AzureFrontDoor to Premium_AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param profileUpgradeParameters Profile upgrade input parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of a profile is a logical grouping of endpoints that share the same
+ * settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProfileInner> beginUpgrade(String resourceGroupName, String profileName,
+ ProfileUpgradeParameters profileUpgradeParameters);
+
+ /**
+ * Upgrade a profile from Standard_AzureFrontDoor to Premium_AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param profileUpgradeParameters Profile upgrade input parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of a profile is a logical grouping of endpoints that share the same
+ * settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProfileInner> beginUpgrade(String resourceGroupName, String profileName,
+ ProfileUpgradeParameters profileUpgradeParameters, Context context);
+
+ /**
+ * Upgrade a profile from Standard_AzureFrontDoor to Premium_AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param profileUpgradeParameters Profile upgrade input parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a profile is a logical grouping of endpoints that share the same settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProfileInner upgrade(String resourceGroupName, String profileName,
+ ProfileUpgradeParameters profileUpgradeParameters);
+
+ /**
+ * Upgrade a profile from Standard_AzureFrontDoor to Premium_AzureFrontDoor.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param profileUpgradeParameters Profile upgrade input parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a profile is a logical grouping of endpoints that share the same settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProfileInner upgrade(String resourceGroupName, String profileName,
+ ProfileUpgradeParameters profileUpgradeParameters, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/CdnManagementClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/CdnManagementClient.java
new file mode 100644
index 000000000000..b00c0097b23c
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/CdnManagementClient.java
@@ -0,0 +1,202 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.http.HttpPipeline;
+import java.time.Duration;
+
+/**
+ * The interface for CdnManagementClient class.
+ */
+public interface CdnManagementClient {
+ /**
+ * Gets Azure Subscription ID.
+ *
+ * @return the subscriptionId value.
+ */
+ String getSubscriptionId();
+
+ /**
+ * Gets server parameter.
+ *
+ * @return the endpoint value.
+ */
+ String getEndpoint();
+
+ /**
+ * Gets Api Version.
+ *
+ * @return the apiVersion value.
+ */
+ String getApiVersion();
+
+ /**
+ * Gets The HTTP pipeline to send requests through.
+ *
+ * @return the httpPipeline value.
+ */
+ HttpPipeline getHttpPipeline();
+
+ /**
+ * Gets The default poll interval for long-running operation.
+ *
+ * @return the defaultPollInterval value.
+ */
+ Duration getDefaultPollInterval();
+
+ /**
+ * Gets the ResourceProvidersClient object to access its operations.
+ *
+ * @return the ResourceProvidersClient object.
+ */
+ ResourceProvidersClient getResourceProviders();
+
+ /**
+ * Gets the AfdProfilesClient object to access its operations.
+ *
+ * @return the AfdProfilesClient object.
+ */
+ AfdProfilesClient getAfdProfiles();
+
+ /**
+ * Gets the AfdCustomDomainsClient object to access its operations.
+ *
+ * @return the AfdCustomDomainsClient object.
+ */
+ AfdCustomDomainsClient getAfdCustomDomains();
+
+ /**
+ * Gets the AfdEndpointsClient object to access its operations.
+ *
+ * @return the AfdEndpointsClient object.
+ */
+ AfdEndpointsClient getAfdEndpoints();
+
+ /**
+ * Gets the AfdOriginGroupsClient object to access its operations.
+ *
+ * @return the AfdOriginGroupsClient object.
+ */
+ AfdOriginGroupsClient getAfdOriginGroups();
+
+ /**
+ * Gets the AfdOriginsClient object to access its operations.
+ *
+ * @return the AfdOriginsClient object.
+ */
+ AfdOriginsClient getAfdOrigins();
+
+ /**
+ * Gets the RoutesClient object to access its operations.
+ *
+ * @return the RoutesClient object.
+ */
+ RoutesClient getRoutes();
+
+ /**
+ * Gets the RuleSetsClient object to access its operations.
+ *
+ * @return the RuleSetsClient object.
+ */
+ RuleSetsClient getRuleSets();
+
+ /**
+ * Gets the RulesClient object to access its operations.
+ *
+ * @return the RulesClient object.
+ */
+ RulesClient getRules();
+
+ /**
+ * Gets the SecurityPoliciesClient object to access its operations.
+ *
+ * @return the SecurityPoliciesClient object.
+ */
+ SecurityPoliciesClient getSecurityPolicies();
+
+ /**
+ * Gets the SecretsClient object to access its operations.
+ *
+ * @return the SecretsClient object.
+ */
+ SecretsClient getSecrets();
+
+ /**
+ * Gets the LogAnalyticsClient object to access its operations.
+ *
+ * @return the LogAnalyticsClient object.
+ */
+ LogAnalyticsClient getLogAnalytics();
+
+ /**
+ * Gets the ProfilesClient object to access its operations.
+ *
+ * @return the ProfilesClient object.
+ */
+ ProfilesClient getProfiles();
+
+ /**
+ * Gets the EndpointsClient object to access its operations.
+ *
+ * @return the EndpointsClient object.
+ */
+ EndpointsClient getEndpoints();
+
+ /**
+ * Gets the OriginsClient object to access its operations.
+ *
+ * @return the OriginsClient object.
+ */
+ OriginsClient getOrigins();
+
+ /**
+ * Gets the OriginGroupsClient object to access its operations.
+ *
+ * @return the OriginGroupsClient object.
+ */
+ OriginGroupsClient getOriginGroups();
+
+ /**
+ * Gets the CustomDomainsClient object to access its operations.
+ *
+ * @return the CustomDomainsClient object.
+ */
+ CustomDomainsClient getCustomDomains();
+
+ /**
+ * Gets the ResourceUsagesClient object to access its operations.
+ *
+ * @return the ResourceUsagesClient object.
+ */
+ ResourceUsagesClient getResourceUsages();
+
+ /**
+ * Gets the OperationsClient object to access its operations.
+ *
+ * @return the OperationsClient object.
+ */
+ OperationsClient getOperations();
+
+ /**
+ * Gets the EdgeNodesClient object to access its operations.
+ *
+ * @return the EdgeNodesClient object.
+ */
+ EdgeNodesClient getEdgeNodes();
+
+ /**
+ * Gets the PoliciesClient object to access its operations.
+ *
+ * @return the PoliciesClient object.
+ */
+ PoliciesClient getPolicies();
+
+ /**
+ * Gets the ManagedRuleSetsClient object to access its operations.
+ *
+ * @return the ManagedRuleSetsClient object.
+ */
+ ManagedRuleSetsClient getManagedRuleSets();
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/CustomDomainsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/CustomDomainsClient.java
new file mode 100644
index 000000000000..aaef40152d6b
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/CustomDomainsClient.java
@@ -0,0 +1,372 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.CustomDomainInner;
+import com.azure.resourcemanager.cdn.generated.models.CustomDomainHttpsParameters;
+import com.azure.resourcemanager.cdn.generated.models.CustomDomainParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in CustomDomainsClient.
+ */
+public interface CustomDomainsClient {
+ /**
+ * Lists all of the existing custom domains within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list custom domains as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Lists all of the existing custom domains within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list custom domains as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Gets an existing custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing custom domain within an endpoint along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String endpointName,
+ String customDomainName, Context context);
+
+ /**
+ * Gets an existing custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing custom domain within an endpoint.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner get(String resourceGroupName, String profileName, String endpointName, String customDomainName);
+
+ /**
+ * Creates a new custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param customDomainProperties Properties required to create a new custom domain.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginCreate(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName,
+ CustomDomainParameters customDomainProperties);
+
+ /**
+ * Creates a new custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param customDomainProperties Properties required to create a new custom domain.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginCreate(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName, CustomDomainParameters customDomainProperties,
+ Context context);
+
+ /**
+ * Creates a new custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param customDomainProperties Properties required to create a new custom domain.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner create(String resourceGroupName, String profileName, String endpointName, String customDomainName,
+ CustomDomainParameters customDomainProperties);
+
+ /**
+ * Creates a new custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param customDomainProperties Properties required to create a new custom domain.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner create(String resourceGroupName, String profileName, String endpointName, String customDomainName,
+ CustomDomainParameters customDomainProperties, Context context);
+
+ /**
+ * Deletes an existing custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginDelete(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName);
+
+ /**
+ * Deletes an existing custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginDelete(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName, Context context);
+
+ /**
+ * Deletes an existing custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner delete(String resourceGroupName, String profileName, String endpointName,
+ String customDomainName);
+
+ /**
+ * Deletes an existing custom domain within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the response.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner delete(String resourceGroupName, String profileName, String endpointName, String customDomainName,
+ Context context);
+
+ /**
+ * Disable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginDisableCustomHttps(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName);
+
+ /**
+ * Disable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginDisableCustomHttps(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName, Context context);
+
+ /**
+ * Disable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner disableCustomHttps(String resourceGroupName, String profileName, String endpointName,
+ String customDomainName);
+
+ /**
+ * Disable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner disableCustomHttps(String resourceGroupName, String profileName, String endpointName,
+ String customDomainName, Context context);
+
+ /**
+ * Enable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginEnableCustomHttps(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName);
+
+ /**
+ * Enable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param customDomainHttpsParameters The configuration specifying how to enable HTTPS for the custom domain - using
+ * CDN managed certificate or user's own certificate. If not specified, enabling ssl uses CDN managed certificate by
+ * default.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly domain name mapping to the endpoint hostname that the
+ * customer provides for branding purposes, e.g.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CustomDomainInner> beginEnableCustomHttps(String resourceGroupName,
+ String profileName, String endpointName, String customDomainName,
+ CustomDomainHttpsParameters customDomainHttpsParameters, Context context);
+
+ /**
+ * Enable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner enableCustomHttps(String resourceGroupName, String profileName, String endpointName,
+ String customDomainName);
+
+ /**
+ * Enable https delivery of the custom domain.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainName Name of the custom domain within an endpoint.
+ * @param customDomainHttpsParameters The configuration specifying how to enable HTTPS for the custom domain - using
+ * CDN managed certificate or user's own certificate. If not specified, enabling ssl uses CDN managed certificate by
+ * default.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes,
+ * e.g.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CustomDomainInner enableCustomHttps(String resourceGroupName, String profileName, String endpointName,
+ String customDomainName, CustomDomainHttpsParameters customDomainHttpsParameters, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/EdgeNodesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/EdgeNodesClient.java
new file mode 100644
index 000000000000..5fd02b1cd68e
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/EdgeNodesClient.java
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.cdn.generated.fluent.models.EdgeNodeInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in EdgeNodesClient.
+ */
+public interface EdgeNodesClient {
+ /**
+ * Edgenodes are the global Point of Presence (POP) locations used to deliver CDN content to end users.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list CDN edgenodes as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Edgenodes are the global Point of Presence (POP) locations used to deliver CDN content to end users.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list CDN edgenodes as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/EndpointsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/EndpointsClient.java
new file mode 100644
index 000000000000..789190752488
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/EndpointsClient.java
@@ -0,0 +1,635 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.EndpointInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ResourceUsageInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ValidateCustomDomainOutputInner;
+import com.azure.resourcemanager.cdn.generated.models.EndpointUpdateParameters;
+import com.azure.resourcemanager.cdn.generated.models.LoadParameters;
+import com.azure.resourcemanager.cdn.generated.models.PurgeParameters;
+import com.azure.resourcemanager.cdn.generated.models.ValidateCustomDomainInput;
+
+/**
+ * An instance of this class provides access to all the operations defined in EndpointsClient.
+ */
+public interface EndpointsClient {
+ /**
+ * Lists existing CDN endpoints.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list endpoints as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName);
+
+ /**
+ * Lists existing CDN endpoints.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list endpoints as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets an existing CDN endpoint with the specified endpoint name under the specified subscription, resource group
+ * and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Gets an existing CDN endpoint with the specified endpoint name under the specified subscription, resource group
+ * and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner get(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Creates a new CDN endpoint with the specified endpoint name under the specified subscription, resource group and
+ * profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, EndpointInner endpointParam);
+
+ /**
+ * Creates a new CDN endpoint with the specified endpoint name under the specified subscription, resource group and
+ * profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, EndpointInner endpointParam, Context context);
+
+ /**
+ * Creates a new CDN endpoint with the specified endpoint name under the specified subscription, resource group and
+ * profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner create(String resourceGroupName, String profileName, String endpointName,
+ EndpointInner endpointParam);
+
+ /**
+ * Creates a new CDN endpoint with the specified endpoint name under the specified subscription, resource group and
+ * profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointParam Endpoint properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner create(String resourceGroupName, String profileName, String endpointName, EndpointInner endpointParam,
+ Context context);
+
+ /**
+ * Updates an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile. Only tags can be updated after creating an endpoint. To update origins, use the Update Origin
+ * operation. To update origin groups, use the Update Origin group operation. To update custom domains, use the
+ * Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, EndpointUpdateParameters endpointUpdateProperties);
+
+ /**
+ * Updates an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile. Only tags can be updated after creating an endpoint. To update origins, use the Update Origin
+ * operation. To update origin groups, use the Update Origin group operation. To update custom domains, use the
+ * Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, EndpointUpdateParameters endpointUpdateProperties, Context context);
+
+ /**
+ * Updates an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile. Only tags can be updated after creating an endpoint. To update origins, use the Update Origin
+ * operation. To update origin groups, use the Update Origin group operation. To update custom domains, use the
+ * Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner update(String resourceGroupName, String profileName, String endpointName,
+ EndpointUpdateParameters endpointUpdateProperties);
+
+ /**
+ * Updates an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile. Only tags can be updated after creating an endpoint. To update origins, use the Update Origin
+ * operation. To update origin groups, use the Update Origin group operation. To update custom domains, use the
+ * Update Custom Domain operation.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param endpointUpdateProperties Endpoint update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner update(String resourceGroupName, String profileName, String endpointName,
+ EndpointUpdateParameters endpointUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Deletes an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Deletes an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Deletes an existing CDN endpoint with the specified endpoint name under the specified subscription, resource
+ * group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, Context context);
+
+ /**
+ * Starts an existing CDN endpoint that is on a stopped state.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginStart(String resourceGroupName, String profileName,
+ String endpointName);
+
+ /**
+ * Starts an existing CDN endpoint that is on a stopped state.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginStart(String resourceGroupName, String profileName,
+ String endpointName, Context context);
+
+ /**
+ * Starts an existing CDN endpoint that is on a stopped state.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner start(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Starts an existing CDN endpoint that is on a stopped state.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner start(String resourceGroupName, String profileName, String endpointName, Context context);
+
+ /**
+ * Stops an existing running CDN endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginStop(String resourceGroupName, String profileName,
+ String endpointName);
+
+ /**
+ * Stops an existing running CDN endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN endpoint is the entity within a CDN profile containing
+ * configuration information such as origin, protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, EndpointInner> beginStop(String resourceGroupName, String profileName,
+ String endpointName, Context context);
+
+ /**
+ * Stops an existing running CDN endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner stop(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Stops an existing running CDN endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN endpoint is the entity within a CDN profile containing configuration information such as origin,
+ * protocol, content caching and delivery behavior.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ EndpointInner stop(String resourceGroupName, String profileName, String endpointName, Context context);
+
+ /**
+ * Removes a content from CDN.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be purged. Path can be a full URL, e.g. '/pictures/city.png'
+ * which removes a single file, or a directory with a wildcard, e.g. '/pictures/*' which removes all folders and
+ * files in the directory.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginPurgeContent(String resourceGroupName, String profileName,
+ String endpointName, PurgeParameters contentFilePaths);
+
+ /**
+ * Removes a content from CDN.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be purged. Path can be a full URL, e.g. '/pictures/city.png'
+ * which removes a single file, or a directory with a wildcard, e.g. '/pictures/*' which removes all folders and
+ * files in the directory.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginPurgeContent(String resourceGroupName, String profileName,
+ String endpointName, PurgeParameters contentFilePaths, Context context);
+
+ /**
+ * Removes a content from CDN.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be purged. Path can be a full URL, e.g. '/pictures/city.png'
+ * which removes a single file, or a directory with a wildcard, e.g. '/pictures/*' which removes all folders and
+ * files in the directory.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void purgeContent(String resourceGroupName, String profileName, String endpointName,
+ PurgeParameters contentFilePaths);
+
+ /**
+ * Removes a content from CDN.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be purged. Path can be a full URL, e.g. '/pictures/city.png'
+ * which removes a single file, or a directory with a wildcard, e.g. '/pictures/*' which removes all folders and
+ * files in the directory.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void purgeContent(String resourceGroupName, String profileName, String endpointName,
+ PurgeParameters contentFilePaths, Context context);
+
+ /**
+ * Pre-loads a content to CDN. Available for Verizon Profiles.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be loaded. Path should be a full URL, e.g.
+ * ‘/pictures/city.png' which loads a single file.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginLoadContent(String resourceGroupName, String profileName,
+ String endpointName, LoadParameters contentFilePaths);
+
+ /**
+ * Pre-loads a content to CDN. Available for Verizon Profiles.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be loaded. Path should be a full URL, e.g.
+ * ‘/pictures/city.png' which loads a single file.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginLoadContent(String resourceGroupName, String profileName,
+ String endpointName, LoadParameters contentFilePaths, Context context);
+
+ /**
+ * Pre-loads a content to CDN. Available for Verizon Profiles.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be loaded. Path should be a full URL, e.g.
+ * ‘/pictures/city.png' which loads a single file.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void loadContent(String resourceGroupName, String profileName, String endpointName,
+ LoadParameters contentFilePaths);
+
+ /**
+ * Pre-loads a content to CDN. Available for Verizon Profiles.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param contentFilePaths The path to the content to be loaded. Path should be a full URL, e.g.
+ * ‘/pictures/city.png' which loads a single file.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void loadContent(String resourceGroupName, String profileName, String endpointName, LoadParameters contentFilePaths,
+ Context context);
+
+ /**
+ * Validates the custom domain mapping to ensure it maps to the correct CDN endpoint in DNS.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainProperties Custom domain to be validated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of custom domain validation along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateCustomDomainWithResponse(String resourceGroupName,
+ String profileName, String endpointName, ValidateCustomDomainInput customDomainProperties, Context context);
+
+ /**
+ * Validates the custom domain mapping to ensure it maps to the correct CDN endpoint in DNS.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param customDomainProperties Custom domain to be validated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of custom domain validation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ValidateCustomDomainOutputInner validateCustomDomain(String resourceGroupName, String profileName,
+ String endpointName, ValidateCustomDomainInput customDomainProperties);
+
+ /**
+ * Checks the quota and usage of geo filters and custom domains under the given endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check resource usage API as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName,
+ String endpointName);
+
+ /**
+ * Checks the quota and usage of geo filters and custom domains under the given endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check resource usage API as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName,
+ String endpointName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/LogAnalyticsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/LogAnalyticsClient.java
new file mode 100644
index 000000000000..1e3e9da3022b
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/LogAnalyticsClient.java
@@ -0,0 +1,277 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ContinentsResponseInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.MetricsResponseInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.RankingsResponseInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ResourcesResponseInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.WafMetricsResponseInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.WafRankingsResponseInner;
+import com.azure.resourcemanager.cdn.generated.models.LogMetric;
+import com.azure.resourcemanager.cdn.generated.models.LogMetricsGranularity;
+import com.azure.resourcemanager.cdn.generated.models.LogMetricsGroupBy;
+import com.azure.resourcemanager.cdn.generated.models.LogRanking;
+import com.azure.resourcemanager.cdn.generated.models.LogRankingMetric;
+import com.azure.resourcemanager.cdn.generated.models.WafAction;
+import com.azure.resourcemanager.cdn.generated.models.WafGranularity;
+import com.azure.resourcemanager.cdn.generated.models.WafMetric;
+import com.azure.resourcemanager.cdn.generated.models.WafRankingGroupBy;
+import com.azure.resourcemanager.cdn.generated.models.WafRankingType;
+import com.azure.resourcemanager.cdn.generated.models.WafRuleType;
+import java.time.OffsetDateTime;
+import java.util.List;
+
+/**
+ * An instance of this class provides access to all the operations defined in LogAnalyticsClient.
+ */
+public interface LogAnalyticsClient {
+ /**
+ * Get log report for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param metrics The metrics parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @param granularity The granularity parameter.
+ * @param customDomains The customDomains parameter.
+ * @param protocols The protocols parameter.
+ * @param groupBy The groupBy parameter.
+ * @param continents The continents parameter.
+ * @param countryOrRegions The countryOrRegions parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return log report for AFD profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getLogAnalyticsMetricsWithResponse(String resourceGroupName, String profileName,
+ List metrics, OffsetDateTime dateTimeBegin, OffsetDateTime dateTimeEnd,
+ LogMetricsGranularity granularity, List customDomains, List protocols,
+ List groupBy, List continents, List countryOrRegions, Context context);
+
+ /**
+ * Get log report for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param metrics The metrics parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @param granularity The granularity parameter.
+ * @param customDomains The customDomains parameter.
+ * @param protocols The protocols parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return log report for AFD profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MetricsResponseInner getLogAnalyticsMetrics(String resourceGroupName, String profileName, List metrics,
+ OffsetDateTime dateTimeBegin, OffsetDateTime dateTimeEnd, LogMetricsGranularity granularity,
+ List customDomains, List protocols);
+
+ /**
+ * Get log analytics ranking report for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param rankings The rankings parameter.
+ * @param metrics The metrics parameter.
+ * @param maxRanking The maxRanking parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @param customDomains The customDomains parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return log analytics ranking report for AFD profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getLogAnalyticsRankingsWithResponse(String resourceGroupName, String profileName,
+ List rankings, List metrics, int maxRanking, OffsetDateTime dateTimeBegin,
+ OffsetDateTime dateTimeEnd, List customDomains, Context context);
+
+ /**
+ * Get log analytics ranking report for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param rankings The rankings parameter.
+ * @param metrics The metrics parameter.
+ * @param maxRanking The maxRanking parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return log analytics ranking report for AFD profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RankingsResponseInner getLogAnalyticsRankings(String resourceGroupName, String profileName,
+ List rankings, List metrics, int maxRanking, OffsetDateTime dateTimeBegin,
+ OffsetDateTime dateTimeEnd);
+
+ /**
+ * Get all available location names for AFD log analytics report.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all available location names for AFD log analytics report along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getLogAnalyticsLocationsWithResponse(String resourceGroupName, String profileName,
+ Context context);
+
+ /**
+ * Get all available location names for AFD log analytics report.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all available location names for AFD log analytics report.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ContinentsResponseInner getLogAnalyticsLocations(String resourceGroupName, String profileName);
+
+ /**
+ * Get all endpoints and custom domains available for AFD log report.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all endpoints and custom domains available for AFD log report along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getLogAnalyticsResourcesWithResponse(String resourceGroupName, String profileName,
+ Context context);
+
+ /**
+ * Get all endpoints and custom domains available for AFD log report.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return all endpoints and custom domains available for AFD log report.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ResourcesResponseInner getLogAnalyticsResources(String resourceGroupName, String profileName);
+
+ /**
+ * Get Waf related log analytics report for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param metrics The metrics parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @param granularity The granularity parameter.
+ * @param actions The actions parameter.
+ * @param groupBy The groupBy parameter.
+ * @param ruleTypes The ruleTypes parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return waf related log analytics report for AFD profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWafLogAnalyticsMetricsWithResponse(String resourceGroupName,
+ String profileName, List metrics, OffsetDateTime dateTimeBegin, OffsetDateTime dateTimeEnd,
+ WafGranularity granularity, List actions, List groupBy,
+ List ruleTypes, Context context);
+
+ /**
+ * Get Waf related log analytics report for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param metrics The metrics parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @param granularity The granularity parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return waf related log analytics report for AFD profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WafMetricsResponseInner getWafLogAnalyticsMetrics(String resourceGroupName, String profileName,
+ List metrics, OffsetDateTime dateTimeBegin, OffsetDateTime dateTimeEnd, WafGranularity granularity);
+
+ /**
+ * Get WAF log analytics charts for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param metrics The metrics parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @param maxRanking The maxRanking parameter.
+ * @param rankings The rankings parameter.
+ * @param actions The actions parameter.
+ * @param ruleTypes The ruleTypes parameter.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return wAF log analytics charts for AFD profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWafLogAnalyticsRankingsWithResponse(String resourceGroupName,
+ String profileName, List metrics, OffsetDateTime dateTimeBegin, OffsetDateTime dateTimeEnd,
+ int maxRanking, List rankings, List actions, List ruleTypes,
+ Context context);
+
+ /**
+ * Get WAF log analytics charts for AFD profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group. which is unique within the resource group.
+ * @param metrics The metrics parameter.
+ * @param dateTimeBegin The dateTimeBegin parameter.
+ * @param dateTimeEnd The dateTimeEnd parameter.
+ * @param maxRanking The maxRanking parameter.
+ * @param rankings The rankings parameter.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return wAF log analytics charts for AFD profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ WafRankingsResponseInner getWafLogAnalyticsRankings(String resourceGroupName, String profileName,
+ List metrics, OffsetDateTime dateTimeBegin, OffsetDateTime dateTimeEnd, int maxRanking,
+ List rankings);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ManagedRuleSetsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ManagedRuleSetsClient.java
new file mode 100644
index 000000000000..f114dcec83b9
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ManagedRuleSetsClient.java
@@ -0,0 +1,40 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ManagedRuleSetDefinitionInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ManagedRuleSetsClient.
+ */
+public interface ManagedRuleSetsClient {
+ /**
+ * Lists all available managed rule sets.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of managed rule set definitions available for use in a policy as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all available managed rule sets.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return list of managed rule set definitions available for use in a policy as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OperationsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OperationsClient.java
new file mode 100644
index 000000000000..d7a8cc46db37
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OperationsClient.java
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.cdn.generated.fluent.models.OperationInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in OperationsClient.
+ */
+public interface OperationsClient {
+ /**
+ * Lists all of the available CDN REST API operations.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list CDN operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the available CDN REST API operations.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list CDN operations as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OriginGroupsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OriginGroupsClient.java
new file mode 100644
index 000000000000..7de941a4fa72
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OriginGroupsClient.java
@@ -0,0 +1,294 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.OriginGroupInner;
+import com.azure.resourcemanager.cdn.generated.models.OriginGroupUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in OriginGroupsClient.
+ */
+public interface OriginGroupsClient {
+ /**
+ * Lists all of the existing origin groups within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origin groups as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Lists all of the existing origin groups within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origin groups as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Gets an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin group within an endpoint along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String endpointName,
+ String originGroupName, Context context);
+
+ /**
+ * Gets an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin group within an endpoint.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginGroupInner get(String resourceGroupName, String profileName, String endpointName, String originGroupName);
+
+ /**
+ * Creates a new origin group within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of origin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginGroupInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, String originGroupName, OriginGroupInner originGroup);
+
+ /**
+ * Creates a new origin group within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of origin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginGroupInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, String originGroupName, OriginGroupInner originGroup, Context context);
+
+ /**
+ * Creates a new origin group within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return origin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginGroupInner create(String resourceGroupName, String profileName, String endpointName, String originGroupName,
+ OriginGroupInner originGroup);
+
+ /**
+ * Creates a new origin group within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroup Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return origin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginGroupInner create(String resourceGroupName, String profileName, String endpointName, String originGroupName,
+ OriginGroupInner originGroup, Context context);
+
+ /**
+ * Updates an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of origin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginGroupInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, String originGroupName, OriginGroupUpdateParameters originGroupUpdateProperties);
+
+ /**
+ * Updates an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of origin group comprising of origins is used for load balancing to
+ * origins when the content cannot be served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginGroupInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, String originGroupName, OriginGroupUpdateParameters originGroupUpdateProperties,
+ Context context);
+
+ /**
+ * Updates an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return origin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginGroupInner update(String resourceGroupName, String profileName, String endpointName, String originGroupName,
+ OriginGroupUpdateParameters originGroupUpdateProperties);
+
+ /**
+ * Updates an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param originGroupUpdateProperties Origin group properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return origin group comprising of origins is used for load balancing to origins when the content cannot be
+ * served from CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginGroupInner update(String resourceGroupName, String profileName, String endpointName, String originGroupName,
+ OriginGroupUpdateParameters originGroupUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ String originGroupName);
+
+ /**
+ * Deletes an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ String originGroupName, Context context);
+
+ /**
+ * Deletes an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, String originGroupName);
+
+ /**
+ * Deletes an existing origin group within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originGroupName Name of the origin group which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, String originGroupName,
+ Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OriginsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OriginsClient.java
new file mode 100644
index 000000000000..4a648b7468fd
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/OriginsClient.java
@@ -0,0 +1,284 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.OriginInner;
+import com.azure.resourcemanager.cdn.generated.models.OriginUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in OriginsClient.
+ */
+public interface OriginsClient {
+ /**
+ * Lists all of the existing origins within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origins as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Lists all of the existing origins within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list origins as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Gets an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin within an endpoint along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String endpointName,
+ String originName, Context context);
+
+ /**
+ * Gets an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing origin within an endpoint.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginInner get(String resourceGroupName, String profileName, String endpointName, String originName);
+
+ /**
+ * Creates a new origin within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin that is unique within the endpoint.
+ * @param origin Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, String originName, OriginInner origin);
+
+ /**
+ * Creates a new origin within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin that is unique within the endpoint.
+ * @param origin Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, String originName, OriginInner origin, Context context);
+
+ /**
+ * Creates a new origin within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin that is unique within the endpoint.
+ * @param origin Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginInner create(String resourceGroupName, String profileName, String endpointName, String originName,
+ OriginInner origin);
+
+ /**
+ * Creates a new origin within the specified endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin that is unique within the endpoint.
+ * @param origin Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginInner create(String resourceGroupName, String profileName, String endpointName, String originName,
+ OriginInner origin, Context context);
+
+ /**
+ * Updates an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @param originUpdateProperties Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, String originName, OriginUpdateParameters originUpdateProperties);
+
+ /**
+ * Updates an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @param originUpdateProperties Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, OriginInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, String originName, OriginUpdateParameters originUpdateProperties, Context context);
+
+ /**
+ * Updates an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @param originUpdateProperties Origin properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginInner update(String resourceGroupName, String profileName, String endpointName, String originName,
+ OriginUpdateParameters originUpdateProperties);
+
+ /**
+ * Updates an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @param originUpdateProperties Origin properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return cDN origin is the source of the content being delivered via CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ OriginInner update(String resourceGroupName, String profileName, String endpointName, String originName,
+ OriginUpdateParameters originUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ String originName);
+
+ /**
+ * Deletes an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ String originName, Context context);
+
+ /**
+ * Deletes an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, String originName);
+
+ /**
+ * Deletes an existing origin within an endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param originName Name of the origin which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, String originName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/PoliciesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/PoliciesClient.java
new file mode 100644
index 000000000000..03f2e2705d7f
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/PoliciesClient.java
@@ -0,0 +1,233 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.CdnWebApplicationFirewallPolicyInner;
+import com.azure.resourcemanager.cdn.generated.models.CdnWebApplicationFirewallPolicyPatchParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in PoliciesClient.
+ */
+public interface PoliciesClient {
+ /**
+ * Lists all of the protection policies within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines a list of WebApplicationFirewallPolicies for Azure CDN as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the protection policies within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines a list of WebApplicationFirewallPolicies for Azure CDN as paginated response with
+ * {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Retrieve protection policy with specified name within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines web application firewall policy for Azure CDN along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName,
+ String policyName, Context context);
+
+ /**
+ * Retrieve protection policy with specified name within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CdnWebApplicationFirewallPolicyInner getByResourceGroup(String resourceGroupName, String policyName);
+
+ /**
+ * Create or update policy with specified rule set name within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicy Policy to be created.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CdnWebApplicationFirewallPolicyInner>
+ beginCreateOrUpdate(String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyInner cdnWebApplicationFirewallPolicy);
+
+ /**
+ * Create or update policy with specified rule set name within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicy Policy to be created.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CdnWebApplicationFirewallPolicyInner>
+ beginCreateOrUpdate(String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyInner cdnWebApplicationFirewallPolicy, Context context);
+
+ /**
+ * Create or update policy with specified rule set name within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicy Policy to be created.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CdnWebApplicationFirewallPolicyInner createOrUpdate(String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyInner cdnWebApplicationFirewallPolicy);
+
+ /**
+ * Create or update policy with specified rule set name within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicy Policy to be created.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CdnWebApplicationFirewallPolicyInner createOrUpdate(String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyInner cdnWebApplicationFirewallPolicy, Context context);
+
+ /**
+ * Update an existing CdnWebApplicationFirewallPolicy with the specified policy name under the specified
+ * subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicyPatchParameters CdnWebApplicationFirewallPolicy parameters to be patched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CdnWebApplicationFirewallPolicyInner> beginUpdate(
+ String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyPatchParameters cdnWebApplicationFirewallPolicyPatchParameters);
+
+ /**
+ * Update an existing CdnWebApplicationFirewallPolicy with the specified policy name under the specified
+ * subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicyPatchParameters CdnWebApplicationFirewallPolicy parameters to be patched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CdnWebApplicationFirewallPolicyInner> beginUpdate(
+ String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyPatchParameters cdnWebApplicationFirewallPolicyPatchParameters, Context context);
+
+ /**
+ * Update an existing CdnWebApplicationFirewallPolicy with the specified policy name under the specified
+ * subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicyPatchParameters CdnWebApplicationFirewallPolicy parameters to be patched.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CdnWebApplicationFirewallPolicyInner update(String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyPatchParameters cdnWebApplicationFirewallPolicyPatchParameters);
+
+ /**
+ * Update an existing CdnWebApplicationFirewallPolicy with the specified policy name under the specified
+ * subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param cdnWebApplicationFirewallPolicyPatchParameters CdnWebApplicationFirewallPolicy parameters to be patched.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return defines web application firewall policy for Azure CDN.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CdnWebApplicationFirewallPolicyInner update(String resourceGroupName, String policyName,
+ CdnWebApplicationFirewallPolicyPatchParameters cdnWebApplicationFirewallPolicyPatchParameters, Context context);
+
+ /**
+ * Deletes Policy.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response deleteWithResponse(String resourceGroupName, String policyName, Context context);
+
+ /**
+ * Deletes Policy.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param policyName The name of the CdnWebApplicationFirewallPolicy.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String policyName);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ProfilesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ProfilesClient.java
new file mode 100644
index 000000000000..1bfbb7f7c63d
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ProfilesClient.java
@@ -0,0 +1,766 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.CanMigrateResultInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.MigrateResultInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ProfileInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ResourceUsageInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.SsoUriInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.SupportedOptimizationTypesListResultInner;
+import com.azure.resourcemanager.cdn.generated.models.CanMigrateParameters;
+import com.azure.resourcemanager.cdn.generated.models.CdnMigrationToAfdParameters;
+import com.azure.resourcemanager.cdn.generated.models.MigrationParameters;
+import com.azure.resourcemanager.cdn.generated.models.ProfileUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in ProfilesClient.
+ */
+public interface ProfilesClient {
+ /**
+ * Lists all of the Azure Front Door Standard, Azure Front Door Premium, and CDN profiles within an Azure
+ * subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list profiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Lists all of the Azure Front Door Standard, Azure Front Door Premium, and CDN profiles within an Azure
+ * subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list profiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+
+ /**
+ * Lists all of the Azure Front Door Standard, Azure Front Door Premium, and CDN profiles within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list profiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName);
+
+ /**
+ * Lists all of the Azure Front Door Standard, Azure Front Door Premium, and CDN profiles within a resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list profiles as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByResourceGroup(String resourceGroupName, Context context);
+
+ /**
+ * Gets an Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified profile name
+ * under the specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified profile name
+ * under the specified subscription and resource group along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getByResourceGroupWithResponse(String resourceGroupName, String profileName,
+ Context context);
+
+ /**
+ * Gets an Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified profile name
+ * under the specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified profile name
+ * under the specified subscription and resource group.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProfileInner getByResourceGroup(String resourceGroupName, String profileName);
+
+ /**
+ * Creates a new Azure Front Door Standard or Azure Front Door Premium or CDN profile with a profile name under the
+ * specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profile Profile properties needed to create a new profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of a profile is a logical grouping of endpoints that share the same
+ * settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProfileInner> beginCreate(String resourceGroupName, String profileName,
+ ProfileInner profile);
+
+ /**
+ * Creates a new Azure Front Door Standard or Azure Front Door Premium or CDN profile with a profile name under the
+ * specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profile Profile properties needed to create a new profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of a profile is a logical grouping of endpoints that share the same
+ * settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProfileInner> beginCreate(String resourceGroupName, String profileName,
+ ProfileInner profile, Context context);
+
+ /**
+ * Creates a new Azure Front Door Standard or Azure Front Door Premium or CDN profile with a profile name under the
+ * specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profile Profile properties needed to create a new profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a profile is a logical grouping of endpoints that share the same settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProfileInner create(String resourceGroupName, String profileName, ProfileInner profile);
+
+ /**
+ * Creates a new Azure Front Door Standard or Azure Front Door Premium or CDN profile with a profile name under the
+ * specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profile Profile properties needed to create a new profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a profile is a logical grouping of endpoints that share the same settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProfileInner create(String resourceGroupName, String profileName, ProfileInner profile, Context context);
+
+ /**
+ * Updates an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * profile name under the specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profileUpdateParameters Profile properties needed to update an existing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of a profile is a logical grouping of endpoints that share the same
+ * settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProfileInner> beginUpdate(String resourceGroupName, String profileName,
+ ProfileUpdateParameters profileUpdateParameters);
+
+ /**
+ * Updates an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * profile name under the specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profileUpdateParameters Profile properties needed to update an existing profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of a profile is a logical grouping of endpoints that share the same
+ * settings.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, ProfileInner> beginUpdate(String resourceGroupName, String profileName,
+ ProfileUpdateParameters profileUpdateParameters, Context context);
+
+ /**
+ * Updates an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * profile name under the specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profileUpdateParameters Profile properties needed to update an existing profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a profile is a logical grouping of endpoints that share the same settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProfileInner update(String resourceGroupName, String profileName, ProfileUpdateParameters profileUpdateParameters);
+
+ /**
+ * Updates an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * profile name under the specified subscription and resource group.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param profileUpdateParameters Profile properties needed to update an existing profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return a profile is a logical grouping of endpoints that share the same settings.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ProfileInner update(String resourceGroupName, String profileName, ProfileUpdateParameters profileUpdateParameters,
+ Context context);
+
+ /**
+ * Deletes an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * parameters. Deleting a profile will result in the deletion of all of the sub-resources including endpoints,
+ * origins and custom domains.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName);
+
+ /**
+ * Deletes an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * parameters. Deleting a profile will result in the deletion of all of the sub-resources including endpoints,
+ * origins and custom domains.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Deletes an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * parameters. Deleting a profile will result in the deletion of all of the sub-resources including endpoints,
+ * origins and custom domains.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName);
+
+ /**
+ * Deletes an existing Azure Front Door Standard or Azure Front Door Premium or CDN profile with the specified
+ * parameters. Deleting a profile will result in the deletion of all of the sub-resources including endpoints,
+ * origins and custom domains.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param canMigrateParameters Properties needed to check if cdn profile or classic frontdoor can be migrated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CanMigrateResultInner> beginCanMigrate(String resourceGroupName,
+ CanMigrateParameters canMigrateParameters);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param canMigrateParameters Properties needed to check if cdn profile or classic frontdoor can be migrated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CanMigrateResultInner> beginCanMigrate(String resourceGroupName,
+ CanMigrateParameters canMigrateParameters, Context context);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param canMigrateParameters Properties needed to check if cdn profile or classic frontdoor can be migrated.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CanMigrateResultInner canMigrate(String resourceGroupName, CanMigrateParameters canMigrateParameters);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param canMigrateParameters Properties needed to check if cdn profile or classic frontdoor can be migrated.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CanMigrateResultInner canMigrate(String resourceGroupName, CanMigrateParameters canMigrateParameters,
+ Context context);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. The change need to be committed after this.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MigrateResultInner> beginMigrate(String resourceGroupName,
+ MigrationParameters migrationParameters);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. The change need to be committed after this.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MigrateResultInner> beginMigrate(String resourceGroupName,
+ MigrationParameters migrationParameters, Context context);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. The change need to be committed after this.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MigrateResultInner migrate(String resourceGroupName, MigrationParameters migrationParameters);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. The change need to be committed after this.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MigrateResultInner migrate(String resourceGroupName, MigrationParameters migrationParameters, Context context);
+
+ /**
+ * Commit the migrated Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginMigrationCommit(String resourceGroupName, String profileName);
+
+ /**
+ * Commit the migrated Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginMigrationCommit(String resourceGroupName, String profileName,
+ Context context);
+
+ /**
+ * Commit the migrated Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void migrationCommit(String resourceGroupName, String profileName);
+
+ /**
+ * Commit the migrated Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void migrationCommit(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Generates a dynamic SSO URI used to sign in to the CDN supplemental portal. Supplemental portal is used to
+ * configure advanced feature capabilities that are not yet available in the Azure portal, such as core reports in a
+ * standard profile; rules engine, advanced HTTP reports, and real-time stats and alerts in a premium profile. The
+ * SSO URI changes approximately every 10 minutes.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the URI required to login to the supplemental portal from the Azure portal along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response generateSsoUriWithResponse(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Generates a dynamic SSO URI used to sign in to the CDN supplemental portal. Supplemental portal is used to
+ * configure advanced feature capabilities that are not yet available in the Azure portal, such as core reports in a
+ * standard profile; rules engine, advanced HTTP reports, and real-time stats and alerts in a premium profile. The
+ * SSO URI changes approximately every 10 minutes.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the CDN profile which is unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the URI required to login to the supplemental portal from the Azure portal.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SsoUriInner generateSsoUri(String resourceGroupName, String profileName);
+
+ /**
+ * Gets the supported optimization types for the current profile. A user can create an endpoint with an optimization
+ * type from the listed values.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the supported optimization types for the current profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response
+ listSupportedOptimizationTypesWithResponse(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets the supported optimization types for the current profile. A user can create an endpoint with an optimization
+ * type from the listed values.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the supported optimization types for the current profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SupportedOptimizationTypesListResultInner listSupportedOptimizationTypes(String resourceGroupName,
+ String profileName);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door Standard or Azure Front Door
+ * Premium or CDN profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check resource usage API as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door Standard or Azure Front Door
+ * Premium or CDN profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium or CDN profile which is
+ * unique within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check resource usage API as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CanMigrateResultInner>
+ beginCdnCanMigrateToAfd(String resourceGroupName, String profileName);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, CanMigrateResultInner>
+ beginCdnCanMigrateToAfd(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CanMigrateResultInner cdnCanMigrateToAfd(String resourceGroupName, String profileName);
+
+ /**
+ * Checks if CDN profile can be migrated to Azure Frontdoor(Standard/Premium) profile.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for canMigrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CanMigrateResultInner cdnCanMigrateToAfd(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. This step prepares the profile for
+ * migration and will be followed by Commit to finalize the migration.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MigrateResultInner> beginCdnMigrateToAfd(String resourceGroupName,
+ String profileName, CdnMigrationToAfdParameters migrationParameters);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. This step prepares the profile for
+ * migration and will be followed by Commit to finalize the migration.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, MigrateResultInner> beginCdnMigrateToAfd(String resourceGroupName,
+ String profileName, CdnMigrationToAfdParameters migrationParameters, Context context);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. This step prepares the profile for
+ * migration and will be followed by Commit to finalize the migration.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MigrateResultInner cdnMigrateToAfd(String resourceGroupName, String profileName,
+ CdnMigrationToAfdParameters migrationParameters);
+
+ /**
+ * Migrate the CDN profile to Azure Frontdoor(Standard/Premium) profile. This step prepares the profile for
+ * migration and will be followed by Commit to finalize the migration.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param migrationParameters Properties needed to migrate the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result for migrate operation.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ MigrateResultInner cdnMigrateToAfd(String resourceGroupName, String profileName,
+ CdnMigrationToAfdParameters migrationParameters, Context context);
+
+ /**
+ * Abort the migration to Azure Frontdoor Premium/Standard.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginMigrationAbort(String resourceGroupName, String profileName);
+
+ /**
+ * Abort the migration to Azure Frontdoor Premium/Standard.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginMigrationAbort(String resourceGroupName, String profileName,
+ Context context);
+
+ /**
+ * Abort the migration to Azure Frontdoor Premium/Standard.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void migrationAbort(String resourceGroupName, String profileName);
+
+ /**
+ * Abort the migration to Azure Frontdoor Premium/Standard.
+ *
+ * @param resourceGroupName The name of the resource group. The name is case insensitive.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium which is unique within the
+ * resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void migrationAbort(String resourceGroupName, String profileName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ResourceProvidersClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ResourceProvidersClient.java
new file mode 100644
index 000000000000..53019358adc8
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ResourceProvidersClient.java
@@ -0,0 +1,140 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.Response;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.cdn.generated.fluent.models.CheckEndpointNameAvailabilityOutputInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.CheckNameAvailabilityOutputInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ValidateProbeOutputInner;
+import com.azure.resourcemanager.cdn.generated.models.CheckEndpointNameAvailabilityInput;
+import com.azure.resourcemanager.cdn.generated.models.CheckNameAvailabilityInput;
+import com.azure.resourcemanager.cdn.generated.models.ValidateProbeInput;
+
+/**
+ * An instance of this class provides access to all the operations defined in ResourceProvidersClient.
+ */
+public interface ResourceProvidersClient {
+ /**
+ * Check the availability of a resource name. This is needed for resources where name is globally unique, such as a
+ * afdx endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param checkEndpointNameAvailabilityInput Input to check.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkEndpointNameAvailabilityWithResponse(
+ String resourceGroupName, CheckEndpointNameAvailabilityInput checkEndpointNameAvailabilityInput,
+ Context context);
+
+ /**
+ * Check the availability of a resource name. This is needed for resources where name is globally unique, such as a
+ * afdx endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param checkEndpointNameAvailabilityInput Input to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckEndpointNameAvailabilityOutputInner checkEndpointNameAvailability(String resourceGroupName,
+ CheckEndpointNameAvailabilityInput checkEndpointNameAvailabilityInput);
+
+ /**
+ * Check the availability of a resource name. This is needed for resources where name is globally unique, such as a
+ * CDN endpoint.
+ *
+ * @param checkNameAvailabilityInput Input to check.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response
+ checkNameAvailabilityWithResponse(CheckNameAvailabilityInput checkNameAvailabilityInput, Context context);
+
+ /**
+ * Check the availability of a resource name. This is needed for resources where name is globally unique, such as a
+ * CDN endpoint.
+ *
+ * @param checkNameAvailabilityInput Input to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckNameAvailabilityOutputInner checkNameAvailability(CheckNameAvailabilityInput checkNameAvailabilityInput);
+
+ /**
+ * Check the availability of a resource name. This is needed for resources where name is globally unique, such as a
+ * CDN endpoint.
+ *
+ * @param checkNameAvailabilityInput Input to check.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response checkNameAvailabilityWithSubscriptionWithResponse(
+ CheckNameAvailabilityInput checkNameAvailabilityInput, Context context);
+
+ /**
+ * Check the availability of a resource name. This is needed for resources where name is globally unique, such as a
+ * CDN endpoint.
+ *
+ * @param checkNameAvailabilityInput Input to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check name availability API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ CheckNameAvailabilityOutputInner
+ checkNameAvailabilityWithSubscription(CheckNameAvailabilityInput checkNameAvailabilityInput);
+
+ /**
+ * Check if the probe path is a valid path and the file can be accessed. Probe path is the path to a file hosted on
+ * the origin server to help accelerate the delivery of dynamic content via the CDN endpoint. This path is relative
+ * to the origin path specified in the endpoint configuration.
+ *
+ * @param validateProbeInput Input to check.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of the validate probe API along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response validateProbeWithResponse(ValidateProbeInput validateProbeInput,
+ Context context);
+
+ /**
+ * Check if the probe path is a valid path and the file can be accessed. Probe path is the path to a file hosted on
+ * the origin server to help accelerate the delivery of dynamic content via the CDN endpoint. This path is relative
+ * to the origin path specified in the endpoint configuration.
+ *
+ * @param validateProbeInput Input to check.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of the validate probe API.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ ValidateProbeOutputInner validateProbe(ValidateProbeInput validateProbeInput);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ResourceUsagesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ResourceUsagesClient.java
new file mode 100644
index 000000000000..4acd4aaf746f
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/ResourceUsagesClient.java
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.util.Context;
+import com.azure.resourcemanager.cdn.generated.fluent.models.ResourceUsageInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in ResourceUsagesClient.
+ */
+public interface ResourceUsagesClient {
+ /**
+ * Check the quota and actual usage of the CDN profiles under the given subscription.
+ *
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check resource usage API as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list();
+
+ /**
+ * Check the quota and actual usage of the CDN profiles under the given subscription.
+ *
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return output of check resource usage API as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable list(Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RoutesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RoutesClient.java
new file mode 100644
index 000000000000..84d7ac5ce4b5
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RoutesClient.java
@@ -0,0 +1,320 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.RouteInner;
+import com.azure.resourcemanager.cdn.generated.models.RouteUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in RoutesClient.
+ */
+public interface RoutesClient {
+ /**
+ * Lists all of the existing origins within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list routes as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName);
+
+ /**
+ * Lists all of the existing origins within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list routes as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByEndpoint(String resourceGroupName, String profileName, String endpointName,
+ Context context);
+
+ /**
+ * Gets an existing route with the specified route name under the specified subscription, resource group, profile,
+ * and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String endpointName,
+ String routeName, Context context);
+
+ /**
+ * Gets an existing route with the specified route name under the specified subscription, resource group, profile,
+ * and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RouteInner get(String resourceGroupName, String profileName, String endpointName, String routeName);
+
+ /**
+ * Creates a new route with the specified route name under the specified subscription, resource group, profile, and
+ * AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param route Route properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Routes name mapping to the any Routes or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RouteInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, String routeName, RouteInner route);
+
+ /**
+ * Creates a new route with the specified route name under the specified subscription, resource group, profile, and
+ * AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param route Route properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Routes name mapping to the any Routes or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RouteInner> beginCreate(String resourceGroupName, String profileName,
+ String endpointName, String routeName, RouteInner route, Context context);
+
+ /**
+ * Creates a new route with the specified route name under the specified subscription, resource group, profile, and
+ * AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param route Route properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Routes name mapping to the any Routes or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RouteInner create(String resourceGroupName, String profileName, String endpointName, String routeName,
+ RouteInner route);
+
+ /**
+ * Creates a new route with the specified route name under the specified subscription, resource group, profile, and
+ * AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param route Route properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Routes name mapping to the any Routes or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RouteInner create(String resourceGroupName, String profileName, String endpointName, String routeName,
+ RouteInner route, Context context);
+
+ /**
+ * Updates an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param routeUpdateProperties Route update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Routes name mapping to the any Routes or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RouteInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, String routeName, RouteUpdateParameters routeUpdateProperties);
+
+ /**
+ * Updates an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param routeUpdateProperties Route update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Routes name mapping to the any Routes or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RouteInner> beginUpdate(String resourceGroupName, String profileName,
+ String endpointName, String routeName, RouteUpdateParameters routeUpdateProperties, Context context);
+
+ /**
+ * Updates an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param routeUpdateProperties Route update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Routes name mapping to the any Routes or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RouteInner update(String resourceGroupName, String profileName, String endpointName, String routeName,
+ RouteUpdateParameters routeUpdateProperties);
+
+ /**
+ * Updates an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param routeUpdateProperties Route update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Routes name mapping to the any Routes or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RouteInner update(String resourceGroupName, String profileName, String endpointName, String routeName,
+ RouteUpdateParameters routeUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ String routeName);
+
+ /**
+ * Deletes an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String endpointName,
+ String routeName, Context context);
+
+ /**
+ * Deletes an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, String routeName);
+
+ /**
+ * Deletes an existing route with the specified route name under the specified subscription, resource group,
+ * profile, and AzureFrontDoor endpoint.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param endpointName Name of the endpoint under the profile which is unique globally.
+ * @param routeName Name of the routing rule.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String endpointName, String routeName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RuleSetsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RuleSetsClient.java
new file mode 100644
index 000000000000..17dafc31b627
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RuleSetsClient.java
@@ -0,0 +1,215 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.RuleSetInner;
+import com.azure.resourcemanager.cdn.generated.fluent.models.UsageInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in RuleSetsClient.
+ */
+public interface RuleSetsClient {
+ /**
+ * Lists existing AzureFrontDoor rule sets within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list rule sets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName);
+
+ /**
+ * Lists existing AzureFrontDoor rule sets within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list rule sets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String ruleSetName,
+ Context context);
+
+ /**
+ * Gets an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RuleSetInner get(String resourceGroupName, String profileName, String ruleSetName);
+
+ /**
+ * Creates a new rule set within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly RuleSet name mapping to the any RuleSet or secret related information along with
+ * {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response createWithResponse(String resourceGroupName, String profileName, String ruleSetName,
+ Context context);
+
+ /**
+ * Creates a new rule set within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly RuleSet name mapping to the any RuleSet or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RuleSetInner create(String resourceGroupName, String profileName, String ruleSetName);
+
+ /**
+ * Deletes an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String ruleSetName);
+
+ /**
+ * Deletes an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String ruleSetName,
+ Context context);
+
+ /**
+ * Deletes an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String ruleSetName);
+
+ /**
+ * Deletes an existing AzureFrontDoor rule set with the specified rule set name under the specified subscription,
+ * resource group and profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String ruleSetName, Context context);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile..
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, String ruleSetName);
+
+ /**
+ * Checks the quota and actual usage of endpoints under the given Azure Front Door profile..
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile which is unique globally.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the list usages operation response as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listResourceUsage(String resourceGroupName, String profileName, String ruleSetName,
+ Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RulesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RulesClient.java
new file mode 100644
index 000000000000..db2e0bebd234
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/RulesClient.java
@@ -0,0 +1,303 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.RuleInner;
+import com.azure.resourcemanager.cdn.generated.models.RuleUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in RulesClient.
+ */
+public interface RulesClient {
+ /**
+ * Lists all of the existing delivery rules within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list rules as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByRuleSet(String resourceGroupName, String profileName, String ruleSetName);
+
+ /**
+ * Lists all of the existing delivery rules within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list rules as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByRuleSet(String resourceGroupName, String profileName, String ruleSetName,
+ Context context);
+
+ /**
+ * Gets an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing delivery rule within a rule set along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String ruleSetName,
+ String ruleName, Context context);
+
+ /**
+ * Gets an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing delivery rule within a rule set.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RuleInner get(String resourceGroupName, String profileName, String ruleSetName, String ruleName);
+
+ /**
+ * Creates a new delivery rule within the specified rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param rule The delivery rule properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Rules name mapping to the any Rules or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RuleInner> beginCreate(String resourceGroupName, String profileName,
+ String ruleSetName, String ruleName, RuleInner rule);
+
+ /**
+ * Creates a new delivery rule within the specified rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param rule The delivery rule properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Rules name mapping to the any Rules or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RuleInner> beginCreate(String resourceGroupName, String profileName,
+ String ruleSetName, String ruleName, RuleInner rule, Context context);
+
+ /**
+ * Creates a new delivery rule within the specified rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param rule The delivery rule properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Rules name mapping to the any Rules or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RuleInner create(String resourceGroupName, String profileName, String ruleSetName, String ruleName, RuleInner rule);
+
+ /**
+ * Creates a new delivery rule within the specified rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param rule The delivery rule properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Rules name mapping to the any Rules or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RuleInner create(String resourceGroupName, String profileName, String ruleSetName, String ruleName, RuleInner rule,
+ Context context);
+
+ /**
+ * Updates an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param ruleUpdateProperties Delivery rule properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Rules name mapping to the any Rules or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RuleInner> beginUpdate(String resourceGroupName, String profileName,
+ String ruleSetName, String ruleName, RuleUpdateParameters ruleUpdateProperties);
+
+ /**
+ * Updates an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param ruleUpdateProperties Delivery rule properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Rules name mapping to the any Rules or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, RuleInner> beginUpdate(String resourceGroupName, String profileName,
+ String ruleSetName, String ruleName, RuleUpdateParameters ruleUpdateProperties, Context context);
+
+ /**
+ * Updates an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param ruleUpdateProperties Delivery rule properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Rules name mapping to the any Rules or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RuleInner update(String resourceGroupName, String profileName, String ruleSetName, String ruleName,
+ RuleUpdateParameters ruleUpdateProperties);
+
+ /**
+ * Updates an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param ruleUpdateProperties Delivery rule properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Rules name mapping to the any Rules or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ RuleInner update(String resourceGroupName, String profileName, String ruleSetName, String ruleName,
+ RuleUpdateParameters ruleUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String ruleSetName,
+ String ruleName);
+
+ /**
+ * Deletes an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String ruleSetName,
+ String ruleName, Context context);
+
+ /**
+ * Deletes an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String ruleSetName, String ruleName);
+
+ /**
+ * Deletes an existing delivery rule within a rule set.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param ruleSetName Name of the rule set under the profile.
+ * @param ruleName Name of the delivery rule which is unique within the endpoint.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String ruleSetName, String ruleName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/SecretsClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/SecretsClient.java
new file mode 100644
index 000000000000..92579df92011
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/SecretsClient.java
@@ -0,0 +1,212 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.SecretInner;
+
+/**
+ * An instance of this class provides access to all the operations defined in SecretsClient.
+ */
+public interface SecretsClient {
+ /**
+ * Lists existing AzureFrontDoor secrets.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list secrets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName);
+
+ /**
+ * Lists existing AzureFrontDoor secrets.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list secrets as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets an existing Secret within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing Secret within a profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName, String secretName,
+ Context context);
+
+ /**
+ * Gets an existing Secret within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing Secret within a profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecretInner get(String resourceGroupName, String profileName, String secretName);
+
+ /**
+ * Creates a new Secret within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @param secret The Secret properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Secret name mapping to the any Secret or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecretInner> beginCreate(String resourceGroupName, String profileName,
+ String secretName, SecretInner secret);
+
+ /**
+ * Creates a new Secret within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @param secret The Secret properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of friendly Secret name mapping to the any Secret or secret related
+ * information.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecretInner> beginCreate(String resourceGroupName, String profileName,
+ String secretName, SecretInner secret, Context context);
+
+ /**
+ * Creates a new Secret within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @param secret The Secret properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Secret name mapping to the any Secret or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecretInner create(String resourceGroupName, String profileName, String secretName, SecretInner secret);
+
+ /**
+ * Creates a new Secret within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @param secret The Secret properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return friendly Secret name mapping to the any Secret or secret related information.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecretInner create(String resourceGroupName, String profileName, String secretName, SecretInner secret,
+ Context context);
+
+ /**
+ * Deletes an existing Secret within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String secretName);
+
+ /**
+ * Deletes an existing Secret within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName, String secretName,
+ Context context);
+
+ /**
+ * Deletes an existing Secret within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String secretName);
+
+ /**
+ * Deletes an existing Secret within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param secretName Name of the Secret under the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String secretName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/SecurityPoliciesClient.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/SecurityPoliciesClient.java
new file mode 100644
index 000000000000..0828a3b9eda1
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/SecurityPoliciesClient.java
@@ -0,0 +1,284 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent;
+
+import com.azure.core.annotation.ReturnType;
+import com.azure.core.annotation.ServiceMethod;
+import com.azure.core.http.rest.PagedIterable;
+import com.azure.core.http.rest.Response;
+import com.azure.core.management.polling.PollResult;
+import com.azure.core.util.Context;
+import com.azure.core.util.polling.SyncPoller;
+import com.azure.resourcemanager.cdn.generated.fluent.models.SecurityPolicyInner;
+import com.azure.resourcemanager.cdn.generated.models.SecurityPolicyUpdateParameters;
+
+/**
+ * An instance of this class provides access to all the operations defined in SecurityPoliciesClient.
+ */
+public interface SecurityPoliciesClient {
+ /**
+ * Lists security policies associated with the profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list security policies as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName);
+
+ /**
+ * Lists security policies associated with the profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return result of the request to list security policies as paginated response with {@link PagedIterable}.
+ */
+ @ServiceMethod(returns = ReturnType.COLLECTION)
+ PagedIterable listByProfile(String resourceGroupName, String profileName, Context context);
+
+ /**
+ * Gets an existing security policy within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing security policy within a profile along with {@link Response}.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ Response getWithResponse(String resourceGroupName, String profileName,
+ String securityPolicyName, Context context);
+
+ /**
+ * Gets an existing security policy within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return an existing security policy within a profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityPolicyInner get(String resourceGroupName, String profileName, String securityPolicyName);
+
+ /**
+ * Creates a new security policy within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicy The security policy properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecurityPolicyInner> beginCreate(String resourceGroupName,
+ String profileName, String securityPolicyName, SecurityPolicyInner securityPolicy);
+
+ /**
+ * Creates a new security policy within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicy The security policy properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecurityPolicyInner> beginCreate(String resourceGroupName,
+ String profileName, String securityPolicyName, SecurityPolicyInner securityPolicy, Context context);
+
+ /**
+ * Creates a new security policy within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicy The security policy properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityPolicyInner create(String resourceGroupName, String profileName, String securityPolicyName,
+ SecurityPolicyInner securityPolicy);
+
+ /**
+ * Creates a new security policy within the specified profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicy The security policy properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityPolicyInner create(String resourceGroupName, String profileName, String securityPolicyName,
+ SecurityPolicyInner securityPolicy, Context context);
+
+ /**
+ * Updates an existing security policy within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicyUpdateProperties Security policy update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecurityPolicyInner> beginPatch(String resourceGroupName,
+ String profileName, String securityPolicyName, SecurityPolicyUpdateParameters securityPolicyUpdateProperties);
+
+ /**
+ * Updates an existing security policy within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicyUpdateProperties Security policy update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, SecurityPolicyInner> beginPatch(String resourceGroupName,
+ String profileName, String securityPolicyName, SecurityPolicyUpdateParameters securityPolicyUpdateProperties,
+ Context context);
+
+ /**
+ * Updates an existing security policy within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicyUpdateProperties Security policy update properties.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityPolicyInner patch(String resourceGroupName, String profileName, String securityPolicyName,
+ SecurityPolicyUpdateParameters securityPolicyUpdateProperties);
+
+ /**
+ * Updates an existing security policy within a profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param securityPolicyUpdateProperties Security policy update properties.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return securityPolicy association for AzureFrontDoor profile.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ SecurityPolicyInner patch(String resourceGroupName, String profileName, String securityPolicyName,
+ SecurityPolicyUpdateParameters securityPolicyUpdateProperties, Context context);
+
+ /**
+ * Deletes an existing security policy within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName,
+ String securityPolicyName);
+
+ /**
+ * Deletes an existing security policy within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ * @return the {@link SyncPoller} for polling of long-running operation.
+ */
+ @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
+ SyncPoller, Void> beginDelete(String resourceGroupName, String profileName,
+ String securityPolicyName, Context context);
+
+ /**
+ * Deletes an existing security policy within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String securityPolicyName);
+
+ /**
+ * Deletes an existing security policy within profile.
+ *
+ * @param resourceGroupName Name of the Resource group within the Azure subscription.
+ * @param profileName Name of the Azure Front Door Standard or Azure Front Door Premium profile which is unique
+ * within the resource group.
+ * @param securityPolicyName Name of the security policy under the profile.
+ * @param context The context to associate with this operation.
+ * @throws IllegalArgumentException thrown if parameters fail the validation.
+ * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server.
+ * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
+ */
+ @ServiceMethod(returns = ReturnType.SINGLE)
+ void delete(String resourceGroupName, String profileName, String securityPolicyName, Context context);
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainInner.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainInner.java
new file mode 100644
index 000000000000..b05c2b6a4174
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainInner.java
@@ -0,0 +1,329 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdDomainHttpsParameters;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.DomainValidationProperties;
+import com.azure.resourcemanager.cdn.generated.models.DomainValidationState;
+import com.azure.resourcemanager.cdn.generated.models.ResourceReference;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * Friendly domain name mapping to the endpoint hostname that the customer provides for branding purposes, e.g.
+ * www.contoso.com.
+ */
+@Fluent
+public final class AfdDomainInner extends ProxyResource {
+ /*
+ * The JSON object that contains the properties of the domain to create.
+ */
+ private AfdDomainProperties innerProperties;
+
+ /*
+ * Read only system data
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AfdDomainInner class.
+ */
+ public AfdDomainInner() {
+ }
+
+ /**
+ * Get the innerProperties property: The JSON object that contains the properties of the domain to create.
+ *
+ * @return the innerProperties value.
+ */
+ private AfdDomainProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Read only system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the domainValidationState property: Provisioning substate shows the progress of custom HTTPS
+ * enabling/disabling process step by step. DCV stands for DomainControlValidation.
+ *
+ * @return the domainValidationState value.
+ */
+ public DomainValidationState domainValidationState() {
+ return this.innerProperties() == null ? null : this.innerProperties().domainValidationState();
+ }
+
+ /**
+ * Get the hostname property: The host name of the domain. Must be a domain name.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.innerProperties() == null ? null : this.innerProperties().hostname();
+ }
+
+ /**
+ * Set the hostname property: The host name of the domain. Must be a domain name.
+ *
+ * @param hostname the hostname value to set.
+ * @return the AfdDomainInner object itself.
+ */
+ public AfdDomainInner withHostname(String hostname) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdDomainProperties();
+ }
+ this.innerProperties().withHostname(hostname);
+ return this;
+ }
+
+ /**
+ * Get the extendedProperties property: Key-Value pair representing migration properties for domains.
+ *
+ * @return the extendedProperties value.
+ */
+ public Map extendedProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().extendedProperties();
+ }
+
+ /**
+ * Set the extendedProperties property: Key-Value pair representing migration properties for domains.
+ *
+ * @param extendedProperties the extendedProperties value to set.
+ * @return the AfdDomainInner object itself.
+ */
+ public AfdDomainInner withExtendedProperties(Map extendedProperties) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdDomainProperties();
+ }
+ this.innerProperties().withExtendedProperties(extendedProperties);
+ return this;
+ }
+
+ /**
+ * Get the validationProperties property: Values the customer needs to validate domain ownership.
+ *
+ * @return the validationProperties value.
+ */
+ public DomainValidationProperties validationProperties() {
+ return this.innerProperties() == null ? null : this.innerProperties().validationProperties();
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().deploymentStatus();
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the domain.
+ *
+ * @return the profileName value.
+ */
+ public String profileName() {
+ return this.innerProperties() == null ? null : this.innerProperties().profileName();
+ }
+
+ /**
+ * Get the tlsSettings property: The configuration specifying how to enable HTTPS for the domain - using
+ * AzureFrontDoor managed certificate or user's own certificate. If not specified, enabling ssl uses AzureFrontDoor
+ * managed certificate by default.
+ *
+ * @return the tlsSettings value.
+ */
+ public AfdDomainHttpsParameters tlsSettings() {
+ return this.innerProperties() == null ? null : this.innerProperties().tlsSettings();
+ }
+
+ /**
+ * Set the tlsSettings property: The configuration specifying how to enable HTTPS for the domain - using
+ * AzureFrontDoor managed certificate or user's own certificate. If not specified, enabling ssl uses AzureFrontDoor
+ * managed certificate by default.
+ *
+ * @param tlsSettings the tlsSettings value to set.
+ * @return the AfdDomainInner object itself.
+ */
+ public AfdDomainInner withTlsSettings(AfdDomainHttpsParameters tlsSettings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdDomainProperties();
+ }
+ this.innerProperties().withTlsSettings(tlsSettings);
+ return this;
+ }
+
+ /**
+ * Get the azureDnsZone property: Resource reference to the Azure DNS zone.
+ *
+ * @return the azureDnsZone value.
+ */
+ public ResourceReference azureDnsZone() {
+ return this.innerProperties() == null ? null : this.innerProperties().azureDnsZone();
+ }
+
+ /**
+ * Set the azureDnsZone property: Resource reference to the Azure DNS zone.
+ *
+ * @param azureDnsZone the azureDnsZone value to set.
+ * @return the AfdDomainInner object itself.
+ */
+ public AfdDomainInner withAzureDnsZone(ResourceReference azureDnsZone) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdDomainProperties();
+ }
+ this.innerProperties().withAzureDnsZone(azureDnsZone);
+ return this;
+ }
+
+ /**
+ * Get the preValidatedCustomDomainResourceId property: Resource reference to the Azure resource where custom domain
+ * ownership was prevalidated.
+ *
+ * @return the preValidatedCustomDomainResourceId value.
+ */
+ public ResourceReference preValidatedCustomDomainResourceId() {
+ return this.innerProperties() == null ? null : this.innerProperties().preValidatedCustomDomainResourceId();
+ }
+
+ /**
+ * Set the preValidatedCustomDomainResourceId property: Resource reference to the Azure resource where custom domain
+ * ownership was prevalidated.
+ *
+ * @param preValidatedCustomDomainResourceId the preValidatedCustomDomainResourceId value to set.
+ * @return the AfdDomainInner object itself.
+ */
+ public AfdDomainInner withPreValidatedCustomDomainResourceId(ResourceReference preValidatedCustomDomainResourceId) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdDomainProperties();
+ }
+ this.innerProperties().withPreValidatedCustomDomainResourceId(preValidatedCustomDomainResourceId);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdDomainInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdDomainInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AfdDomainInner.
+ */
+ public static AfdDomainInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdDomainInner deserializedAfdDomainInner = new AfdDomainInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAfdDomainInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAfdDomainInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAfdDomainInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAfdDomainInner.innerProperties = AfdDomainProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedAfdDomainInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdDomainInner;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainProperties.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainProperties.java
new file mode 100644
index 000000000000..0300ab0461e9
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainProperties.java
@@ -0,0 +1,273 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.util.logging.ClientLogger;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdDomainHttpsParameters;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.DomainValidationProperties;
+import com.azure.resourcemanager.cdn.generated.models.DomainValidationState;
+import com.azure.resourcemanager.cdn.generated.models.ResourceReference;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * The JSON object that contains the properties of the domain to create.
+ */
+@Fluent
+public final class AfdDomainProperties extends AfdDomainUpdatePropertiesParameters {
+ /*
+ * Provisioning substate shows the progress of custom HTTPS enabling/disabling process step by step. DCV stands for
+ * DomainControlValidation.
+ */
+ private DomainValidationState domainValidationState;
+
+ /*
+ * The host name of the domain. Must be a domain name.
+ */
+ private String hostname;
+
+ /*
+ * Key-Value pair representing migration properties for domains.
+ */
+ private Map extendedProperties;
+
+ /*
+ * Values the customer needs to validate domain ownership
+ */
+ private DomainValidationProperties validationProperties;
+
+ /*
+ * Provisioning status
+ */
+ private AfdProvisioningState provisioningState;
+
+ /*
+ * The deploymentStatus property.
+ */
+ private DeploymentStatus deploymentStatus;
+
+ /*
+ * The name of the profile which holds the domain.
+ */
+ private String profileName;
+
+ /**
+ * Creates an instance of AfdDomainProperties class.
+ */
+ public AfdDomainProperties() {
+ }
+
+ /**
+ * Get the domainValidationState property: Provisioning substate shows the progress of custom HTTPS
+ * enabling/disabling process step by step. DCV stands for DomainControlValidation.
+ *
+ * @return the domainValidationState value.
+ */
+ public DomainValidationState domainValidationState() {
+ return this.domainValidationState;
+ }
+
+ /**
+ * Get the hostname property: The host name of the domain. Must be a domain name.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.hostname;
+ }
+
+ /**
+ * Set the hostname property: The host name of the domain. Must be a domain name.
+ *
+ * @param hostname the hostname value to set.
+ * @return the AfdDomainProperties object itself.
+ */
+ public AfdDomainProperties withHostname(String hostname) {
+ this.hostname = hostname;
+ return this;
+ }
+
+ /**
+ * Get the extendedProperties property: Key-Value pair representing migration properties for domains.
+ *
+ * @return the extendedProperties value.
+ */
+ public Map extendedProperties() {
+ return this.extendedProperties;
+ }
+
+ /**
+ * Set the extendedProperties property: Key-Value pair representing migration properties for domains.
+ *
+ * @param extendedProperties the extendedProperties value to set.
+ * @return the AfdDomainProperties object itself.
+ */
+ public AfdDomainProperties withExtendedProperties(Map extendedProperties) {
+ this.extendedProperties = extendedProperties;
+ return this;
+ }
+
+ /**
+ * Get the validationProperties property: Values the customer needs to validate domain ownership.
+ *
+ * @return the validationProperties value.
+ */
+ public DomainValidationProperties validationProperties() {
+ return this.validationProperties;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.deploymentStatus;
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the domain.
+ *
+ * @return the profileName value.
+ */
+ @Override
+ public String profileName() {
+ return this.profileName;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdDomainProperties withTlsSettings(AfdDomainHttpsParameters tlsSettings) {
+ super.withTlsSettings(tlsSettings);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdDomainProperties withAzureDnsZone(ResourceReference azureDnsZone) {
+ super.withAzureDnsZone(azureDnsZone);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdDomainProperties
+ withPreValidatedCustomDomainResourceId(ResourceReference preValidatedCustomDomainResourceId) {
+ super.withPreValidatedCustomDomainResourceId(preValidatedCustomDomainResourceId);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ if (hostname() == null) {
+ throw LOGGER.atError()
+ .log(new IllegalArgumentException("Missing required property hostname in model AfdDomainProperties"));
+ }
+ if (validationProperties() != null) {
+ validationProperties().validate();
+ }
+ if (tlsSettings() != null) {
+ tlsSettings().validate();
+ }
+ if (azureDnsZone() != null) {
+ azureDnsZone().validate();
+ }
+ if (preValidatedCustomDomainResourceId() != null) {
+ preValidatedCustomDomainResourceId().validate();
+ }
+ }
+
+ private static final ClientLogger LOGGER = new ClientLogger(AfdDomainProperties.class);
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("tlsSettings", tlsSettings());
+ jsonWriter.writeJsonField("azureDnsZone", azureDnsZone());
+ jsonWriter.writeJsonField("preValidatedCustomDomainResourceId", preValidatedCustomDomainResourceId());
+ jsonWriter.writeStringField("hostName", this.hostname);
+ jsonWriter.writeMapField("extendedProperties", this.extendedProperties,
+ (writer, element) -> writer.writeString(element));
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdDomainProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdDomainProperties if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AfdDomainProperties.
+ */
+ public static AfdDomainProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdDomainProperties deserializedAfdDomainProperties = new AfdDomainProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("profileName".equals(fieldName)) {
+ deserializedAfdDomainProperties.profileName = reader.getString();
+ } else if ("tlsSettings".equals(fieldName)) {
+ deserializedAfdDomainProperties.withTlsSettings(AfdDomainHttpsParameters.fromJson(reader));
+ } else if ("azureDnsZone".equals(fieldName)) {
+ deserializedAfdDomainProperties.withAzureDnsZone(ResourceReference.fromJson(reader));
+ } else if ("preValidatedCustomDomainResourceId".equals(fieldName)) {
+ deserializedAfdDomainProperties
+ .withPreValidatedCustomDomainResourceId(ResourceReference.fromJson(reader));
+ } else if ("hostName".equals(fieldName)) {
+ deserializedAfdDomainProperties.hostname = reader.getString();
+ } else if ("domainValidationState".equals(fieldName)) {
+ deserializedAfdDomainProperties.domainValidationState
+ = DomainValidationState.fromString(reader.getString());
+ } else if ("extendedProperties".equals(fieldName)) {
+ Map extendedProperties = reader.readMap(reader1 -> reader1.getString());
+ deserializedAfdDomainProperties.extendedProperties = extendedProperties;
+ } else if ("validationProperties".equals(fieldName)) {
+ deserializedAfdDomainProperties.validationProperties = DomainValidationProperties.fromJson(reader);
+ } else if ("provisioningState".equals(fieldName)) {
+ deserializedAfdDomainProperties.provisioningState
+ = AfdProvisioningState.fromString(reader.getString());
+ } else if ("deploymentStatus".equals(fieldName)) {
+ deserializedAfdDomainProperties.deploymentStatus = DeploymentStatus.fromString(reader.getString());
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdDomainProperties;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainUpdatePropertiesParameters.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainUpdatePropertiesParameters.java
new file mode 100644
index 000000000000..e6f1590d064d
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdDomainUpdatePropertiesParameters.java
@@ -0,0 +1,198 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdDomainHttpsParameters;
+import com.azure.resourcemanager.cdn.generated.models.ResourceReference;
+import java.io.IOException;
+
+/**
+ * The JSON object that contains the properties of the domain to create.
+ */
+@Fluent
+public class AfdDomainUpdatePropertiesParameters implements JsonSerializable {
+ /*
+ * The name of the profile which holds the domain.
+ */
+ private String profileName;
+
+ /*
+ * The configuration specifying how to enable HTTPS for the domain - using AzureFrontDoor managed certificate or
+ * user's own certificate. If not specified, enabling ssl uses AzureFrontDoor managed certificate by default.
+ */
+ private AfdDomainHttpsParameters tlsSettings;
+
+ /*
+ * Resource reference to the Azure DNS zone
+ */
+ private ResourceReference azureDnsZone;
+
+ /*
+ * Resource reference to the Azure resource where custom domain ownership was prevalidated
+ */
+ private ResourceReference preValidatedCustomDomainResourceId;
+
+ /**
+ * Creates an instance of AfdDomainUpdatePropertiesParameters class.
+ */
+ public AfdDomainUpdatePropertiesParameters() {
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the domain.
+ *
+ * @return the profileName value.
+ */
+ public String profileName() {
+ return this.profileName;
+ }
+
+ /**
+ * Set the profileName property: The name of the profile which holds the domain.
+ *
+ * @param profileName the profileName value to set.
+ * @return the AfdDomainUpdatePropertiesParameters object itself.
+ */
+ AfdDomainUpdatePropertiesParameters withProfileName(String profileName) {
+ this.profileName = profileName;
+ return this;
+ }
+
+ /**
+ * Get the tlsSettings property: The configuration specifying how to enable HTTPS for the domain - using
+ * AzureFrontDoor managed certificate or user's own certificate. If not specified, enabling ssl uses AzureFrontDoor
+ * managed certificate by default.
+ *
+ * @return the tlsSettings value.
+ */
+ public AfdDomainHttpsParameters tlsSettings() {
+ return this.tlsSettings;
+ }
+
+ /**
+ * Set the tlsSettings property: The configuration specifying how to enable HTTPS for the domain - using
+ * AzureFrontDoor managed certificate or user's own certificate. If not specified, enabling ssl uses AzureFrontDoor
+ * managed certificate by default.
+ *
+ * @param tlsSettings the tlsSettings value to set.
+ * @return the AfdDomainUpdatePropertiesParameters object itself.
+ */
+ public AfdDomainUpdatePropertiesParameters withTlsSettings(AfdDomainHttpsParameters tlsSettings) {
+ this.tlsSettings = tlsSettings;
+ return this;
+ }
+
+ /**
+ * Get the azureDnsZone property: Resource reference to the Azure DNS zone.
+ *
+ * @return the azureDnsZone value.
+ */
+ public ResourceReference azureDnsZone() {
+ return this.azureDnsZone;
+ }
+
+ /**
+ * Set the azureDnsZone property: Resource reference to the Azure DNS zone.
+ *
+ * @param azureDnsZone the azureDnsZone value to set.
+ * @return the AfdDomainUpdatePropertiesParameters object itself.
+ */
+ public AfdDomainUpdatePropertiesParameters withAzureDnsZone(ResourceReference azureDnsZone) {
+ this.azureDnsZone = azureDnsZone;
+ return this;
+ }
+
+ /**
+ * Get the preValidatedCustomDomainResourceId property: Resource reference to the Azure resource where custom domain
+ * ownership was prevalidated.
+ *
+ * @return the preValidatedCustomDomainResourceId value.
+ */
+ public ResourceReference preValidatedCustomDomainResourceId() {
+ return this.preValidatedCustomDomainResourceId;
+ }
+
+ /**
+ * Set the preValidatedCustomDomainResourceId property: Resource reference to the Azure resource where custom domain
+ * ownership was prevalidated.
+ *
+ * @param preValidatedCustomDomainResourceId the preValidatedCustomDomainResourceId value to set.
+ * @return the AfdDomainUpdatePropertiesParameters object itself.
+ */
+ public AfdDomainUpdatePropertiesParameters
+ withPreValidatedCustomDomainResourceId(ResourceReference preValidatedCustomDomainResourceId) {
+ this.preValidatedCustomDomainResourceId = preValidatedCustomDomainResourceId;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (tlsSettings() != null) {
+ tlsSettings().validate();
+ }
+ if (azureDnsZone() != null) {
+ azureDnsZone().validate();
+ }
+ if (preValidatedCustomDomainResourceId() != null) {
+ preValidatedCustomDomainResourceId().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("tlsSettings", this.tlsSettings);
+ jsonWriter.writeJsonField("azureDnsZone", this.azureDnsZone);
+ jsonWriter.writeJsonField("preValidatedCustomDomainResourceId", this.preValidatedCustomDomainResourceId);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdDomainUpdatePropertiesParameters from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdDomainUpdatePropertiesParameters if the JsonReader was pointing to an instance of it,
+ * or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AfdDomainUpdatePropertiesParameters.
+ */
+ public static AfdDomainUpdatePropertiesParameters fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdDomainUpdatePropertiesParameters deserializedAfdDomainUpdatePropertiesParameters
+ = new AfdDomainUpdatePropertiesParameters();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("profileName".equals(fieldName)) {
+ deserializedAfdDomainUpdatePropertiesParameters.profileName = reader.getString();
+ } else if ("tlsSettings".equals(fieldName)) {
+ deserializedAfdDomainUpdatePropertiesParameters.tlsSettings
+ = AfdDomainHttpsParameters.fromJson(reader);
+ } else if ("azureDnsZone".equals(fieldName)) {
+ deserializedAfdDomainUpdatePropertiesParameters.azureDnsZone = ResourceReference.fromJson(reader);
+ } else if ("preValidatedCustomDomainResourceId".equals(fieldName)) {
+ deserializedAfdDomainUpdatePropertiesParameters.preValidatedCustomDomainResourceId
+ = ResourceReference.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdDomainUpdatePropertiesParameters;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointInner.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointInner.java
new file mode 100644
index 000000000000..dbcb3cc965f2
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointInner.java
@@ -0,0 +1,272 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.Resource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.AutoGeneratedDomainNameLabelScope;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import java.io.IOException;
+import java.util.Map;
+
+/**
+ * Azure Front Door endpoint is the entity within a Azure Front Door profile containing configuration information such
+ * as origin, protocol, content caching and delivery behavior. The AzureFrontDoor endpoint uses the URL format
+ * <endpointname>.azureedge.net.
+ */
+@Fluent
+public final class AfdEndpointInner extends Resource {
+ /*
+ * The JSON object that contains the properties required to create an endpoint.
+ */
+ private AfdEndpointProperties innerProperties;
+
+ /*
+ * Read only system data
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AfdEndpointInner class.
+ */
+ public AfdEndpointInner() {
+ }
+
+ /**
+ * Get the innerProperties property: The JSON object that contains the properties required to create an endpoint.
+ *
+ * @return the innerProperties value.
+ */
+ private AfdEndpointProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Read only system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdEndpointInner withLocation(String location) {
+ super.withLocation(location);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdEndpointInner withTags(Map tags) {
+ super.withTags(tags);
+ return this;
+ }
+
+ /**
+ * Get the hostname property: The host name of the endpoint structured as {endpointName}.{DNSZone}, e.g.
+ * contoso.azureedge.net.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.innerProperties() == null ? null : this.innerProperties().hostname();
+ }
+
+ /**
+ * Get the autoGeneratedDomainNameLabelScope property: Indicates the endpoint name reuse scope. The default value is
+ * TenantReuse.
+ *
+ * @return the autoGeneratedDomainNameLabelScope value.
+ */
+ public AutoGeneratedDomainNameLabelScope autoGeneratedDomainNameLabelScope() {
+ return this.innerProperties() == null ? null : this.innerProperties().autoGeneratedDomainNameLabelScope();
+ }
+
+ /**
+ * Set the autoGeneratedDomainNameLabelScope property: Indicates the endpoint name reuse scope. The default value is
+ * TenantReuse.
+ *
+ * @param autoGeneratedDomainNameLabelScope the autoGeneratedDomainNameLabelScope value to set.
+ * @return the AfdEndpointInner object itself.
+ */
+ public AfdEndpointInner
+ withAutoGeneratedDomainNameLabelScope(AutoGeneratedDomainNameLabelScope autoGeneratedDomainNameLabelScope) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdEndpointProperties();
+ }
+ this.innerProperties().withAutoGeneratedDomainNameLabelScope(autoGeneratedDomainNameLabelScope);
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().deploymentStatus();
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the endpoint.
+ *
+ * @return the profileName value.
+ */
+ public String profileName() {
+ return this.innerProperties() == null ? null : this.innerProperties().profileName();
+ }
+
+ /**
+ * Get the enabledState property: Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'.
+ *
+ * @return the enabledState value.
+ */
+ public EnabledState enabledState() {
+ return this.innerProperties() == null ? null : this.innerProperties().enabledState();
+ }
+
+ /**
+ * Set the enabledState property: Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'.
+ *
+ * @param enabledState the enabledState value to set.
+ * @return the AfdEndpointInner object itself.
+ */
+ public AfdEndpointInner withEnabledState(EnabledState enabledState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdEndpointProperties();
+ }
+ this.innerProperties().withEnabledState(enabledState);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("location", location());
+ jsonWriter.writeMapField("tags", tags(), (writer, element) -> writer.writeString(element));
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdEndpointInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdEndpointInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AfdEndpointInner.
+ */
+ public static AfdEndpointInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdEndpointInner deserializedAfdEndpointInner = new AfdEndpointInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAfdEndpointInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAfdEndpointInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAfdEndpointInner.type = reader.getString();
+ } else if ("location".equals(fieldName)) {
+ deserializedAfdEndpointInner.withLocation(reader.getString());
+ } else if ("tags".equals(fieldName)) {
+ Map tags = reader.readMap(reader1 -> reader1.getString());
+ deserializedAfdEndpointInner.withTags(tags);
+ } else if ("properties".equals(fieldName)) {
+ deserializedAfdEndpointInner.innerProperties = AfdEndpointProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedAfdEndpointInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdEndpointInner;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointProperties.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointProperties.java
new file mode 100644
index 000000000000..6456dc1b778e
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointProperties.java
@@ -0,0 +1,182 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.AutoGeneratedDomainNameLabelScope;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import java.io.IOException;
+
+/**
+ * The JSON object that contains the properties required to create an endpoint.
+ */
+@Fluent
+public final class AfdEndpointProperties extends AfdEndpointPropertiesUpdateParameters {
+ /*
+ * The host name of the endpoint structured as {endpointName}.{DNSZone}, e.g. contoso.azureedge.net
+ */
+ private String hostname;
+
+ /*
+ * Indicates the endpoint name reuse scope. The default value is TenantReuse.
+ */
+ private AutoGeneratedDomainNameLabelScope autoGeneratedDomainNameLabelScope;
+
+ /*
+ * Provisioning status
+ */
+ private AfdProvisioningState provisioningState;
+
+ /*
+ * The deploymentStatus property.
+ */
+ private DeploymentStatus deploymentStatus;
+
+ /*
+ * The name of the profile which holds the endpoint.
+ */
+ private String profileName;
+
+ /**
+ * Creates an instance of AfdEndpointProperties class.
+ */
+ public AfdEndpointProperties() {
+ }
+
+ /**
+ * Get the hostname property: The host name of the endpoint structured as {endpointName}.{DNSZone}, e.g.
+ * contoso.azureedge.net.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.hostname;
+ }
+
+ /**
+ * Get the autoGeneratedDomainNameLabelScope property: Indicates the endpoint name reuse scope. The default value is
+ * TenantReuse.
+ *
+ * @return the autoGeneratedDomainNameLabelScope value.
+ */
+ public AutoGeneratedDomainNameLabelScope autoGeneratedDomainNameLabelScope() {
+ return this.autoGeneratedDomainNameLabelScope;
+ }
+
+ /**
+ * Set the autoGeneratedDomainNameLabelScope property: Indicates the endpoint name reuse scope. The default value is
+ * TenantReuse.
+ *
+ * @param autoGeneratedDomainNameLabelScope the autoGeneratedDomainNameLabelScope value to set.
+ * @return the AfdEndpointProperties object itself.
+ */
+ public AfdEndpointProperties
+ withAutoGeneratedDomainNameLabelScope(AutoGeneratedDomainNameLabelScope autoGeneratedDomainNameLabelScope) {
+ this.autoGeneratedDomainNameLabelScope = autoGeneratedDomainNameLabelScope;
+ return this;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.deploymentStatus;
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the endpoint.
+ *
+ * @return the profileName value.
+ */
+ @Override
+ public String profileName() {
+ return this.profileName;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdEndpointProperties withEnabledState(EnabledState enabledState) {
+ super.withEnabledState(enabledState);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("enabledState", enabledState() == null ? null : enabledState().toString());
+ jsonWriter.writeStringField("autoGeneratedDomainNameLabelScope",
+ this.autoGeneratedDomainNameLabelScope == null ? null : this.autoGeneratedDomainNameLabelScope.toString());
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdEndpointProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdEndpointProperties if the JsonReader was pointing to an instance of it, or null if it
+ * was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AfdEndpointProperties.
+ */
+ public static AfdEndpointProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdEndpointProperties deserializedAfdEndpointProperties = new AfdEndpointProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("profileName".equals(fieldName)) {
+ deserializedAfdEndpointProperties.profileName = reader.getString();
+ } else if ("enabledState".equals(fieldName)) {
+ deserializedAfdEndpointProperties.withEnabledState(EnabledState.fromString(reader.getString()));
+ } else if ("hostName".equals(fieldName)) {
+ deserializedAfdEndpointProperties.hostname = reader.getString();
+ } else if ("autoGeneratedDomainNameLabelScope".equals(fieldName)) {
+ deserializedAfdEndpointProperties.autoGeneratedDomainNameLabelScope
+ = AutoGeneratedDomainNameLabelScope.fromString(reader.getString());
+ } else if ("provisioningState".equals(fieldName)) {
+ deserializedAfdEndpointProperties.provisioningState
+ = AfdProvisioningState.fromString(reader.getString());
+ } else if ("deploymentStatus".equals(fieldName)) {
+ deserializedAfdEndpointProperties.deploymentStatus
+ = DeploymentStatus.fromString(reader.getString());
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdEndpointProperties;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointPropertiesUpdateParameters.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointPropertiesUpdateParameters.java
new file mode 100644
index 000000000000..b9955e78461f
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdEndpointPropertiesUpdateParameters.java
@@ -0,0 +1,123 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import java.io.IOException;
+
+/**
+ * The JSON object containing endpoint update parameters.
+ */
+@Fluent
+public class AfdEndpointPropertiesUpdateParameters implements JsonSerializable {
+ /*
+ * The name of the profile which holds the endpoint.
+ */
+ private String profileName;
+
+ /*
+ * Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'
+ */
+ private EnabledState enabledState;
+
+ /**
+ * Creates an instance of AfdEndpointPropertiesUpdateParameters class.
+ */
+ public AfdEndpointPropertiesUpdateParameters() {
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the endpoint.
+ *
+ * @return the profileName value.
+ */
+ public String profileName() {
+ return this.profileName;
+ }
+
+ /**
+ * Set the profileName property: The name of the profile which holds the endpoint.
+ *
+ * @param profileName the profileName value to set.
+ * @return the AfdEndpointPropertiesUpdateParameters object itself.
+ */
+ AfdEndpointPropertiesUpdateParameters withProfileName(String profileName) {
+ this.profileName = profileName;
+ return this;
+ }
+
+ /**
+ * Get the enabledState property: Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'.
+ *
+ * @return the enabledState value.
+ */
+ public EnabledState enabledState() {
+ return this.enabledState;
+ }
+
+ /**
+ * Set the enabledState property: Whether to enable use of this rule. Permitted values are 'Enabled' or 'Disabled'.
+ *
+ * @param enabledState the enabledState value to set.
+ * @return the AfdEndpointPropertiesUpdateParameters object itself.
+ */
+ public AfdEndpointPropertiesUpdateParameters withEnabledState(EnabledState enabledState) {
+ this.enabledState = enabledState;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeStringField("enabledState", this.enabledState == null ? null : this.enabledState.toString());
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdEndpointPropertiesUpdateParameters from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdEndpointPropertiesUpdateParameters if the JsonReader was pointing to an instance of it,
+ * or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AfdEndpointPropertiesUpdateParameters.
+ */
+ public static AfdEndpointPropertiesUpdateParameters fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdEndpointPropertiesUpdateParameters deserializedAfdEndpointPropertiesUpdateParameters
+ = new AfdEndpointPropertiesUpdateParameters();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("profileName".equals(fieldName)) {
+ deserializedAfdEndpointPropertiesUpdateParameters.profileName = reader.getString();
+ } else if ("enabledState".equals(fieldName)) {
+ deserializedAfdEndpointPropertiesUpdateParameters.enabledState
+ = EnabledState.fromString(reader.getString());
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdEndpointPropertiesUpdateParameters;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupInner.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupInner.java
new file mode 100644
index 000000000000..349d3aed9e54
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupInner.java
@@ -0,0 +1,293 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import com.azure.resourcemanager.cdn.generated.models.HealthProbeParameters;
+import com.azure.resourcemanager.cdn.generated.models.LoadBalancingSettingsParameters;
+import java.io.IOException;
+
+/**
+ * AFDOrigin group comprising of origins is used for load balancing to origins when the content cannot be served from
+ * Azure Front Door.
+ */
+@Fluent
+public final class AfdOriginGroupInner extends ProxyResource {
+ /*
+ * The JSON object that contains the properties of the origin group.
+ */
+ private AfdOriginGroupProperties innerProperties;
+
+ /*
+ * Read only system data
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AfdOriginGroupInner class.
+ */
+ public AfdOriginGroupInner() {
+ }
+
+ /**
+ * Get the innerProperties property: The JSON object that contains the properties of the origin group.
+ *
+ * @return the innerProperties value.
+ */
+ private AfdOriginGroupProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Read only system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().deploymentStatus();
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the origin group.
+ *
+ * @return the profileName value.
+ */
+ public String profileName() {
+ return this.innerProperties() == null ? null : this.innerProperties().profileName();
+ }
+
+ /**
+ * Get the loadBalancingSettings property: Load balancing settings for a backend pool.
+ *
+ * @return the loadBalancingSettings value.
+ */
+ public LoadBalancingSettingsParameters loadBalancingSettings() {
+ return this.innerProperties() == null ? null : this.innerProperties().loadBalancingSettings();
+ }
+
+ /**
+ * Set the loadBalancingSettings property: Load balancing settings for a backend pool.
+ *
+ * @param loadBalancingSettings the loadBalancingSettings value to set.
+ * @return the AfdOriginGroupInner object itself.
+ */
+ public AfdOriginGroupInner withLoadBalancingSettings(LoadBalancingSettingsParameters loadBalancingSettings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginGroupProperties();
+ }
+ this.innerProperties().withLoadBalancingSettings(loadBalancingSettings);
+ return this;
+ }
+
+ /**
+ * Get the healthProbeSettings property: Health probe settings to the origin that is used to determine the health of
+ * the origin.
+ *
+ * @return the healthProbeSettings value.
+ */
+ public HealthProbeParameters healthProbeSettings() {
+ return this.innerProperties() == null ? null : this.innerProperties().healthProbeSettings();
+ }
+
+ /**
+ * Set the healthProbeSettings property: Health probe settings to the origin that is used to determine the health of
+ * the origin.
+ *
+ * @param healthProbeSettings the healthProbeSettings value to set.
+ * @return the AfdOriginGroupInner object itself.
+ */
+ public AfdOriginGroupInner withHealthProbeSettings(HealthProbeParameters healthProbeSettings) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginGroupProperties();
+ }
+ this.innerProperties().withHealthProbeSettings(healthProbeSettings);
+ return this;
+ }
+
+ /**
+ * Get the trafficRestorationTimeToHealedOrNewEndpointsInMinutes property: Time in minutes to shift the traffic to
+ * the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins.
+ * This property is currently not supported.
+ *
+ * @return the trafficRestorationTimeToHealedOrNewEndpointsInMinutes value.
+ */
+ public Integer trafficRestorationTimeToHealedOrNewEndpointsInMinutes() {
+ return this.innerProperties() == null
+ ? null
+ : this.innerProperties().trafficRestorationTimeToHealedOrNewEndpointsInMinutes();
+ }
+
+ /**
+ * Set the trafficRestorationTimeToHealedOrNewEndpointsInMinutes property: Time in minutes to shift the traffic to
+ * the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins.
+ * This property is currently not supported.
+ *
+ * @param trafficRestorationTimeToHealedOrNewEndpointsInMinutes the
+ * trafficRestorationTimeToHealedOrNewEndpointsInMinutes value to set.
+ * @return the AfdOriginGroupInner object itself.
+ */
+ public AfdOriginGroupInner withTrafficRestorationTimeToHealedOrNewEndpointsInMinutes(
+ Integer trafficRestorationTimeToHealedOrNewEndpointsInMinutes) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginGroupProperties();
+ }
+ this.innerProperties()
+ .withTrafficRestorationTimeToHealedOrNewEndpointsInMinutes(
+ trafficRestorationTimeToHealedOrNewEndpointsInMinutes);
+ return this;
+ }
+
+ /**
+ * Get the sessionAffinityState property: Whether to allow session affinity on this host. Valid options are
+ * 'Enabled' or 'Disabled'.
+ *
+ * @return the sessionAffinityState value.
+ */
+ public EnabledState sessionAffinityState() {
+ return this.innerProperties() == null ? null : this.innerProperties().sessionAffinityState();
+ }
+
+ /**
+ * Set the sessionAffinityState property: Whether to allow session affinity on this host. Valid options are
+ * 'Enabled' or 'Disabled'.
+ *
+ * @param sessionAffinityState the sessionAffinityState value to set.
+ * @return the AfdOriginGroupInner object itself.
+ */
+ public AfdOriginGroupInner withSessionAffinityState(EnabledState sessionAffinityState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginGroupProperties();
+ }
+ this.innerProperties().withSessionAffinityState(sessionAffinityState);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdOriginGroupInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdOriginGroupInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AfdOriginGroupInner.
+ */
+ public static AfdOriginGroupInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdOriginGroupInner deserializedAfdOriginGroupInner = new AfdOriginGroupInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAfdOriginGroupInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAfdOriginGroupInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAfdOriginGroupInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAfdOriginGroupInner.innerProperties = AfdOriginGroupProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedAfdOriginGroupInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdOriginGroupInner;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupProperties.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupProperties.java
new file mode 100644
index 000000000000..832af6973c55
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupProperties.java
@@ -0,0 +1,183 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import com.azure.resourcemanager.cdn.generated.models.HealthProbeParameters;
+import com.azure.resourcemanager.cdn.generated.models.LoadBalancingSettingsParameters;
+import java.io.IOException;
+
+/**
+ * The JSON object that contains the properties of the origin group.
+ */
+@Fluent
+public final class AfdOriginGroupProperties extends AfdOriginGroupUpdatePropertiesParameters {
+ /*
+ * Provisioning status
+ */
+ private AfdProvisioningState provisioningState;
+
+ /*
+ * The deploymentStatus property.
+ */
+ private DeploymentStatus deploymentStatus;
+
+ /*
+ * The name of the profile which holds the origin group.
+ */
+ private String profileName;
+
+ /**
+ * Creates an instance of AfdOriginGroupProperties class.
+ */
+ public AfdOriginGroupProperties() {
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.deploymentStatus;
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the origin group.
+ *
+ * @return the profileName value.
+ */
+ @Override
+ public String profileName() {
+ return this.profileName;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginGroupProperties withLoadBalancingSettings(LoadBalancingSettingsParameters loadBalancingSettings) {
+ super.withLoadBalancingSettings(loadBalancingSettings);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginGroupProperties withHealthProbeSettings(HealthProbeParameters healthProbeSettings) {
+ super.withHealthProbeSettings(healthProbeSettings);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginGroupProperties withTrafficRestorationTimeToHealedOrNewEndpointsInMinutes(
+ Integer trafficRestorationTimeToHealedOrNewEndpointsInMinutes) {
+ super.withTrafficRestorationTimeToHealedOrNewEndpointsInMinutes(
+ trafficRestorationTimeToHealedOrNewEndpointsInMinutes);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginGroupProperties withSessionAffinityState(EnabledState sessionAffinityState) {
+ super.withSessionAffinityState(sessionAffinityState);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ if (loadBalancingSettings() != null) {
+ loadBalancingSettings().validate();
+ }
+ if (healthProbeSettings() != null) {
+ healthProbeSettings().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("loadBalancingSettings", loadBalancingSettings());
+ jsonWriter.writeJsonField("healthProbeSettings", healthProbeSettings());
+ jsonWriter.writeNumberField("trafficRestorationTimeToHealedOrNewEndpointsInMinutes",
+ trafficRestorationTimeToHealedOrNewEndpointsInMinutes());
+ jsonWriter.writeStringField("sessionAffinityState",
+ sessionAffinityState() == null ? null : sessionAffinityState().toString());
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdOriginGroupProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdOriginGroupProperties if the JsonReader was pointing to an instance of it, or null if
+ * it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AfdOriginGroupProperties.
+ */
+ public static AfdOriginGroupProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdOriginGroupProperties deserializedAfdOriginGroupProperties = new AfdOriginGroupProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("profileName".equals(fieldName)) {
+ deserializedAfdOriginGroupProperties.profileName = reader.getString();
+ } else if ("loadBalancingSettings".equals(fieldName)) {
+ deserializedAfdOriginGroupProperties
+ .withLoadBalancingSettings(LoadBalancingSettingsParameters.fromJson(reader));
+ } else if ("healthProbeSettings".equals(fieldName)) {
+ deserializedAfdOriginGroupProperties
+ .withHealthProbeSettings(HealthProbeParameters.fromJson(reader));
+ } else if ("trafficRestorationTimeToHealedOrNewEndpointsInMinutes".equals(fieldName)) {
+ deserializedAfdOriginGroupProperties.withTrafficRestorationTimeToHealedOrNewEndpointsInMinutes(
+ reader.getNullable(JsonReader::getInt));
+ } else if ("sessionAffinityState".equals(fieldName)) {
+ deserializedAfdOriginGroupProperties
+ .withSessionAffinityState(EnabledState.fromString(reader.getString()));
+ } else if ("provisioningState".equals(fieldName)) {
+ deserializedAfdOriginGroupProperties.provisioningState
+ = AfdProvisioningState.fromString(reader.getString());
+ } else if ("deploymentStatus".equals(fieldName)) {
+ deserializedAfdOriginGroupProperties.deploymentStatus
+ = DeploymentStatus.fromString(reader.getString());
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdOriginGroupProperties;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupUpdatePropertiesParameters.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupUpdatePropertiesParameters.java
new file mode 100644
index 000000000000..aca3614f33b1
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginGroupUpdatePropertiesParameters.java
@@ -0,0 +1,234 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import com.azure.resourcemanager.cdn.generated.models.HealthProbeParameters;
+import com.azure.resourcemanager.cdn.generated.models.LoadBalancingSettingsParameters;
+import java.io.IOException;
+
+/**
+ * The JSON object that contains the properties of the origin group.
+ */
+@Fluent
+public class AfdOriginGroupUpdatePropertiesParameters
+ implements JsonSerializable {
+ /*
+ * The name of the profile which holds the origin group.
+ */
+ private String profileName;
+
+ /*
+ * Load balancing settings for a backend pool
+ */
+ private LoadBalancingSettingsParameters loadBalancingSettings;
+
+ /*
+ * Health probe settings to the origin that is used to determine the health of the origin.
+ */
+ private HealthProbeParameters healthProbeSettings;
+
+ /*
+ * Time in minutes to shift the traffic to the endpoint gradually when an unhealthy endpoint comes healthy or a new
+ * endpoint is added. Default is 10 mins. This property is currently not supported.
+ */
+ private Integer trafficRestorationTimeToHealedOrNewEndpointsInMinutes;
+
+ /*
+ * Whether to allow session affinity on this host. Valid options are 'Enabled' or 'Disabled'
+ */
+ private EnabledState sessionAffinityState;
+
+ /**
+ * Creates an instance of AfdOriginGroupUpdatePropertiesParameters class.
+ */
+ public AfdOriginGroupUpdatePropertiesParameters() {
+ }
+
+ /**
+ * Get the profileName property: The name of the profile which holds the origin group.
+ *
+ * @return the profileName value.
+ */
+ public String profileName() {
+ return this.profileName;
+ }
+
+ /**
+ * Set the profileName property: The name of the profile which holds the origin group.
+ *
+ * @param profileName the profileName value to set.
+ * @return the AfdOriginGroupUpdatePropertiesParameters object itself.
+ */
+ AfdOriginGroupUpdatePropertiesParameters withProfileName(String profileName) {
+ this.profileName = profileName;
+ return this;
+ }
+
+ /**
+ * Get the loadBalancingSettings property: Load balancing settings for a backend pool.
+ *
+ * @return the loadBalancingSettings value.
+ */
+ public LoadBalancingSettingsParameters loadBalancingSettings() {
+ return this.loadBalancingSettings;
+ }
+
+ /**
+ * Set the loadBalancingSettings property: Load balancing settings for a backend pool.
+ *
+ * @param loadBalancingSettings the loadBalancingSettings value to set.
+ * @return the AfdOriginGroupUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginGroupUpdatePropertiesParameters
+ withLoadBalancingSettings(LoadBalancingSettingsParameters loadBalancingSettings) {
+ this.loadBalancingSettings = loadBalancingSettings;
+ return this;
+ }
+
+ /**
+ * Get the healthProbeSettings property: Health probe settings to the origin that is used to determine the health of
+ * the origin.
+ *
+ * @return the healthProbeSettings value.
+ */
+ public HealthProbeParameters healthProbeSettings() {
+ return this.healthProbeSettings;
+ }
+
+ /**
+ * Set the healthProbeSettings property: Health probe settings to the origin that is used to determine the health of
+ * the origin.
+ *
+ * @param healthProbeSettings the healthProbeSettings value to set.
+ * @return the AfdOriginGroupUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginGroupUpdatePropertiesParameters withHealthProbeSettings(HealthProbeParameters healthProbeSettings) {
+ this.healthProbeSettings = healthProbeSettings;
+ return this;
+ }
+
+ /**
+ * Get the trafficRestorationTimeToHealedOrNewEndpointsInMinutes property: Time in minutes to shift the traffic to
+ * the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins.
+ * This property is currently not supported.
+ *
+ * @return the trafficRestorationTimeToHealedOrNewEndpointsInMinutes value.
+ */
+ public Integer trafficRestorationTimeToHealedOrNewEndpointsInMinutes() {
+ return this.trafficRestorationTimeToHealedOrNewEndpointsInMinutes;
+ }
+
+ /**
+ * Set the trafficRestorationTimeToHealedOrNewEndpointsInMinutes property: Time in minutes to shift the traffic to
+ * the endpoint gradually when an unhealthy endpoint comes healthy or a new endpoint is added. Default is 10 mins.
+ * This property is currently not supported.
+ *
+ * @param trafficRestorationTimeToHealedOrNewEndpointsInMinutes the
+ * trafficRestorationTimeToHealedOrNewEndpointsInMinutes value to set.
+ * @return the AfdOriginGroupUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginGroupUpdatePropertiesParameters withTrafficRestorationTimeToHealedOrNewEndpointsInMinutes(
+ Integer trafficRestorationTimeToHealedOrNewEndpointsInMinutes) {
+ this.trafficRestorationTimeToHealedOrNewEndpointsInMinutes
+ = trafficRestorationTimeToHealedOrNewEndpointsInMinutes;
+ return this;
+ }
+
+ /**
+ * Get the sessionAffinityState property: Whether to allow session affinity on this host. Valid options are
+ * 'Enabled' or 'Disabled'.
+ *
+ * @return the sessionAffinityState value.
+ */
+ public EnabledState sessionAffinityState() {
+ return this.sessionAffinityState;
+ }
+
+ /**
+ * Set the sessionAffinityState property: Whether to allow session affinity on this host. Valid options are
+ * 'Enabled' or 'Disabled'.
+ *
+ * @param sessionAffinityState the sessionAffinityState value to set.
+ * @return the AfdOriginGroupUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginGroupUpdatePropertiesParameters withSessionAffinityState(EnabledState sessionAffinityState) {
+ this.sessionAffinityState = sessionAffinityState;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (loadBalancingSettings() != null) {
+ loadBalancingSettings().validate();
+ }
+ if (healthProbeSettings() != null) {
+ healthProbeSettings().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("loadBalancingSettings", this.loadBalancingSettings);
+ jsonWriter.writeJsonField("healthProbeSettings", this.healthProbeSettings);
+ jsonWriter.writeNumberField("trafficRestorationTimeToHealedOrNewEndpointsInMinutes",
+ this.trafficRestorationTimeToHealedOrNewEndpointsInMinutes);
+ jsonWriter.writeStringField("sessionAffinityState",
+ this.sessionAffinityState == null ? null : this.sessionAffinityState.toString());
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdOriginGroupUpdatePropertiesParameters from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdOriginGroupUpdatePropertiesParameters if the JsonReader was pointing to an instance of
+ * it, or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AfdOriginGroupUpdatePropertiesParameters.
+ */
+ public static AfdOriginGroupUpdatePropertiesParameters fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdOriginGroupUpdatePropertiesParameters deserializedAfdOriginGroupUpdatePropertiesParameters
+ = new AfdOriginGroupUpdatePropertiesParameters();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("profileName".equals(fieldName)) {
+ deserializedAfdOriginGroupUpdatePropertiesParameters.profileName = reader.getString();
+ } else if ("loadBalancingSettings".equals(fieldName)) {
+ deserializedAfdOriginGroupUpdatePropertiesParameters.loadBalancingSettings
+ = LoadBalancingSettingsParameters.fromJson(reader);
+ } else if ("healthProbeSettings".equals(fieldName)) {
+ deserializedAfdOriginGroupUpdatePropertiesParameters.healthProbeSettings
+ = HealthProbeParameters.fromJson(reader);
+ } else if ("trafficRestorationTimeToHealedOrNewEndpointsInMinutes".equals(fieldName)) {
+ deserializedAfdOriginGroupUpdatePropertiesParameters.trafficRestorationTimeToHealedOrNewEndpointsInMinutes
+ = reader.getNullable(JsonReader::getInt);
+ } else if ("sessionAffinityState".equals(fieldName)) {
+ deserializedAfdOriginGroupUpdatePropertiesParameters.sessionAffinityState
+ = EnabledState.fromString(reader.getString());
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdOriginGroupUpdatePropertiesParameters;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginInner.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginInner.java
new file mode 100644
index 000000000000..cd3ff833978a
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginInner.java
@@ -0,0 +1,434 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.core.management.ProxyResource;
+import com.azure.core.management.SystemData;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import com.azure.resourcemanager.cdn.generated.models.ResourceReference;
+import com.azure.resourcemanager.cdn.generated.models.SharedPrivateLinkResourceProperties;
+import java.io.IOException;
+
+/**
+ * Azure Front Door origin is the source of the content being delivered via Azure Front Door. When the edge nodes
+ * represented by an endpoint do not have the requested content cached, they attempt to fetch it from one or more of the
+ * configured origins.
+ */
+@Fluent
+public final class AfdOriginInner extends ProxyResource {
+ /*
+ * The JSON object that contains the properties of the origin.
+ */
+ private AfdOriginProperties innerProperties;
+
+ /*
+ * Read only system data
+ */
+ private SystemData systemData;
+
+ /*
+ * The type of the resource.
+ */
+ private String type;
+
+ /*
+ * The name of the resource.
+ */
+ private String name;
+
+ /*
+ * Fully qualified resource Id for the resource.
+ */
+ private String id;
+
+ /**
+ * Creates an instance of AfdOriginInner class.
+ */
+ public AfdOriginInner() {
+ }
+
+ /**
+ * Get the innerProperties property: The JSON object that contains the properties of the origin.
+ *
+ * @return the innerProperties value.
+ */
+ private AfdOriginProperties innerProperties() {
+ return this.innerProperties;
+ }
+
+ /**
+ * Get the systemData property: Read only system data.
+ *
+ * @return the systemData value.
+ */
+ public SystemData systemData() {
+ return this.systemData;
+ }
+
+ /**
+ * Get the type property: The type of the resource.
+ *
+ * @return the type value.
+ */
+ @Override
+ public String type() {
+ return this.type;
+ }
+
+ /**
+ * Get the name property: The name of the resource.
+ *
+ * @return the name value.
+ */
+ @Override
+ public String name() {
+ return this.name;
+ }
+
+ /**
+ * Get the id property: Fully qualified resource Id for the resource.
+ *
+ * @return the id value.
+ */
+ @Override
+ public String id() {
+ return this.id;
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.innerProperties() == null ? null : this.innerProperties().provisioningState();
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.innerProperties() == null ? null : this.innerProperties().deploymentStatus();
+ }
+
+ /**
+ * Get the originGroupName property: The name of the origin group which contains this origin.
+ *
+ * @return the originGroupName value.
+ */
+ public String originGroupName() {
+ return this.innerProperties() == null ? null : this.innerProperties().originGroupName();
+ }
+
+ /**
+ * Get the azureOrigin property: Resource reference to the Azure origin resource.
+ *
+ * @return the azureOrigin value.
+ */
+ public ResourceReference azureOrigin() {
+ return this.innerProperties() == null ? null : this.innerProperties().azureOrigin();
+ }
+
+ /**
+ * Set the azureOrigin property: Resource reference to the Azure origin resource.
+ *
+ * @param azureOrigin the azureOrigin value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withAzureOrigin(ResourceReference azureOrigin) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withAzureOrigin(azureOrigin);
+ return this;
+ }
+
+ /**
+ * Get the hostname property: The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are
+ * supported.This should be unique across all origins in an endpoint.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.innerProperties() == null ? null : this.innerProperties().hostname();
+ }
+
+ /**
+ * Set the hostname property: The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are
+ * supported.This should be unique across all origins in an endpoint.
+ *
+ * @param hostname the hostname value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withHostname(String hostname) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withHostname(hostname);
+ return this;
+ }
+
+ /**
+ * Get the httpPort property: The value of the HTTP port. Must be between 1 and 65535.
+ *
+ * @return the httpPort value.
+ */
+ public Integer httpPort() {
+ return this.innerProperties() == null ? null : this.innerProperties().httpPort();
+ }
+
+ /**
+ * Set the httpPort property: The value of the HTTP port. Must be between 1 and 65535.
+ *
+ * @param httpPort the httpPort value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withHttpPort(Integer httpPort) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withHttpPort(httpPort);
+ return this;
+ }
+
+ /**
+ * Get the httpsPort property: The value of the HTTPS port. Must be between 1 and 65535.
+ *
+ * @return the httpsPort value.
+ */
+ public Integer httpsPort() {
+ return this.innerProperties() == null ? null : this.innerProperties().httpsPort();
+ }
+
+ /**
+ * Set the httpsPort property: The value of the HTTPS port. Must be between 1 and 65535.
+ *
+ * @param httpsPort the httpsPort value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withHttpsPort(Integer httpsPort) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withHttpsPort(httpsPort);
+ return this;
+ }
+
+ /**
+ * Get the originHostHeader property: The host header value sent to the origin with each request. If you leave this
+ * blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and
+ * Cloud Services require this host header value to match the origin hostname by default. This overrides the host
+ * header defined at Endpoint.
+ *
+ * @return the originHostHeader value.
+ */
+ public String originHostHeader() {
+ return this.innerProperties() == null ? null : this.innerProperties().originHostHeader();
+ }
+
+ /**
+ * Set the originHostHeader property: The host header value sent to the origin with each request. If you leave this
+ * blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and
+ * Cloud Services require this host header value to match the origin hostname by default. This overrides the host
+ * header defined at Endpoint.
+ *
+ * @param originHostHeader the originHostHeader value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withOriginHostHeader(String originHostHeader) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withOriginHostHeader(originHostHeader);
+ return this;
+ }
+
+ /**
+ * Get the priority property: Priority of origin in given origin group for load balancing. Higher priorities will
+ * not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5.
+ *
+ * @return the priority value.
+ */
+ public Integer priority() {
+ return this.innerProperties() == null ? null : this.innerProperties().priority();
+ }
+
+ /**
+ * Set the priority property: Priority of origin in given origin group for load balancing. Higher priorities will
+ * not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5.
+ *
+ * @param priority the priority value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withPriority(Integer priority) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withPriority(priority);
+ return this;
+ }
+
+ /**
+ * Get the weight property: Weight of the origin in given origin group for load balancing. Must be between 1 and
+ * 1000.
+ *
+ * @return the weight value.
+ */
+ public Integer weight() {
+ return this.innerProperties() == null ? null : this.innerProperties().weight();
+ }
+
+ /**
+ * Set the weight property: Weight of the origin in given origin group for load balancing. Must be between 1 and
+ * 1000.
+ *
+ * @param weight the weight value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withWeight(Integer weight) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withWeight(weight);
+ return this;
+ }
+
+ /**
+ * Get the sharedPrivateLinkResource property: The properties of the private link resource for private origin.
+ *
+ * @return the sharedPrivateLinkResource value.
+ */
+ public SharedPrivateLinkResourceProperties sharedPrivateLinkResource() {
+ return this.innerProperties() == null ? null : this.innerProperties().sharedPrivateLinkResource();
+ }
+
+ /**
+ * Set the sharedPrivateLinkResource property: The properties of the private link resource for private origin.
+ *
+ * @param sharedPrivateLinkResource the sharedPrivateLinkResource value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withSharedPrivateLinkResource(SharedPrivateLinkResourceProperties sharedPrivateLinkResource) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withSharedPrivateLinkResource(sharedPrivateLinkResource);
+ return this;
+ }
+
+ /**
+ * Get the enabledState property: Whether to enable health probes to be made against backends defined under
+ * backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend
+ * pool.
+ *
+ * @return the enabledState value.
+ */
+ public EnabledState enabledState() {
+ return this.innerProperties() == null ? null : this.innerProperties().enabledState();
+ }
+
+ /**
+ * Set the enabledState property: Whether to enable health probes to be made against backends defined under
+ * backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend
+ * pool.
+ *
+ * @param enabledState the enabledState value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withEnabledState(EnabledState enabledState) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withEnabledState(enabledState);
+ return this;
+ }
+
+ /**
+ * Get the enforceCertificateNameCheck property: Whether to enable certificate name check at origin level.
+ *
+ * @return the enforceCertificateNameCheck value.
+ */
+ public Boolean enforceCertificateNameCheck() {
+ return this.innerProperties() == null ? null : this.innerProperties().enforceCertificateNameCheck();
+ }
+
+ /**
+ * Set the enforceCertificateNameCheck property: Whether to enable certificate name check at origin level.
+ *
+ * @param enforceCertificateNameCheck the enforceCertificateNameCheck value to set.
+ * @return the AfdOriginInner object itself.
+ */
+ public AfdOriginInner withEnforceCertificateNameCheck(Boolean enforceCertificateNameCheck) {
+ if (this.innerProperties() == null) {
+ this.innerProperties = new AfdOriginProperties();
+ }
+ this.innerProperties().withEnforceCertificateNameCheck(enforceCertificateNameCheck);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (innerProperties() != null) {
+ innerProperties().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("properties", this.innerProperties);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdOriginInner from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdOriginInner if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IllegalStateException If the deserialized JSON object was missing any required properties.
+ * @throws IOException If an error occurs while reading the AfdOriginInner.
+ */
+ public static AfdOriginInner fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdOriginInner deserializedAfdOriginInner = new AfdOriginInner();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("id".equals(fieldName)) {
+ deserializedAfdOriginInner.id = reader.getString();
+ } else if ("name".equals(fieldName)) {
+ deserializedAfdOriginInner.name = reader.getString();
+ } else if ("type".equals(fieldName)) {
+ deserializedAfdOriginInner.type = reader.getString();
+ } else if ("properties".equals(fieldName)) {
+ deserializedAfdOriginInner.innerProperties = AfdOriginProperties.fromJson(reader);
+ } else if ("systemData".equals(fieldName)) {
+ deserializedAfdOriginInner.systemData = SystemData.fromJson(reader);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdOriginInner;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginProperties.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginProperties.java
new file mode 100644
index 000000000000..0e0369f97f29
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginProperties.java
@@ -0,0 +1,249 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.AfdProvisioningState;
+import com.azure.resourcemanager.cdn.generated.models.DeploymentStatus;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import com.azure.resourcemanager.cdn.generated.models.ResourceReference;
+import com.azure.resourcemanager.cdn.generated.models.SharedPrivateLinkResourceProperties;
+import java.io.IOException;
+
+/**
+ * The JSON object that contains the properties of the origin.
+ */
+@Fluent
+public final class AfdOriginProperties extends AfdOriginUpdatePropertiesParameters {
+ /*
+ * Provisioning status
+ */
+ private AfdProvisioningState provisioningState;
+
+ /*
+ * The deploymentStatus property.
+ */
+ private DeploymentStatus deploymentStatus;
+
+ /*
+ * The name of the origin group which contains this origin.
+ */
+ private String originGroupName;
+
+ /**
+ * Creates an instance of AfdOriginProperties class.
+ */
+ public AfdOriginProperties() {
+ }
+
+ /**
+ * Get the provisioningState property: Provisioning status.
+ *
+ * @return the provisioningState value.
+ */
+ public AfdProvisioningState provisioningState() {
+ return this.provisioningState;
+ }
+
+ /**
+ * Get the deploymentStatus property: The deploymentStatus property.
+ *
+ * @return the deploymentStatus value.
+ */
+ public DeploymentStatus deploymentStatus() {
+ return this.deploymentStatus;
+ }
+
+ /**
+ * Get the originGroupName property: The name of the origin group which contains this origin.
+ *
+ * @return the originGroupName value.
+ */
+ @Override
+ public String originGroupName() {
+ return this.originGroupName;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withAzureOrigin(ResourceReference azureOrigin) {
+ super.withAzureOrigin(azureOrigin);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withHostname(String hostname) {
+ super.withHostname(hostname);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withHttpPort(Integer httpPort) {
+ super.withHttpPort(httpPort);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withHttpsPort(Integer httpsPort) {
+ super.withHttpsPort(httpsPort);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withOriginHostHeader(String originHostHeader) {
+ super.withOriginHostHeader(originHostHeader);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withPriority(Integer priority) {
+ super.withPriority(priority);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withWeight(Integer weight) {
+ super.withWeight(weight);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties
+ withSharedPrivateLinkResource(SharedPrivateLinkResourceProperties sharedPrivateLinkResource) {
+ super.withSharedPrivateLinkResource(sharedPrivateLinkResource);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withEnabledState(EnabledState enabledState) {
+ super.withEnabledState(enabledState);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public AfdOriginProperties withEnforceCertificateNameCheck(Boolean enforceCertificateNameCheck) {
+ super.withEnforceCertificateNameCheck(enforceCertificateNameCheck);
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ @Override
+ public void validate() {
+ if (azureOrigin() != null) {
+ azureOrigin().validate();
+ }
+ if (sharedPrivateLinkResource() != null) {
+ sharedPrivateLinkResource().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("azureOrigin", azureOrigin());
+ jsonWriter.writeStringField("hostName", hostname());
+ jsonWriter.writeNumberField("httpPort", httpPort());
+ jsonWriter.writeNumberField("httpsPort", httpsPort());
+ jsonWriter.writeStringField("originHostHeader", originHostHeader());
+ jsonWriter.writeNumberField("priority", priority());
+ jsonWriter.writeNumberField("weight", weight());
+ jsonWriter.writeJsonField("sharedPrivateLinkResource", sharedPrivateLinkResource());
+ jsonWriter.writeStringField("enabledState", enabledState() == null ? null : enabledState().toString());
+ jsonWriter.writeBooleanField("enforceCertificateNameCheck", enforceCertificateNameCheck());
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdOriginProperties from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdOriginProperties if the JsonReader was pointing to an instance of it, or null if it was
+ * pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AfdOriginProperties.
+ */
+ public static AfdOriginProperties fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdOriginProperties deserializedAfdOriginProperties = new AfdOriginProperties();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("originGroupName".equals(fieldName)) {
+ deserializedAfdOriginProperties.originGroupName = reader.getString();
+ } else if ("azureOrigin".equals(fieldName)) {
+ deserializedAfdOriginProperties.withAzureOrigin(ResourceReference.fromJson(reader));
+ } else if ("hostName".equals(fieldName)) {
+ deserializedAfdOriginProperties.withHostname(reader.getString());
+ } else if ("httpPort".equals(fieldName)) {
+ deserializedAfdOriginProperties.withHttpPort(reader.getNullable(JsonReader::getInt));
+ } else if ("httpsPort".equals(fieldName)) {
+ deserializedAfdOriginProperties.withHttpsPort(reader.getNullable(JsonReader::getInt));
+ } else if ("originHostHeader".equals(fieldName)) {
+ deserializedAfdOriginProperties.withOriginHostHeader(reader.getString());
+ } else if ("priority".equals(fieldName)) {
+ deserializedAfdOriginProperties.withPriority(reader.getNullable(JsonReader::getInt));
+ } else if ("weight".equals(fieldName)) {
+ deserializedAfdOriginProperties.withWeight(reader.getNullable(JsonReader::getInt));
+ } else if ("sharedPrivateLinkResource".equals(fieldName)) {
+ deserializedAfdOriginProperties
+ .withSharedPrivateLinkResource(SharedPrivateLinkResourceProperties.fromJson(reader));
+ } else if ("enabledState".equals(fieldName)) {
+ deserializedAfdOriginProperties.withEnabledState(EnabledState.fromString(reader.getString()));
+ } else if ("enforceCertificateNameCheck".equals(fieldName)) {
+ deserializedAfdOriginProperties
+ .withEnforceCertificateNameCheck(reader.getNullable(JsonReader::getBoolean));
+ } else if ("provisioningState".equals(fieldName)) {
+ deserializedAfdOriginProperties.provisioningState
+ = AfdProvisioningState.fromString(reader.getString());
+ } else if ("deploymentStatus".equals(fieldName)) {
+ deserializedAfdOriginProperties.deploymentStatus = DeploymentStatus.fromString(reader.getString());
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdOriginProperties;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginUpdatePropertiesParameters.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginUpdatePropertiesParameters.java
new file mode 100644
index 000000000000..29683a7da13e
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/AfdOriginUpdatePropertiesParameters.java
@@ -0,0 +1,407 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.EnabledState;
+import com.azure.resourcemanager.cdn.generated.models.ResourceReference;
+import com.azure.resourcemanager.cdn.generated.models.SharedPrivateLinkResourceProperties;
+import java.io.IOException;
+
+/**
+ * The JSON object that contains the properties of the origin.
+ */
+@Fluent
+public class AfdOriginUpdatePropertiesParameters implements JsonSerializable {
+ /*
+ * The name of the origin group which contains this origin.
+ */
+ private String originGroupName;
+
+ /*
+ * Resource reference to the Azure origin resource.
+ */
+ private ResourceReference azureOrigin;
+
+ /*
+ * The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are supported.This should be unique
+ * across all origins in an endpoint.
+ */
+ private String hostname;
+
+ /*
+ * The value of the HTTP port. Must be between 1 and 65535.
+ */
+ private Integer httpPort;
+
+ /*
+ * The value of the HTTPS port. Must be between 1 and 65535.
+ */
+ private Integer httpsPort;
+
+ /*
+ * The host header value sent to the origin with each request. If you leave this blank, the request hostname
+ * determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and Cloud Services require this
+ * host header value to match the origin hostname by default. This overrides the host header defined at Endpoint
+ */
+ private String originHostHeader;
+
+ /*
+ * Priority of origin in given origin group for load balancing. Higher priorities will not be used for load
+ * balancing if any lower priority origin is healthy.Must be between 1 and 5
+ */
+ private Integer priority;
+
+ /*
+ * Weight of the origin in given origin group for load balancing. Must be between 1 and 1000
+ */
+ private Integer weight;
+
+ /*
+ * The properties of the private link resource for private origin.
+ */
+ private SharedPrivateLinkResourceProperties sharedPrivateLinkResource;
+
+ /*
+ * Whether to enable health probes to be made against backends defined under backendPools. Health probes can only be
+ * disabled if there is a single enabled backend in single enabled backend pool.
+ */
+ private EnabledState enabledState;
+
+ /*
+ * Whether to enable certificate name check at origin level
+ */
+ private Boolean enforceCertificateNameCheck;
+
+ /**
+ * Creates an instance of AfdOriginUpdatePropertiesParameters class.
+ */
+ public AfdOriginUpdatePropertiesParameters() {
+ }
+
+ /**
+ * Get the originGroupName property: The name of the origin group which contains this origin.
+ *
+ * @return the originGroupName value.
+ */
+ public String originGroupName() {
+ return this.originGroupName;
+ }
+
+ /**
+ * Set the originGroupName property: The name of the origin group which contains this origin.
+ *
+ * @param originGroupName the originGroupName value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ AfdOriginUpdatePropertiesParameters withOriginGroupName(String originGroupName) {
+ this.originGroupName = originGroupName;
+ return this;
+ }
+
+ /**
+ * Get the azureOrigin property: Resource reference to the Azure origin resource.
+ *
+ * @return the azureOrigin value.
+ */
+ public ResourceReference azureOrigin() {
+ return this.azureOrigin;
+ }
+
+ /**
+ * Set the azureOrigin property: Resource reference to the Azure origin resource.
+ *
+ * @param azureOrigin the azureOrigin value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withAzureOrigin(ResourceReference azureOrigin) {
+ this.azureOrigin = azureOrigin;
+ return this;
+ }
+
+ /**
+ * Get the hostname property: The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are
+ * supported.This should be unique across all origins in an endpoint.
+ *
+ * @return the hostname value.
+ */
+ public String hostname() {
+ return this.hostname;
+ }
+
+ /**
+ * Set the hostname property: The address of the origin. Domain names, IPv4 addresses, and IPv6 addresses are
+ * supported.This should be unique across all origins in an endpoint.
+ *
+ * @param hostname the hostname value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withHostname(String hostname) {
+ this.hostname = hostname;
+ return this;
+ }
+
+ /**
+ * Get the httpPort property: The value of the HTTP port. Must be between 1 and 65535.
+ *
+ * @return the httpPort value.
+ */
+ public Integer httpPort() {
+ return this.httpPort;
+ }
+
+ /**
+ * Set the httpPort property: The value of the HTTP port. Must be between 1 and 65535.
+ *
+ * @param httpPort the httpPort value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withHttpPort(Integer httpPort) {
+ this.httpPort = httpPort;
+ return this;
+ }
+
+ /**
+ * Get the httpsPort property: The value of the HTTPS port. Must be between 1 and 65535.
+ *
+ * @return the httpsPort value.
+ */
+ public Integer httpsPort() {
+ return this.httpsPort;
+ }
+
+ /**
+ * Set the httpsPort property: The value of the HTTPS port. Must be between 1 and 65535.
+ *
+ * @param httpsPort the httpsPort value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withHttpsPort(Integer httpsPort) {
+ this.httpsPort = httpsPort;
+ return this;
+ }
+
+ /**
+ * Get the originHostHeader property: The host header value sent to the origin with each request. If you leave this
+ * blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and
+ * Cloud Services require this host header value to match the origin hostname by default. This overrides the host
+ * header defined at Endpoint.
+ *
+ * @return the originHostHeader value.
+ */
+ public String originHostHeader() {
+ return this.originHostHeader;
+ }
+
+ /**
+ * Set the originHostHeader property: The host header value sent to the origin with each request. If you leave this
+ * blank, the request hostname determines this value. Azure Front Door origins, such as Web Apps, Blob Storage, and
+ * Cloud Services require this host header value to match the origin hostname by default. This overrides the host
+ * header defined at Endpoint.
+ *
+ * @param originHostHeader the originHostHeader value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withOriginHostHeader(String originHostHeader) {
+ this.originHostHeader = originHostHeader;
+ return this;
+ }
+
+ /**
+ * Get the priority property: Priority of origin in given origin group for load balancing. Higher priorities will
+ * not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5.
+ *
+ * @return the priority value.
+ */
+ public Integer priority() {
+ return this.priority;
+ }
+
+ /**
+ * Set the priority property: Priority of origin in given origin group for load balancing. Higher priorities will
+ * not be used for load balancing if any lower priority origin is healthy.Must be between 1 and 5.
+ *
+ * @param priority the priority value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withPriority(Integer priority) {
+ this.priority = priority;
+ return this;
+ }
+
+ /**
+ * Get the weight property: Weight of the origin in given origin group for load balancing. Must be between 1 and
+ * 1000.
+ *
+ * @return the weight value.
+ */
+ public Integer weight() {
+ return this.weight;
+ }
+
+ /**
+ * Set the weight property: Weight of the origin in given origin group for load balancing. Must be between 1 and
+ * 1000.
+ *
+ * @param weight the weight value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withWeight(Integer weight) {
+ this.weight = weight;
+ return this;
+ }
+
+ /**
+ * Get the sharedPrivateLinkResource property: The properties of the private link resource for private origin.
+ *
+ * @return the sharedPrivateLinkResource value.
+ */
+ public SharedPrivateLinkResourceProperties sharedPrivateLinkResource() {
+ return this.sharedPrivateLinkResource;
+ }
+
+ /**
+ * Set the sharedPrivateLinkResource property: The properties of the private link resource for private origin.
+ *
+ * @param sharedPrivateLinkResource the sharedPrivateLinkResource value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters
+ withSharedPrivateLinkResource(SharedPrivateLinkResourceProperties sharedPrivateLinkResource) {
+ this.sharedPrivateLinkResource = sharedPrivateLinkResource;
+ return this;
+ }
+
+ /**
+ * Get the enabledState property: Whether to enable health probes to be made against backends defined under
+ * backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend
+ * pool.
+ *
+ * @return the enabledState value.
+ */
+ public EnabledState enabledState() {
+ return this.enabledState;
+ }
+
+ /**
+ * Set the enabledState property: Whether to enable health probes to be made against backends defined under
+ * backendPools. Health probes can only be disabled if there is a single enabled backend in single enabled backend
+ * pool.
+ *
+ * @param enabledState the enabledState value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withEnabledState(EnabledState enabledState) {
+ this.enabledState = enabledState;
+ return this;
+ }
+
+ /**
+ * Get the enforceCertificateNameCheck property: Whether to enable certificate name check at origin level.
+ *
+ * @return the enforceCertificateNameCheck value.
+ */
+ public Boolean enforceCertificateNameCheck() {
+ return this.enforceCertificateNameCheck;
+ }
+
+ /**
+ * Set the enforceCertificateNameCheck property: Whether to enable certificate name check at origin level.
+ *
+ * @param enforceCertificateNameCheck the enforceCertificateNameCheck value to set.
+ * @return the AfdOriginUpdatePropertiesParameters object itself.
+ */
+ public AfdOriginUpdatePropertiesParameters withEnforceCertificateNameCheck(Boolean enforceCertificateNameCheck) {
+ this.enforceCertificateNameCheck = enforceCertificateNameCheck;
+ return this;
+ }
+
+ /**
+ * Validates the instance.
+ *
+ * @throws IllegalArgumentException thrown if the instance is not valid.
+ */
+ public void validate() {
+ if (azureOrigin() != null) {
+ azureOrigin().validate();
+ }
+ if (sharedPrivateLinkResource() != null) {
+ sharedPrivateLinkResource().validate();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public JsonWriter toJson(JsonWriter jsonWriter) throws IOException {
+ jsonWriter.writeStartObject();
+ jsonWriter.writeJsonField("azureOrigin", this.azureOrigin);
+ jsonWriter.writeStringField("hostName", this.hostname);
+ jsonWriter.writeNumberField("httpPort", this.httpPort);
+ jsonWriter.writeNumberField("httpsPort", this.httpsPort);
+ jsonWriter.writeStringField("originHostHeader", this.originHostHeader);
+ jsonWriter.writeNumberField("priority", this.priority);
+ jsonWriter.writeNumberField("weight", this.weight);
+ jsonWriter.writeJsonField("sharedPrivateLinkResource", this.sharedPrivateLinkResource);
+ jsonWriter.writeStringField("enabledState", this.enabledState == null ? null : this.enabledState.toString());
+ jsonWriter.writeBooleanField("enforceCertificateNameCheck", this.enforceCertificateNameCheck);
+ return jsonWriter.writeEndObject();
+ }
+
+ /**
+ * Reads an instance of AfdOriginUpdatePropertiesParameters from the JsonReader.
+ *
+ * @param jsonReader The JsonReader being read.
+ * @return An instance of AfdOriginUpdatePropertiesParameters if the JsonReader was pointing to an instance of it,
+ * or null if it was pointing to JSON null.
+ * @throws IOException If an error occurs while reading the AfdOriginUpdatePropertiesParameters.
+ */
+ public static AfdOriginUpdatePropertiesParameters fromJson(JsonReader jsonReader) throws IOException {
+ return jsonReader.readObject(reader -> {
+ AfdOriginUpdatePropertiesParameters deserializedAfdOriginUpdatePropertiesParameters
+ = new AfdOriginUpdatePropertiesParameters();
+ while (reader.nextToken() != JsonToken.END_OBJECT) {
+ String fieldName = reader.getFieldName();
+ reader.nextToken();
+
+ if ("originGroupName".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.originGroupName = reader.getString();
+ } else if ("azureOrigin".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.azureOrigin = ResourceReference.fromJson(reader);
+ } else if ("hostName".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.hostname = reader.getString();
+ } else if ("httpPort".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.httpPort = reader.getNullable(JsonReader::getInt);
+ } else if ("httpsPort".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.httpsPort = reader.getNullable(JsonReader::getInt);
+ } else if ("originHostHeader".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.originHostHeader = reader.getString();
+ } else if ("priority".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.priority = reader.getNullable(JsonReader::getInt);
+ } else if ("weight".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.weight = reader.getNullable(JsonReader::getInt);
+ } else if ("sharedPrivateLinkResource".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.sharedPrivateLinkResource
+ = SharedPrivateLinkResourceProperties.fromJson(reader);
+ } else if ("enabledState".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.enabledState
+ = EnabledState.fromString(reader.getString());
+ } else if ("enforceCertificateNameCheck".equals(fieldName)) {
+ deserializedAfdOriginUpdatePropertiesParameters.enforceCertificateNameCheck
+ = reader.getNullable(JsonReader::getBoolean);
+ } else {
+ reader.skipChildren();
+ }
+ }
+
+ return deserializedAfdOriginUpdatePropertiesParameters;
+ });
+ }
+}
diff --git a/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/CanMigrateProperties.java b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/CanMigrateProperties.java
new file mode 100644
index 000000000000..ca5c44946b1b
--- /dev/null
+++ b/sdk/cdn/azure-resourcemanager-cdn-generated/src/main/java/com/azure/resourcemanager/cdn/generated/fluent/models/CanMigrateProperties.java
@@ -0,0 +1,132 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT License.
+// Code generated by Microsoft (R) AutoRest Code Generator.
+
+package com.azure.resourcemanager.cdn.generated.fluent.models;
+
+import com.azure.core.annotation.Fluent;
+import com.azure.json.JsonReader;
+import com.azure.json.JsonSerializable;
+import com.azure.json.JsonToken;
+import com.azure.json.JsonWriter;
+import com.azure.resourcemanager.cdn.generated.models.CanMigrateDefaultSku;
+import com.azure.resourcemanager.cdn.generated.models.MigrationErrorType;
+import java.io.IOException;
+import java.util.List;
+
+/**
+ * The CanMigrateProperties model.
+ */
+@Fluent
+public final class CanMigrateProperties implements JsonSerializable {
+ /*
+ * Flag that says if the profile can be migrated
+ */
+ private Boolean canMigrate;
+
+ /*
+ * Recommended sku for the migration
+ */
+ private CanMigrateDefaultSku defaultSku;
+
+ /*
+ * The errors property.
+ */
+ private List errors;
+
+ /**
+ * Creates an instance of CanMigrateProperties class.
+ */
+ public CanMigrateProperties() {
+ }
+
+ /**
+ * Get the canMigrate property: Flag that says if the profile can be migrated.
+ *
+ * @return the canMigrate value.
+ */
+ public Boolean canMigrate() {
+ return this.canMigrate;
+ }
+
+ /**
+ * Get the defaultSku property: Recommended sku for the migration.
+ *
+ * @return the defaultSku value.
+ */
+ public CanMigrateDefaultSku defaultSku() {
+ return this.defaultSku;
+ }
+
+ /**
+ * Get the errors property: The errors property.
+ *
+ * @return the errors value.
+ */
+ public List