// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// Code generated by Microsoft (R) AutoRest Code Generator.

package com.azure.resourcemanager.appservice.fluent;

import com.azure.core.annotation.ReturnType;
import com.azure.core.annotation.ServiceMethod;
import com.azure.core.http.rest.PagedFlux;
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.BinaryData;
import com.azure.core.util.Context;
import com.azure.core.util.polling.PollerFlux;
import com.azure.core.util.polling.SyncPoller;
import com.azure.resourcemanager.appservice.fluent.models.ApiKVReferenceInner;
import com.azure.resourcemanager.appservice.fluent.models.AzureStoragePropertyDictionaryResourceInner;
import com.azure.resourcemanager.appservice.fluent.models.BackupItemInner;
import com.azure.resourcemanager.appservice.fluent.models.BackupRequestInner;
import com.azure.resourcemanager.appservice.fluent.models.ConnectionStringDictionaryInner;
import com.azure.resourcemanager.appservice.fluent.models.ContinuousWebJobInner;
import com.azure.resourcemanager.appservice.fluent.models.CsmPublishingCredentialsPoliciesEntityInner;
import com.azure.resourcemanager.appservice.fluent.models.CsmUsageQuotaInner;
import com.azure.resourcemanager.appservice.fluent.models.CustomHostnameAnalysisResultInner;
import com.azure.resourcemanager.appservice.fluent.models.DeploymentInner;
import com.azure.resourcemanager.appservice.fluent.models.FunctionEnvelopeInner;
import com.azure.resourcemanager.appservice.fluent.models.FunctionSecretsInner;
import com.azure.resourcemanager.appservice.fluent.models.HostKeysInner;
import com.azure.resourcemanager.appservice.fluent.models.HostnameBindingInner;
import com.azure.resourcemanager.appservice.fluent.models.HybridConnectionInner;
import com.azure.resourcemanager.appservice.fluent.models.IdentifierInner;
import com.azure.resourcemanager.appservice.fluent.models.KeyInfoInner;
import com.azure.resourcemanager.appservice.fluent.models.MSDeployLogInner;
import com.azure.resourcemanager.appservice.fluent.models.MSDeployStatusInner;
import com.azure.resourcemanager.appservice.fluent.models.MigrateMySqlStatusInner;
import com.azure.resourcemanager.appservice.fluent.models.NetworkFeaturesInner;
import com.azure.resourcemanager.appservice.fluent.models.NetworkTraceInner;
import com.azure.resourcemanager.appservice.fluent.models.OperationInner;
import com.azure.resourcemanager.appservice.fluent.models.PerfMonResponseInner;
import com.azure.resourcemanager.appservice.fluent.models.PremierAddOnInner;
import com.azure.resourcemanager.appservice.fluent.models.PrivateAccessInner;
import com.azure.resourcemanager.appservice.fluent.models.PrivateLinkResourcesWrapperInner;
import com.azure.resourcemanager.appservice.fluent.models.ProcessInfoInner;
import com.azure.resourcemanager.appservice.fluent.models.ProcessModuleInfoInner;
import com.azure.resourcemanager.appservice.fluent.models.ProcessThreadInfoInner;
import com.azure.resourcemanager.appservice.fluent.models.PublicCertificateInner;
import com.azure.resourcemanager.appservice.fluent.models.PushSettingsInner;
import com.azure.resourcemanager.appservice.fluent.models.RelayServiceConnectionEntityInner;
import com.azure.resourcemanager.appservice.fluent.models.RemotePrivateEndpointConnectionArmResourceInner;
import com.azure.resourcemanager.appservice.fluent.models.RestoreRequestInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteAuthSettingsInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteAuthSettingsV2Inner;
import com.azure.resourcemanager.appservice.fluent.models.SiteCloneabilityInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteConfigResourceInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteConfigurationSnapshotInfoInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteExtensionInfoInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteLogsConfigInner;
import com.azure.resourcemanager.appservice.fluent.models.SitePatchResourceInner;
import com.azure.resourcemanager.appservice.fluent.models.SitePhpErrorLogFlagInner;
import com.azure.resourcemanager.appservice.fluent.models.SiteSourceControlInner;
import com.azure.resourcemanager.appservice.fluent.models.SlotConfigNamesResourceInner;
import com.azure.resourcemanager.appservice.fluent.models.SlotDifferenceInner;
import com.azure.resourcemanager.appservice.fluent.models.SnapshotInner;
import com.azure.resourcemanager.appservice.fluent.models.StorageMigrationResponseInner;
import com.azure.resourcemanager.appservice.fluent.models.StringDictionaryInner;
import com.azure.resourcemanager.appservice.fluent.models.SwiftVirtualNetworkInner;
import com.azure.resourcemanager.appservice.fluent.models.TriggeredJobHistoryInner;
import com.azure.resourcemanager.appservice.fluent.models.TriggeredWebJobInner;
import com.azure.resourcemanager.appservice.fluent.models.UserInner;
import com.azure.resourcemanager.appservice.fluent.models.VnetGatewayInner;
import com.azure.resourcemanager.appservice.fluent.models.VnetInfoResourceInner;
import com.azure.resourcemanager.appservice.fluent.models.WebJobInner;
import com.azure.resourcemanager.appservice.fluent.models.WebSiteInstanceStatusInner;
import com.azure.resourcemanager.appservice.fluent.models.WorkflowEnvelopeInner;
import com.azure.resourcemanager.appservice.models.CsmDeploymentStatus;
import com.azure.resourcemanager.appservice.models.CsmPublishingProfileOptions;
import com.azure.resourcemanager.appservice.models.CsmSlotEntity;
import com.azure.resourcemanager.appservice.models.DeletedAppRestoreRequest;
import com.azure.resourcemanager.appservice.models.MSDeploy;
import com.azure.resourcemanager.appservice.models.MigrateMySqlRequest;
import com.azure.resourcemanager.appservice.models.PremierAddOnPatchResource;
import com.azure.resourcemanager.appservice.models.PrivateLinkConnectionApprovalRequestResource;
import com.azure.resourcemanager.appservice.models.SnapshotRestoreRequest;
import com.azure.resourcemanager.appservice.models.StorageMigrationOptions;
import com.azure.resourcemanager.appservice.models.WorkflowArtifacts;
import com.azure.resourcemanager.resources.fluentcore.collection.InnerSupportsDelete;
import com.azure.resourcemanager.resources.fluentcore.collection.InnerSupportsGet;
import com.azure.resourcemanager.resources.fluentcore.collection.InnerSupportsListing;
import java.nio.ByteBuffer;
import java.util.List;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

/** An instance of this class provides access to all the operations defined in WebAppsClient. */
public interface WebAppsClient
    extends InnerSupportsGet<SiteInner>, InnerSupportsListing<SiteInner>, InnerSupportsDelete<Void> {
    /**
     * Get all apps for a subscription.
     *
     * <p>Description for Get all apps for a subscription.
     *
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteInner> listAsync();

    /**
     * Get all apps for a subscription.
     *
     * <p>Description for Get all apps for a subscription.
     *
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteInner> list();

    /**
     * Get all apps for a subscription.
     *
     * <p>Description for Get all apps for a subscription.
     *
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteInner> list(Context context);

    /**
     * Gets all web, mobile, and API apps in the specified resource group.
     *
     * <p>Description for Gets all web, mobile, and API apps in the specified resource group.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param includeSlots Specify &lt;strong&gt;true&lt;/strong&gt; to include deployment slots in results. The default
     *     is false, which only gives you the production slot of all apps.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteInner> listByResourceGroupAsync(String resourceGroupName, Boolean includeSlots);

    /**
     * Gets all web, mobile, and API apps in the specified resource group.
     *
     * <p>Description for Gets all web, mobile, and API apps in the specified resource group.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteInner> listByResourceGroupAsync(String resourceGroupName);

    /**
     * Gets all web, mobile, and API apps in the specified resource group.
     *
     * <p>Description for Gets all web, mobile, and API apps in the specified resource group.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteInner> listByResourceGroup(String resourceGroupName);

    /**
     * Gets all web, mobile, and API apps in the specified resource group.
     *
     * <p>Description for Gets all web, mobile, and API apps in the specified resource group.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param includeSlots Specify &lt;strong&gt;true&lt;/strong&gt; to include deployment slots in results. The default
     *     is false, which only gives you the production slot of all apps.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteInner> listByResourceGroup(String resourceGroupName, Boolean includeSlots, Context context);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteInner>> getByResourceGroupWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteInner> getByResourceGroupAsync(String resourceGroupName, String name);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteInner> getByResourceGroupWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner getByResourceGroup(String resourceGroupName, String name);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createOrUpdateWithResponseAsync(
        String resourceGroupName, String name, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<SiteInner>, SiteInner> beginCreateOrUpdateAsync(
        String resourceGroupName, String name, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteInner>, SiteInner> beginCreateOrUpdate(
        String resourceGroupName, String name, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteInner>, SiteInner> beginCreateOrUpdate(
        String resourceGroupName, String name, SiteInner siteEnvelope, Context context);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteInner> createOrUpdateAsync(String resourceGroupName, String name, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner createOrUpdate(String resourceGroupName, String name, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner createOrUpdate(String resourceGroupName, String name, SiteInner siteEnvelope, Context context);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @param deleteMetrics If true, web app metrics are also deleted.
     * @param deleteEmptyServerFarm Specify false if you want to keep empty App Service plan. By default, empty App
     *     Service plan is deleted.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteWithResponseAsync(
        String resourceGroupName, String name, Boolean deleteMetrics, Boolean deleteEmptyServerFarm);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteAsync(String resourceGroupName, String name);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @param deleteMetrics If true, web app metrics are also deleted.
     * @param deleteEmptyServerFarm Specify false if you want to keep empty App Service plan. By default, empty App
     *     Service plan is deleted.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteWithResponse(
        String resourceGroupName, String name, Boolean deleteMetrics, Boolean deleteEmptyServerFarm, Context context);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void delete(String resourceGroupName, String name);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteInner>> updateWithResponseAsync(
        String resourceGroupName, String name, SitePatchResourceInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteInner> updateAsync(String resourceGroupName, String name, SitePatchResourceInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteInner> updateWithResponse(
        String resourceGroupName, String name, SitePatchResourceInner siteEnvelope, Context context);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner update(String resourceGroupName, String name, SitePatchResourceInner siteEnvelope);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param hostname Custom hostname.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CustomHostnameAnalysisResultInner>> analyzeCustomHostnameWithResponseAsync(
        String resourceGroupName, String name, String hostname);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CustomHostnameAnalysisResultInner> analyzeCustomHostnameAsync(String resourceGroupName, String name);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param hostname Custom hostname.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CustomHostnameAnalysisResultInner> analyzeCustomHostnameWithResponse(
        String resourceGroupName, String name, String hostname, Context context);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CustomHostnameAnalysisResultInner analyzeCustomHostname(String resourceGroupName, String name);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> applySlotConfigToProductionWithResponseAsync(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> applySlotConfigToProductionAsync(String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> applySlotConfigToProductionWithResponse(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 applySlotConfigToProduction(String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupItemInner>> backupWithResponseAsync(
        String resourceGroupName, String name, BackupRequestInner request);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupItemInner> backupAsync(String resourceGroupName, String name, BackupRequestInner request);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupItemInner> backupWithResponse(
        String resourceGroupName, String name, BackupRequestInner request, Context context);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupItemInner backup(String resourceGroupName, String name, BackupRequestInner request);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<BackupItemInner> listBackupsAsync(String resourceGroupName, String name);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listBackups(String resourceGroupName, String name);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listBackups(String resourceGroupName, String name, Context context);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupItemInner>> getBackupStatusWithResponseAsync(
        String resourceGroupName, String name, String backupId);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupItemInner> getBackupStatusAsync(String resourceGroupName, String name, String backupId);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupItemInner> getBackupStatusWithResponse(
        String resourceGroupName, String name, String backupId, Context context);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupItemInner getBackupStatus(String resourceGroupName, String name, String backupId);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteBackupWithResponseAsync(String resourceGroupName, String name, String backupId);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteBackupAsync(String resourceGroupName, String name, String backupId);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteBackupWithResponse(String resourceGroupName, String name, String backupId, Context context);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteBackup(String resourceGroupName, String name, String backupId);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param request Information on backup request.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupItemInner>> listBackupStatusSecretsWithResponseAsync(
        String resourceGroupName, String name, String backupId, BackupRequestInner request);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param request Information on backup request.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupItemInner> listBackupStatusSecretsAsync(
        String resourceGroupName, String name, String backupId, BackupRequestInner request);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param request Information on backup request.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupItemInner> listBackupStatusSecretsWithResponse(
        String resourceGroupName, String name, String backupId, BackupRequestInner request, Context context);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param request Information on backup request.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupItemInner listBackupStatusSecrets(
        String resourceGroupName, String name, String backupId, BackupRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreWithResponseAsync(
        String resourceGroupName, String name, String backupId, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreAsync(
        String resourceGroupName, String name, String backupId, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestore(
        String resourceGroupName, String name, String backupId, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestore(
        String resourceGroupName, String name, String backupId, RestoreRequestInner request, Context context);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreAsync(String resourceGroupName, String name, String backupId, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restore(String resourceGroupName, String name, String backupId, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restore(String resourceGroupName, String name, String backupId, RestoreRequestInner request, Context context);

    /**
     * Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * <p>Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies entity collection ARM resource as paginated response with {@link
     *     PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmPublishingCredentialsPoliciesEntityInner> listBasicPublishingCredentialsPoliciesAsync(
        String resourceGroupName, String name);

    /**
     * Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * <p>Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies entity collection ARM resource as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmPublishingCredentialsPoliciesEntityInner> listBasicPublishingCredentialsPolicies(
        String resourceGroupName, String name);

    /**
     * Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * <p>Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies entity collection ARM resource as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmPublishingCredentialsPoliciesEntityInner> listBasicPublishingCredentialsPolicies(
        String resourceGroupName, String name, Context context);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> getFtpAllowedWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> getFtpAllowedAsync(String resourceGroupName, String name);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> getFtpAllowedWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner getFtpAllowed(String resourceGroupName, String name);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> updateFtpAllowedWithResponseAsync(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> updateFtpAllowedAsync(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> updateFtpAllowedWithResponse(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity,
        Context context);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner updateFtpAllowed(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> getScmAllowedWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> getScmAllowedAsync(String resourceGroupName, String name);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> getScmAllowedWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner getScmAllowed(String resourceGroupName, String name);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> updateScmAllowedWithResponseAsync(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> updateScmAllowedAsync(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> updateScmAllowedWithResponse(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity,
        Context context);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner updateScmAllowed(
        String resourceGroupName,
        String name,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * List the configurations of an app
     *
     * <p>Description for List the configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of site configurations as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteConfigResourceInner> listConfigurationsAsync(String resourceGroupName, String name);

    /**
     * List the configurations of an app
     *
     * <p>Description for List the configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of site configurations as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigResourceInner> listConfigurations(String resourceGroupName, String name);

    /**
     * List the configurations of an app
     *
     * <p>Description for List the configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of site configurations as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigResourceInner> listConfigurations(String resourceGroupName, String name, Context context);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettings Application settings of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> updateApplicationSettingsWithResponseAsync(
        String resourceGroupName, String name, StringDictionaryInner appSettings);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettings Application settings of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> updateApplicationSettingsAsync(
        String resourceGroupName, String name, StringDictionaryInner appSettings);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettings Application settings of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> updateApplicationSettingsWithResponse(
        String resourceGroupName, String name, StringDictionaryInner appSettings, Context context);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettings Application settings of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner updateApplicationSettings(
        String resourceGroupName, String name, StringDictionaryInner appSettings);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> listApplicationSettingsWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> listApplicationSettingsAsync(String resourceGroupName, String name);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> listApplicationSettingsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner listApplicationSettings(String resourceGroupName, String name);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettings Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsInner>> updateAuthSettingsWithResponseAsync(
        String resourceGroupName, String name, SiteAuthSettingsInner siteAuthSettings);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettings Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsInner> updateAuthSettingsAsync(
        String resourceGroupName, String name, SiteAuthSettingsInner siteAuthSettings);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettings Auth settings associated with web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsInner> updateAuthSettingsWithResponse(
        String resourceGroupName, String name, SiteAuthSettingsInner siteAuthSettings, Context context);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettings Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsInner updateAuthSettings(
        String resourceGroupName, String name, SiteAuthSettingsInner siteAuthSettings);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsInner>> getAuthSettingsWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsInner> getAuthSettingsAsync(String resourceGroupName, String name);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsInner> getAuthSettingsWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsInner getAuthSettings(String resourceGroupName, String name);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsV2Inner>> getAuthSettingsV2WithoutSecretsWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsV2Inner> getAuthSettingsV2WithoutSecretsAsync(String resourceGroupName, String name);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsV2Inner> getAuthSettingsV2WithoutSecretsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsV2Inner getAuthSettingsV2WithoutSecrets(String resourceGroupName, String name);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsV2Inner>> updateAuthSettingsV2WithResponseAsync(
        String resourceGroupName, String name, SiteAuthSettingsV2Inner siteAuthSettingsV2);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsV2Inner> updateAuthSettingsV2Async(
        String resourceGroupName, String name, SiteAuthSettingsV2Inner siteAuthSettingsV2);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsV2Inner> updateAuthSettingsV2WithResponse(
        String resourceGroupName, String name, SiteAuthSettingsV2Inner siteAuthSettingsV2, Context context);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsV2Inner updateAuthSettingsV2(
        String resourceGroupName, String name, SiteAuthSettingsV2Inner siteAuthSettingsV2);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsV2Inner>> getAuthSettingsV2WithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsV2Inner> getAuthSettingsV2Async(String resourceGroupName, String name);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsV2Inner> getAuthSettingsV2WithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsV2Inner getAuthSettingsV2(String resourceGroupName, String name);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<AzureStoragePropertyDictionaryResourceInner>> updateAzureStorageAccountsWithResponseAsync(
        String resourceGroupName, String name, AzureStoragePropertyDictionaryResourceInner azureStorageAccounts);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<AzureStoragePropertyDictionaryResourceInner> updateAzureStorageAccountsAsync(
        String resourceGroupName, String name, AzureStoragePropertyDictionaryResourceInner azureStorageAccounts);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<AzureStoragePropertyDictionaryResourceInner> updateAzureStorageAccountsWithResponse(
        String resourceGroupName,
        String name,
        AzureStoragePropertyDictionaryResourceInner azureStorageAccounts,
        Context context);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    AzureStoragePropertyDictionaryResourceInner updateAzureStorageAccounts(
        String resourceGroupName, String name, AzureStoragePropertyDictionaryResourceInner azureStorageAccounts);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<AzureStoragePropertyDictionaryResourceInner>> listAzureStorageAccountsWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<AzureStoragePropertyDictionaryResourceInner> listAzureStorageAccountsAsync(
        String resourceGroupName, String name);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<AzureStoragePropertyDictionaryResourceInner> listAzureStorageAccountsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    AzureStoragePropertyDictionaryResourceInner listAzureStorageAccounts(String resourceGroupName, String name);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Edited backup configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupRequestInner>> updateBackupConfigurationWithResponseAsync(
        String resourceGroupName, String name, BackupRequestInner request);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Edited backup configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupRequestInner> updateBackupConfigurationAsync(
        String resourceGroupName, String name, BackupRequestInner request);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Edited backup configuration.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupRequestInner> updateBackupConfigurationWithResponse(
        String resourceGroupName, String name, BackupRequestInner request, Context context);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Edited backup configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupRequestInner updateBackupConfiguration(String resourceGroupName, String name, BackupRequestInner request);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteBackupConfigurationWithResponseAsync(String resourceGroupName, String name);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteBackupConfigurationAsync(String resourceGroupName, String name);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteBackupConfigurationWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteBackupConfiguration(String resourceGroupName, String name);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupRequestInner>> getBackupConfigurationWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupRequestInner> getBackupConfigurationAsync(String resourceGroupName, String name);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupRequestInner> getBackupConfigurationWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupRequestInner getBackupConfiguration(String resourceGroupName, String name);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ApiKVReferenceInner> getAppSettingsKeyVaultReferencesAsync(String resourceGroupName, String name);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getAppSettingsKeyVaultReferences(String resourceGroupName, String name);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getAppSettingsKeyVaultReferences(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ApiKVReferenceInner>> getAppSettingKeyVaultReferenceWithResponseAsync(
        String resourceGroupName, String name, String appSettingKey);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ApiKVReferenceInner> getAppSettingKeyVaultReferenceAsync(
        String resourceGroupName, String name, String appSettingKey);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ApiKVReferenceInner> getAppSettingKeyVaultReferenceWithResponse(
        String resourceGroupName, String name, String appSettingKey, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ApiKVReferenceInner getAppSettingKeyVaultReference(String resourceGroupName, String name, String appSettingKey);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferencesAsync(
        String resourceGroupName, String name);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferences(String resourceGroupName, String name);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferences(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ApiKVReferenceInner>> getSiteConnectionStringKeyVaultReferenceWithResponseAsync(
        String resourceGroupName, String name, String connectionStringKey);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferenceAsync(
        String resourceGroupName, String name, String connectionStringKey);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferenceWithResponse(
        String resourceGroupName, String name, String connectionStringKey, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ApiKVReferenceInner getSiteConnectionStringKeyVaultReference(
        String resourceGroupName, String name, String connectionStringKey);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ConnectionStringDictionaryInner>> updateConnectionStringsWithResponseAsync(
        String resourceGroupName, String name, ConnectionStringDictionaryInner connectionStrings);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ConnectionStringDictionaryInner> updateConnectionStringsAsync(
        String resourceGroupName, String name, ConnectionStringDictionaryInner connectionStrings);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ConnectionStringDictionaryInner> updateConnectionStringsWithResponse(
        String resourceGroupName, String name, ConnectionStringDictionaryInner connectionStrings, Context context);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ConnectionStringDictionaryInner updateConnectionStrings(
        String resourceGroupName, String name, ConnectionStringDictionaryInner connectionStrings);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ConnectionStringDictionaryInner>> listConnectionStringsWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ConnectionStringDictionaryInner> listConnectionStringsAsync(String resourceGroupName, String name);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ConnectionStringDictionaryInner> listConnectionStringsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ConnectionStringDictionaryInner listConnectionStrings(String resourceGroupName, String name);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteLogsConfigInner>> getDiagnosticLogsConfigurationWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteLogsConfigInner> getDiagnosticLogsConfigurationAsync(String resourceGroupName, String name);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteLogsConfigInner> getDiagnosticLogsConfigurationWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteLogsConfigInner getDiagnosticLogsConfiguration(String resourceGroupName, String name);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteLogsConfigInner>> updateDiagnosticLogsConfigWithResponseAsync(
        String resourceGroupName, String name, SiteLogsConfigInner siteLogsConfig);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteLogsConfigInner> updateDiagnosticLogsConfigAsync(
        String resourceGroupName, String name, SiteLogsConfigInner siteLogsConfig);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteLogsConfigInner> updateDiagnosticLogsConfigWithResponse(
        String resourceGroupName, String name, SiteLogsConfigInner siteLogsConfig, Context context);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteLogsConfigInner updateDiagnosticLogsConfig(
        String resourceGroupName, String name, SiteLogsConfigInner siteLogsConfig);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> updateMetadataWithResponseAsync(
        String resourceGroupName, String name, StringDictionaryInner metadata);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> updateMetadataAsync(
        String resourceGroupName, String name, StringDictionaryInner metadata);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> updateMetadataWithResponse(
        String resourceGroupName, String name, StringDictionaryInner metadata, Context context);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner updateMetadata(String resourceGroupName, String name, StringDictionaryInner metadata);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> listMetadataWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> listMetadataAsync(String resourceGroupName, String name);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> listMetadataWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner listMetadata(String resourceGroupName, String name);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> listPublishingCredentialsWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<UserInner>, UserInner> beginListPublishingCredentialsAsync(
        String resourceGroupName, String name);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<UserInner>, UserInner> beginListPublishingCredentials(String resourceGroupName, String name);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<UserInner>, UserInner> beginListPublishingCredentials(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<UserInner> listPublishingCredentialsAsync(String resourceGroupName, String name);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    UserInner listPublishingCredentials(String resourceGroupName, String name);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    UserInner listPublishingCredentials(String resourceGroupName, String name, Context context);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param pushSettings Push settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PushSettingsInner>> updateSitePushSettingsWithResponseAsync(
        String resourceGroupName, String name, PushSettingsInner pushSettings);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param pushSettings Push settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PushSettingsInner> updateSitePushSettingsAsync(
        String resourceGroupName, String name, PushSettingsInner pushSettings);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param pushSettings Push settings associated with web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PushSettingsInner> updateSitePushSettingsWithResponse(
        String resourceGroupName, String name, PushSettingsInner pushSettings, Context context);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param pushSettings Push settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PushSettingsInner updateSitePushSettings(String resourceGroupName, String name, PushSettingsInner pushSettings);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PushSettingsInner>> listSitePushSettingsWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PushSettingsInner> listSitePushSettingsAsync(String resourceGroupName, String name);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PushSettingsInner> listSitePushSettingsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PushSettingsInner listSitePushSettings(String resourceGroupName, String name);

    /**
     * Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * <p>Description for Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SlotConfigNamesResourceInner>> listSlotConfigurationNamesWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * <p>Description for Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SlotConfigNamesResourceInner> listSlotConfigurationNamesAsync(String resourceGroupName, String name);

    /**
     * Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * <p>Description for Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SlotConfigNamesResourceInner> listSlotConfigurationNamesWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * <p>Description for Gets the names of app settings and connection strings that stick to the slot (not swapped).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SlotConfigNamesResourceInner listSlotConfigurationNames(String resourceGroupName, String name);

    /**
     * Updates the names of application settings and connection string that remain with the slot during swap operation.
     *
     * <p>Description for Updates the names of application settings and connection string that remain with the slot
     * during swap operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotConfigNames Names of application settings and connection strings. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SlotConfigNamesResourceInner>> updateSlotConfigurationNamesWithResponseAsync(
        String resourceGroupName, String name, SlotConfigNamesResourceInner slotConfigNames);

    /**
     * Updates the names of application settings and connection string that remain with the slot during swap operation.
     *
     * <p>Description for Updates the names of application settings and connection string that remain with the slot
     * during swap operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotConfigNames Names of application settings and connection strings. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SlotConfigNamesResourceInner> updateSlotConfigurationNamesAsync(
        String resourceGroupName, String name, SlotConfigNamesResourceInner slotConfigNames);

    /**
     * Updates the names of application settings and connection string that remain with the slot during swap operation.
     *
     * <p>Description for Updates the names of application settings and connection string that remain with the slot
     * during swap operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotConfigNames Names of application settings and connection strings. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SlotConfigNamesResourceInner> updateSlotConfigurationNamesWithResponse(
        String resourceGroupName, String name, SlotConfigNamesResourceInner slotConfigNames, Context context);

    /**
     * Updates the names of application settings and connection string that remain with the slot during swap operation.
     *
     * <p>Description for Updates the names of application settings and connection string that remain with the slot
     * during swap operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotConfigNames Names of application settings and connection strings. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return slot Config names azure resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SlotConfigNamesResourceInner updateSlotConfigurationNames(
        String resourceGroupName, String name, SlotConfigNamesResourceInner slotConfigNames);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> getConfigurationWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> getConfigurationAsync(String resourceGroupName, String name);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> getConfigurationWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner getConfiguration(String resourceGroupName, String name);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> createOrUpdateConfigurationWithResponseAsync(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> createOrUpdateConfigurationAsync(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> createOrUpdateConfigurationWithResponse(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig, Context context);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner createOrUpdateConfiguration(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> updateConfigurationWithResponseAsync(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> updateConfigurationAsync(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> updateConfigurationWithResponse(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig, Context context);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner updateConfiguration(
        String resourceGroupName, String name, SiteConfigResourceInner siteConfig);

    /**
     * Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the
     * ID of the snapshot.
     *
     * <p>Description for Gets a list of web app configuration snapshots identifiers. Each element of the list contains
     * a timestamp and the ID of the snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of metadata for the app configuration snapshots that can be restored as paginated response
     *     with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteConfigurationSnapshotInfoInner> listConfigurationSnapshotInfoAsync(
        String resourceGroupName, String name);

    /**
     * Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the
     * ID of the snapshot.
     *
     * <p>Description for Gets a list of web app configuration snapshots identifiers. Each element of the list contains
     * a timestamp and the ID of the snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of metadata for the app configuration snapshots that can be restored as paginated response
     *     with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigurationSnapshotInfoInner> listConfigurationSnapshotInfo(
        String resourceGroupName, String name);

    /**
     * Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the
     * ID of the snapshot.
     *
     * <p>Description for Gets a list of web app configuration snapshots identifiers. Each element of the list contains
     * a timestamp and the ID of the snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of metadata for the app configuration snapshots that can be restored as paginated response
     *     with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigurationSnapshotInfoInner> listConfigurationSnapshotInfo(
        String resourceGroupName, String name, Context context);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> getConfigurationSnapshotWithResponseAsync(
        String resourceGroupName, String name, String snapshotId);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> getConfigurationSnapshotAsync(
        String resourceGroupName, String name, String snapshotId);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> getConfigurationSnapshotWithResponse(
        String resourceGroupName, String name, String snapshotId, Context context);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner getConfigurationSnapshot(String resourceGroupName, String name, String snapshotId);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> recoverSiteConfigurationSnapshotWithResponseAsync(
        String resourceGroupName, String name, String snapshotId);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> recoverSiteConfigurationSnapshotAsync(String resourceGroupName, String name, String snapshotId);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> recoverSiteConfigurationSnapshotWithResponse(
        String resourceGroupName, String name, String snapshotId, Context context);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 recoverSiteConfigurationSnapshot(String resourceGroupName, String name, String snapshotId);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getWebSiteContainerLogsWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getWebSiteContainerLogsAsync(String resourceGroupName, String name);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getWebSiteContainerLogsWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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)
    BinaryData getWebSiteContainerLogs(String resourceGroupName, String name);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getContainerLogsZipWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getContainerLogsZipAsync(String resourceGroupName, String name);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getContainerLogsZipWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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)
    BinaryData getContainerLogsZip(String resourceGroupName, String name);

    /**
     * List continuous web jobs for an app, or a deployment slot.
     *
     * <p>Description for List continuous web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ContinuousWebJobInner> listContinuousWebJobsAsync(String resourceGroupName, String name);

    /**
     * List continuous web jobs for an app, or a deployment slot.
     *
     * <p>Description for List continuous web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ContinuousWebJobInner> listContinuousWebJobs(String resourceGroupName, String name);

    /**
     * List continuous web jobs for an app, or a deployment slot.
     *
     * <p>Description for List continuous web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ContinuousWebJobInner> listContinuousWebJobs(String resourceGroupName, String name, Context context);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ContinuousWebJobInner>> getContinuousWebJobWithResponseAsync(
        String resourceGroupName, String name, String webJobName);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ContinuousWebJobInner> getContinuousWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ContinuousWebJobInner> getContinuousWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ContinuousWebJobInner getContinuousWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteContinuousWebJobWithResponseAsync(
        String resourceGroupName, String name, String webJobName);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteContinuousWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteContinuousWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteContinuousWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> startContinuousWebJobWithResponseAsync(
        String resourceGroupName, String name, String webJobName);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> startContinuousWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> startContinuousWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void startContinuousWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopContinuousWebJobWithResponseAsync(
        String resourceGroupName, String name, String webJobName);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopContinuousWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> stopContinuousWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void stopContinuousWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * List deployment statuses for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return deployment status collection ARM resource as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmDeploymentStatus> listProductionSiteDeploymentStatusesAsync(String resourceGroupName, String name);

    /**
     * List deployment statuses for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return deployment status collection ARM resource as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmDeploymentStatus> listProductionSiteDeploymentStatuses(String resourceGroupName, String name);

    /**
     * List deployment statuses for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return deployment status collection ARM resource as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmDeploymentStatus> listProductionSiteDeploymentStatuses(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified) along with {@link Response} on
     *     successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> getProductionSiteDeploymentStatusWithResponseAsync(
        String resourceGroupName, String name, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of the deployment status for an app (or deployment slot, if
     *     specified).
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<CsmDeploymentStatus>, CsmDeploymentStatus> beginGetProductionSiteDeploymentStatusAsync(
        String resourceGroupName, String name, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 the deployment status for an app (or deployment slot, if
     *     specified).
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<CsmDeploymentStatus>, CsmDeploymentStatus> beginGetProductionSiteDeploymentStatus(
        String resourceGroupName, String name, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param deploymentStatusId GUID of the deployment operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 the deployment status for an app (or deployment slot, if
     *     specified).
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<CsmDeploymentStatus>, CsmDeploymentStatus> beginGetProductionSiteDeploymentStatus(
        String resourceGroupName, String name, String deploymentStatusId, Context context);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified) on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmDeploymentStatus> getProductionSiteDeploymentStatusAsync(
        String resourceGroupName, String name, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified).
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmDeploymentStatus getProductionSiteDeploymentStatus(
        String resourceGroupName, String name, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param deploymentStatusId GUID of the deployment operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified).
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmDeploymentStatus getProductionSiteDeploymentStatus(
        String resourceGroupName, String name, String deploymentStatusId, Context context);

    /**
     * List deployments for an app, or a deployment slot.
     *
     * <p>Description for List deployments for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app deployments as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<DeploymentInner> listDeploymentsAsync(String resourceGroupName, String name);

    /**
     * List deployments for an app, or a deployment slot.
     *
     * <p>Description for List deployments for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app deployments as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<DeploymentInner> listDeployments(String resourceGroupName, String name);

    /**
     * List deployments for an app, or a deployment slot.
     *
     * <p>Description for List deployments for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app deployments as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<DeploymentInner> listDeployments(String resourceGroupName, String name, Context context);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<DeploymentInner>> getDeploymentWithResponseAsync(String resourceGroupName, String name, String id);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<DeploymentInner> getDeploymentAsync(String resourceGroupName, String name, String id);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<DeploymentInner> getDeploymentWithResponse(
        String resourceGroupName, String name, String id, Context context);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    DeploymentInner getDeployment(String resourceGroupName, String name, String id);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param deployment Deployment details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<DeploymentInner>> createDeploymentWithResponseAsync(
        String resourceGroupName, String name, String id, DeploymentInner deployment);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param deployment Deployment details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<DeploymentInner> createDeploymentAsync(
        String resourceGroupName, String name, String id, DeploymentInner deployment);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param deployment Deployment details.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<DeploymentInner> createDeploymentWithResponse(
        String resourceGroupName, String name, String id, DeploymentInner deployment, Context context);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param deployment Deployment details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    DeploymentInner createDeployment(String resourceGroupName, String name, String id, DeploymentInner deployment);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteDeploymentWithResponseAsync(String resourceGroupName, String name, String id);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteDeploymentAsync(String resourceGroupName, String name, String id);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteDeploymentWithResponse(String resourceGroupName, String name, String id, Context context);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteDeployment(String resourceGroupName, String name, String id);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<DeploymentInner>> listDeploymentLogWithResponseAsync(
        String resourceGroupName, String name, String id);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<DeploymentInner> listDeploymentLogAsync(String resourceGroupName, String name, String id);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<DeploymentInner> listDeploymentLogWithResponse(
        String resourceGroupName, String name, String id, Context context);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    DeploymentInner listDeploymentLog(String resourceGroupName, String name, String id);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RestoreRequestInner>> discoverBackupWithResponseAsync(
        String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RestoreRequestInner> discoverBackupAsync(String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RestoreRequestInner> discoverBackupWithResponse(
        String resourceGroupName, String name, RestoreRequestInner request, Context context);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RestoreRequestInner discoverBackup(String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Lists ownership identifiers for domain associated with web app.
     *
     * <p>Description for Lists ownership identifiers for domain associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of identifiers as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<IdentifierInner> listDomainOwnershipIdentifiersAsync(String resourceGroupName, String name);

    /**
     * Lists ownership identifiers for domain associated with web app.
     *
     * <p>Description for Lists ownership identifiers for domain associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of identifiers as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<IdentifierInner> listDomainOwnershipIdentifiers(String resourceGroupName, String name);

    /**
     * Lists ownership identifiers for domain associated with web app.
     *
     * <p>Description for Lists ownership identifiers for domain associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of identifiers as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<IdentifierInner> listDomainOwnershipIdentifiers(
        String resourceGroupName, String name, Context context);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<IdentifierInner>> getDomainOwnershipIdentifierWithResponseAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<IdentifierInner> getDomainOwnershipIdentifierAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<IdentifierInner> getDomainOwnershipIdentifierWithResponse(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, Context context);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    IdentifierInner getDomainOwnershipIdentifier(
        String resourceGroupName, String name, String domainOwnershipIdentifierName);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<IdentifierInner>> createOrUpdateDomainOwnershipIdentifierWithResponseAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<IdentifierInner> createOrUpdateDomainOwnershipIdentifierAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<IdentifierInner> createOrUpdateDomainOwnershipIdentifierWithResponse(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier,
        Context context);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    IdentifierInner createOrUpdateDomainOwnershipIdentifier(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteDomainOwnershipIdentifierWithResponseAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteDomainOwnershipIdentifierAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteDomainOwnershipIdentifierWithResponse(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, Context context);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteDomainOwnershipIdentifier(String resourceGroupName, String name, String domainOwnershipIdentifierName);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<IdentifierInner>> updateDomainOwnershipIdentifierWithResponseAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<IdentifierInner> updateDomainOwnershipIdentifierAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<IdentifierInner> updateDomainOwnershipIdentifierWithResponse(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier,
        Context context);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    IdentifierInner updateDomainOwnershipIdentifier(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployStatusInner>> getMSDeployStatusWithResponseAsync(String resourceGroupName, String name);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> getMSDeployStatusAsync(String resourceGroupName, String name);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployStatusInner> getMSDeployStatusWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner getMSDeployStatus(String resourceGroupName, String name);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createMSDeployOperationWithResponseAsync(
        String resourceGroupName, String name, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateMSDeployOperationAsync(
        String resourceGroupName, String name, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateMSDeployOperation(
        String resourceGroupName, String name, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateMSDeployOperation(
        String resourceGroupName, String name, MSDeploy mSDeploy, Context context);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> createMSDeployOperationAsync(String resourceGroupName, String name, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createMSDeployOperation(String resourceGroupName, String name, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createMSDeployOperation(
        String resourceGroupName, String name, MSDeploy mSDeploy, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployLogInner>> getMSDeployLogWithResponseAsync(String resourceGroupName, String name);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployLogInner> getMSDeployLogAsync(String resourceGroupName, String name);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployLogInner> getMSDeployLogWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployLogInner getMSDeployLog(String resourceGroupName, String name);

    /**
     * Invoke onedeploy status API /api/deployments and gets the deployment status for the site
     *
     * <p>Description for Invoke onedeploy status API /api/deployments and gets the deployment status for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Object>> getOneDeployStatusWithResponseAsync(String resourceGroupName, String name);

    /**
     * Invoke onedeploy status API /api/deployments and gets the deployment status for the site
     *
     * <p>Description for Invoke onedeploy status API /api/deployments and gets the deployment status for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> getOneDeployStatusAsync(String resourceGroupName, String name);

    /**
     * Invoke onedeploy status API /api/deployments and gets the deployment status for the site
     *
     * <p>Description for Invoke onedeploy status API /api/deployments and gets the deployment status for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Object> getOneDeployStatusWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Invoke onedeploy status API /api/deployments and gets the deployment status for the site
     *
     * <p>Description for Invoke onedeploy status API /api/deployments and gets the deployment status for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object getOneDeployStatus(String resourceGroupName, String name);

    /**
     * Invoke the OneDeploy publish web app extension.
     *
     * <p>Description for Invoke the OneDeploy publish web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Object>> createOneDeployOperationWithResponseAsync(String resourceGroupName, String name);

    /**
     * Invoke the OneDeploy publish web app extension.
     *
     * <p>Description for Invoke the OneDeploy publish web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> createOneDeployOperationAsync(String resourceGroupName, String name);

    /**
     * Invoke the OneDeploy publish web app extension.
     *
     * <p>Description for Invoke the OneDeploy publish web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Object> createOneDeployOperationWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Invoke the OneDeploy publish web app extension.
     *
     * <p>Description for Invoke the OneDeploy publish web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object createOneDeployOperation(String resourceGroupName, String name);

    /**
     * List the functions for a web site, or a deployment slot.
     *
     * <p>Description for List the functions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu function information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<FunctionEnvelopeInner> listFunctionsAsync(String resourceGroupName, String name);

    /**
     * List the functions for a web site, or a deployment slot.
     *
     * <p>Description for List the functions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu function information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<FunctionEnvelopeInner> listFunctions(String resourceGroupName, String name);

    /**
     * List the functions for a web site, or a deployment slot.
     *
     * <p>Description for List the functions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu function information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<FunctionEnvelopeInner> listFunctions(String resourceGroupName, String name, Context context);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<String>> getFunctionsAdminTokenWithResponseAsync(String resourceGroupName, String name);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<String> getFunctionsAdminTokenAsync(String resourceGroupName, String name);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<String> getFunctionsAdminTokenWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    String getFunctionsAdminToken(String resourceGroupName, String name);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<FunctionEnvelopeInner>> getFunctionWithResponseAsync(
        String resourceGroupName, String name, String functionName);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionEnvelopeInner> getFunctionAsync(String resourceGroupName, String name, String functionName);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<FunctionEnvelopeInner> getFunctionWithResponse(
        String resourceGroupName, String name, String functionName, Context context);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionEnvelopeInner getFunction(String resourceGroupName, String name, String functionName);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createFunctionWithResponseAsync(
        String resourceGroupName, String name, String functionName, FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of function information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<FunctionEnvelopeInner>, FunctionEnvelopeInner> beginCreateFunctionAsync(
        String resourceGroupName, String name, String functionName, FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 function information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<FunctionEnvelopeInner>, FunctionEnvelopeInner> beginCreateFunction(
        String resourceGroupName, String name, String functionName, FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param functionEnvelope Function details.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 function information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<FunctionEnvelopeInner>, FunctionEnvelopeInner> beginCreateFunction(
        String resourceGroupName,
        String name,
        String functionName,
        FunctionEnvelopeInner functionEnvelope,
        Context context);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionEnvelopeInner> createFunctionAsync(
        String resourceGroupName, String name, String functionName, FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionEnvelopeInner createFunction(
        String resourceGroupName, String name, String functionName, FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param functionEnvelope Function details.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionEnvelopeInner createFunction(
        String resourceGroupName,
        String name,
        String functionName,
        FunctionEnvelopeInner functionEnvelope,
        Context context);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteFunctionWithResponseAsync(String resourceGroupName, String name, String functionName);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteFunctionAsync(String resourceGroupName, String name, String functionName);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteFunctionWithResponse(
        String resourceGroupName, String name, String functionName, Context context);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteFunction(String resourceGroupName, String name, String functionName);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<KeyInfoInner>> createOrUpdateFunctionSecretWithResponseAsync(
        String resourceGroupName, String name, String functionName, String keyName, KeyInfoInner key);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<KeyInfoInner> createOrUpdateFunctionSecretAsync(
        String resourceGroupName, String name, String functionName, String keyName, KeyInfoInner key);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<KeyInfoInner> createOrUpdateFunctionSecretWithResponse(
        String resourceGroupName, String name, String functionName, String keyName, KeyInfoInner key, Context context);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    KeyInfoInner createOrUpdateFunctionSecret(
        String resourceGroupName, String name, String functionName, String keyName, KeyInfoInner key);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteFunctionSecretWithResponseAsync(
        String resourceGroupName, String name, String functionName, String keyName);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteFunctionSecretAsync(String resourceGroupName, String name, String functionName, String keyName);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteFunctionSecretWithResponse(
        String resourceGroupName, String name, String functionName, String keyName, Context context);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteFunctionSecret(String resourceGroupName, String name, String functionName, String keyName);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> listFunctionKeysWithResponseAsync(
        String resourceGroupName, String name, String functionName);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> listFunctionKeysAsync(String resourceGroupName, String name, String functionName);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> listFunctionKeysWithResponse(
        String resourceGroupName, String name, String functionName, Context context);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner listFunctionKeys(String resourceGroupName, String name, String functionName);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<FunctionSecretsInner>> listFunctionSecretsWithResponseAsync(
        String resourceGroupName, String name, String functionName);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionSecretsInner> listFunctionSecretsAsync(String resourceGroupName, String name, String functionName);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<FunctionSecretsInner> listFunctionSecretsWithResponse(
        String resourceGroupName, String name, String functionName, Context context);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionSecretsInner listFunctionSecrets(String resourceGroupName, String name, String functionName);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HostKeysInner>> listHostKeysWithResponseAsync(String resourceGroupName, String name);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HostKeysInner> listHostKeysAsync(String resourceGroupName, String name);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HostKeysInner> listHostKeysWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HostKeysInner listHostKeys(String resourceGroupName, String name);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> listSyncStatusWithResponseAsync(String resourceGroupName, String name);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> listSyncStatusAsync(String resourceGroupName, String name);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> listSyncStatusWithResponse(String resourceGroupName, String name, Context context);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 listSyncStatus(String resourceGroupName, String name);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> syncFunctionsWithResponseAsync(String resourceGroupName, String name);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> syncFunctionsAsync(String resourceGroupName, String name);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> syncFunctionsWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 syncFunctions(String resourceGroupName, String name);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<KeyInfoInner>> createOrUpdateHostSecretWithResponseAsync(
        String resourceGroupName, String name, String keyType, String keyName, KeyInfoInner key);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<KeyInfoInner> createOrUpdateHostSecretAsync(
        String resourceGroupName, String name, String keyType, String keyName, KeyInfoInner key);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<KeyInfoInner> createOrUpdateHostSecretWithResponse(
        String resourceGroupName, String name, String keyType, String keyName, KeyInfoInner key, Context context);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    KeyInfoInner createOrUpdateHostSecret(
        String resourceGroupName, String name, String keyType, String keyName, KeyInfoInner key);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteHostSecretWithResponseAsync(
        String resourceGroupName, String name, String keyType, String keyName);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteHostSecretAsync(String resourceGroupName, String name, String keyType, String keyName);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteHostSecretWithResponse(
        String resourceGroupName, String name, String keyType, String keyName, Context context);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteHostSecret(String resourceGroupName, String name, String keyType, String keyName);

    /**
     * Get hostname bindings for an app or a deployment slot.
     *
     * <p>Description for Get hostname bindings for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of hostname bindings as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<HostnameBindingInner> listHostnameBindingsAsync(String resourceGroupName, String name);

    /**
     * Get hostname bindings for an app or a deployment slot.
     *
     * <p>Description for Get hostname bindings for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of hostname bindings as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<HostnameBindingInner> listHostnameBindings(String resourceGroupName, String name);

    /**
     * Get hostname bindings for an app or a deployment slot.
     *
     * <p>Description for Get hostname bindings for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of hostname bindings as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<HostnameBindingInner> listHostnameBindings(String resourceGroupName, String name, Context context);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HostnameBindingInner>> getHostnameBindingWithResponseAsync(
        String resourceGroupName, String name, String hostname);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HostnameBindingInner> getHostnameBindingAsync(String resourceGroupName, String name, String hostname);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HostnameBindingInner> getHostnameBindingWithResponse(
        String resourceGroupName, String name, String hostname, Context context);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HostnameBindingInner getHostnameBinding(String resourceGroupName, String name, String hostname);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HostnameBindingInner>> createOrUpdateHostnameBindingWithResponseAsync(
        String resourceGroupName, String name, String hostname, HostnameBindingInner hostnameBinding);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HostnameBindingInner> createOrUpdateHostnameBindingAsync(
        String resourceGroupName, String name, String hostname, HostnameBindingInner hostnameBinding);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HostnameBindingInner> createOrUpdateHostnameBindingWithResponse(
        String resourceGroupName, String name, String hostname, HostnameBindingInner hostnameBinding, Context context);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HostnameBindingInner createOrUpdateHostnameBinding(
        String resourceGroupName, String name, String hostname, HostnameBindingInner hostnameBinding);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteHostnameBindingWithResponseAsync(String resourceGroupName, String name, String hostname);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteHostnameBindingAsync(String resourceGroupName, String name, String hostname);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteHostnameBindingWithResponse(
        String resourceGroupName, String name, String hostname, Context context);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteHostnameBinding(String resourceGroupName, String name, String hostname);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> getHybridConnectionWithResponseAsync(
        String resourceGroupName, String name, String namespaceName, String relayName);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> getHybridConnectionAsync(
        String resourceGroupName, String name, String namespaceName, String relayName);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> getHybridConnectionWithResponse(
        String resourceGroupName, String name, String namespaceName, String relayName, Context context);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner getHybridConnection(
        String resourceGroupName, String name, String namespaceName, String relayName);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> createOrUpdateHybridConnectionWithResponseAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> createOrUpdateHybridConnectionAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> createOrUpdateHybridConnectionWithResponse(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope,
        Context context);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner createOrUpdateHybridConnection(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteHybridConnectionWithResponseAsync(
        String resourceGroupName, String name, String namespaceName, String relayName);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteHybridConnectionAsync(
        String resourceGroupName, String name, String namespaceName, String relayName);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteHybridConnectionWithResponse(
        String resourceGroupName, String name, String namespaceName, String relayName, Context context);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteHybridConnection(String resourceGroupName, String name, String namespaceName, String relayName);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> updateHybridConnectionWithResponseAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> updateHybridConnectionAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> updateHybridConnectionWithResponse(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope,
        Context context);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner updateHybridConnection(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        HybridConnectionInner connectionEnvelope);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> listHybridConnectionsWithResponseAsync(String resourceGroupName, String name);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> listHybridConnectionsAsync(String resourceGroupName, String name);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> listHybridConnectionsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner listHybridConnections(String resourceGroupName, String name);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> listRelayServiceConnectionsWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> listRelayServiceConnectionsAsync(String resourceGroupName, String name);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> listRelayServiceConnectionsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner listRelayServiceConnections(String resourceGroupName, String name);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> getRelayServiceConnectionWithResponseAsync(
        String resourceGroupName, String name, String entityName);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> getRelayServiceConnectionAsync(
        String resourceGroupName, String name, String entityName);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> getRelayServiceConnectionWithResponse(
        String resourceGroupName, String name, String entityName, Context context);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner getRelayServiceConnection(
        String resourceGroupName, String name, String entityName);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> createOrUpdateRelayServiceConnectionWithResponseAsync(
        String resourceGroupName, String name, String entityName, RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> createOrUpdateRelayServiceConnectionAsync(
        String resourceGroupName, String name, String entityName, RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> createOrUpdateRelayServiceConnectionWithResponse(
        String resourceGroupName,
        String name,
        String entityName,
        RelayServiceConnectionEntityInner connectionEnvelope,
        Context context);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner createOrUpdateRelayServiceConnection(
        String resourceGroupName, String name, String entityName, RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteRelayServiceConnectionWithResponseAsync(
        String resourceGroupName, String name, String entityName);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteRelayServiceConnectionAsync(String resourceGroupName, String name, String entityName);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteRelayServiceConnectionWithResponse(
        String resourceGroupName, String name, String entityName, Context context);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteRelayServiceConnection(String resourceGroupName, String name, String entityName);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> updateRelayServiceConnectionWithResponseAsync(
        String resourceGroupName, String name, String entityName, RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> updateRelayServiceConnectionAsync(
        String resourceGroupName, String name, String entityName, RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> updateRelayServiceConnectionWithResponse(
        String resourceGroupName,
        String name,
        String entityName,
        RelayServiceConnectionEntityInner connectionEnvelope,
        Context context);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner updateRelayServiceConnection(
        String resourceGroupName, String name, String entityName, RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app instances as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<WebSiteInstanceStatusInner> listInstanceIdentifiersAsync(String resourceGroupName, String name);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app instances as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebSiteInstanceStatusInner> listInstanceIdentifiers(String resourceGroupName, String name);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app instances as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebSiteInstanceStatusInner> listInstanceIdentifiers(
        String resourceGroupName, String name, Context context);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WebSiteInstanceStatusInner>> getInstanceInfoWithResponseAsync(
        String resourceGroupName, String name, String instanceId);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WebSiteInstanceStatusInner> getInstanceInfoAsync(String resourceGroupName, String name, String instanceId);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WebSiteInstanceStatusInner> getInstanceInfoWithResponse(
        String resourceGroupName, String name, String instanceId, Context context);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    WebSiteInstanceStatusInner getInstanceInfo(String resourceGroupName, String name, String instanceId);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployStatusInner>> getInstanceMsDeployStatusWithResponseAsync(
        String resourceGroupName, String name, String instanceId);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> getInstanceMsDeployStatusAsync(String resourceGroupName, String name, String instanceId);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployStatusInner> getInstanceMsDeployStatusWithResponse(
        String resourceGroupName, String name, String instanceId, Context context);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner getInstanceMsDeployStatus(String resourceGroupName, String name, String instanceId);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createInstanceMSDeployOperationWithResponseAsync(
        String resourceGroupName, String name, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateInstanceMSDeployOperationAsync(
        String resourceGroupName, String name, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateInstanceMSDeployOperation(
        String resourceGroupName, String name, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateInstanceMSDeployOperation(
        String resourceGroupName, String name, String instanceId, MSDeploy mSDeploy, Context context);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> createInstanceMSDeployOperationAsync(
        String resourceGroupName, String name, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createInstanceMSDeployOperation(
        String resourceGroupName, String name, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createInstanceMSDeployOperation(
        String resourceGroupName, String name, String instanceId, MSDeploy mSDeploy, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployLogInner>> getInstanceMSDeployLogWithResponseAsync(
        String resourceGroupName, String name, String instanceId);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployLogInner> getInstanceMSDeployLogAsync(String resourceGroupName, String name, String instanceId);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployLogInner> getInstanceMSDeployLogWithResponse(
        String resourceGroupName, String name, String instanceId, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployLogInner getInstanceMSDeployLog(String resourceGroupName, String name, String instanceId);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessInfoInner> listInstanceProcessesAsync(String resourceGroupName, String name, String instanceId);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listInstanceProcesses(String resourceGroupName, String name, String instanceId);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listInstanceProcesses(
        String resourceGroupName, String name, String instanceId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessInfoInner>> getInstanceProcessWithResponseAsync(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessInfoInner> getInstanceProcessAsync(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessInfoInner> getInstanceProcessWithResponse(
        String resourceGroupName, String name, String processId, String instanceId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessInfoInner getInstanceProcess(String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteInstanceProcessWithResponseAsync(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteInstanceProcessAsync(String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteInstanceProcessWithResponse(
        String resourceGroupName, String name, String processId, String instanceId, Context context);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteInstanceProcess(String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getInstanceProcessDumpWithResponseAsync(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getInstanceProcessDumpAsync(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getInstanceProcessDumpWithResponse(
        String resourceGroupName, String name, String processId, String instanceId, Context context);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BinaryData getInstanceProcessDump(String resourceGroupName, String name, String processId, String instanceId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessModuleInfoInner> listInstanceProcessModulesAsync(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listInstanceProcessModules(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listInstanceProcessModules(
        String resourceGroupName, String name, String processId, String instanceId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessModuleInfoInner>> getInstanceProcessModuleWithResponseAsync(
        String resourceGroupName, String name, String processId, String baseAddress, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessModuleInfoInner> getInstanceProcessModuleAsync(
        String resourceGroupName, String name, String processId, String baseAddress, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessModuleInfoInner> getInstanceProcessModuleWithResponse(
        String resourceGroupName,
        String name,
        String processId,
        String baseAddress,
        String instanceId,
        Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessModuleInfoInner getInstanceProcessModule(
        String resourceGroupName, String name, String processId, String baseAddress, String instanceId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessThreadInfoInner> listInstanceProcessThreadsAsync(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listInstanceProcessThreads(
        String resourceGroupName, String name, String processId, String instanceId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listInstanceProcessThreads(
        String resourceGroupName, String name, String processId, String instanceId, Context context);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteCloneabilityInner>> isCloneableWithResponseAsync(String resourceGroupName, String name);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteCloneabilityInner> isCloneableAsync(String resourceGroupName, String name);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteCloneabilityInner> isCloneableWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteCloneabilityInner isCloneable(String resourceGroupName, String name);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<BackupItemInner> listSiteBackupsAsync(String resourceGroupName, String name);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listSiteBackups(String resourceGroupName, String name);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listSiteBackups(String resourceGroupName, String name, Context context);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<FunctionSecretsInner>> listSyncFunctionTriggersWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionSecretsInner> listSyncFunctionTriggersAsync(String resourceGroupName, String name);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<FunctionSecretsInner> listSyncFunctionTriggersWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionSecretsInner listSyncFunctionTriggers(String resourceGroupName, String name);

    /**
     * Restores a web app.
     *
     * <p>Description for Restores a web app.
     *
     * @param subscriptionName Azure subscription.
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationOptions Migration migrationOptions.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for a migration of app content request along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> migrateStorageWithResponseAsync(
        String subscriptionName, String resourceGroupName, String name, StorageMigrationOptions migrationOptions);

    /**
     * Restores a web app.
     *
     * <p>Description for Restores a web app.
     *
     * @param subscriptionName Azure subscription.
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationOptions Migration migrationOptions.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of response for a migration of app content request.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<StorageMigrationResponseInner>, StorageMigrationResponseInner> beginMigrateStorageAsync(
        String subscriptionName, String resourceGroupName, String name, StorageMigrationOptions migrationOptions);

    /**
     * Restores a web app.
     *
     * <p>Description for Restores a web app.
     *
     * @param subscriptionName Azure subscription.
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationOptions Migration migrationOptions.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 response for a migration of app content request.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<StorageMigrationResponseInner>, StorageMigrationResponseInner> beginMigrateStorage(
        String subscriptionName, String resourceGroupName, String name, StorageMigrationOptions migrationOptions);

    /**
     * Restores a web app.
     *
     * <p>Description for Restores a web app.
     *
     * @param subscriptionName Azure subscription.
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationOptions Migration migrationOptions.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 response for a migration of app content request.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<StorageMigrationResponseInner>, StorageMigrationResponseInner> beginMigrateStorage(
        String subscriptionName,
        String resourceGroupName,
        String name,
        StorageMigrationOptions migrationOptions,
        Context context);

    /**
     * Restores a web app.
     *
     * <p>Description for Restores a web app.
     *
     * @param subscriptionName Azure subscription.
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationOptions Migration migrationOptions.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for a migration of app content request on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StorageMigrationResponseInner> migrateStorageAsync(
        String subscriptionName, String resourceGroupName, String name, StorageMigrationOptions migrationOptions);

    /**
     * Restores a web app.
     *
     * <p>Description for Restores a web app.
     *
     * @param subscriptionName Azure subscription.
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationOptions Migration migrationOptions.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for a migration of app content request.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StorageMigrationResponseInner migrateStorage(
        String subscriptionName, String resourceGroupName, String name, StorageMigrationOptions migrationOptions);

    /**
     * Restores a web app.
     *
     * <p>Description for Restores a web app.
     *
     * @param subscriptionName Azure subscription.
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationOptions Migration migrationOptions.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return response for a migration of app content request.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StorageMigrationResponseInner migrateStorage(
        String subscriptionName,
        String resourceGroupName,
        String name,
        StorageMigrationOptions migrationOptions,
        Context context);

    /**
     * Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * <p>Description for Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationRequestEnvelope MySql migration options.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return an operation on a resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> migrateMySqlWithResponseAsync(
        String resourceGroupName, String name, MigrateMySqlRequest migrationRequestEnvelope);

    /**
     * Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * <p>Description for Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationRequestEnvelope MySql migration options.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of an operation on a resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<OperationInner>, OperationInner> beginMigrateMySqlAsync(
        String resourceGroupName, String name, MigrateMySqlRequest migrationRequestEnvelope);

    /**
     * Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * <p>Description for Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationRequestEnvelope MySql migration options.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 an operation on a resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<OperationInner>, OperationInner> beginMigrateMySql(
        String resourceGroupName, String name, MigrateMySqlRequest migrationRequestEnvelope);

    /**
     * Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * <p>Description for Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationRequestEnvelope MySql migration options.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 an operation on a resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<OperationInner>, OperationInner> beginMigrateMySql(
        String resourceGroupName, String name, MigrateMySqlRequest migrationRequestEnvelope, Context context);

    /**
     * Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * <p>Description for Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationRequestEnvelope MySql migration options.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return an operation on a resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<OperationInner> migrateMySqlAsync(
        String resourceGroupName, String name, MigrateMySqlRequest migrationRequestEnvelope);

    /**
     * Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * <p>Description for Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationRequestEnvelope MySql migration options.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return an operation on a resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    OperationInner migrateMySql(String resourceGroupName, String name, MigrateMySqlRequest migrationRequestEnvelope);

    /**
     * Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * <p>Description for Migrates a local (in-app) MySql database to a remote MySql database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param migrationRequestEnvelope MySql migration options.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return an operation on a resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    OperationInner migrateMySql(
        String resourceGroupName, String name, MigrateMySqlRequest migrationRequestEnvelope, Context context);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MigrateMySqlStatusInner>> getMigrateMySqlStatusWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MigrateMySqlStatusInner> getMigrateMySqlStatusAsync(String resourceGroupName, String name);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MigrateMySqlStatusInner> getMigrateMySqlStatusWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MigrateMySqlStatusInner getMigrateMySqlStatus(String resourceGroupName, String name);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SwiftVirtualNetworkInner>> getSwiftVirtualNetworkConnectionWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SwiftVirtualNetworkInner> getSwiftVirtualNetworkConnectionAsync(String resourceGroupName, String name);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SwiftVirtualNetworkInner> getSwiftVirtualNetworkConnectionWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SwiftVirtualNetworkInner getSwiftVirtualNetworkConnection(String resourceGroupName, String name);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SwiftVirtualNetworkInner>> createOrUpdateSwiftVirtualNetworkConnectionWithCheckWithResponseAsync(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SwiftVirtualNetworkInner> createOrUpdateSwiftVirtualNetworkConnectionWithCheckAsync(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SwiftVirtualNetworkInner> createOrUpdateSwiftVirtualNetworkConnectionWithCheckWithResponse(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope, Context context);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SwiftVirtualNetworkInner createOrUpdateSwiftVirtualNetworkConnectionWithCheck(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteSwiftVirtualNetworkWithResponseAsync(String resourceGroupName, String name);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteSwiftVirtualNetworkAsync(String resourceGroupName, String name);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteSwiftVirtualNetworkWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteSwiftVirtualNetwork(String resourceGroupName, String name);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SwiftVirtualNetworkInner>> updateSwiftVirtualNetworkConnectionWithCheckWithResponseAsync(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SwiftVirtualNetworkInner> updateSwiftVirtualNetworkConnectionWithCheckAsync(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SwiftVirtualNetworkInner> updateSwiftVirtualNetworkConnectionWithCheckWithResponse(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope, Context context);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SwiftVirtualNetworkInner updateSwiftVirtualNetworkConnectionWithCheck(
        String resourceGroupName, String name, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections) along with
     *     {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<NetworkFeaturesInner>> listNetworkFeaturesWithResponseAsync(
        String resourceGroupName, String name, String view);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections) on
     *     successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<NetworkFeaturesInner> listNetworkFeaturesAsync(String resourceGroupName, String name, String view);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections) along with
     *     {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<NetworkFeaturesInner> listNetworkFeaturesWithResponse(
        String resourceGroupName, String name, String view, Context context);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections).
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    NetworkFeaturesInner listNetworkFeatures(String resourceGroupName, String name, String view);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Object>> getNetworkTraceOperationWithResponseAsync(
        String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> getNetworkTraceOperationAsync(String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Object> getNetworkTraceOperationWithResponse(
        String resourceGroupName, String name, String operationId, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object getNetworkTraceOperation(String resourceGroupName, String name, String operationId);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<String>> startWebSiteNetworkTraceWithResponseAsync(
        String resourceGroupName, String name, Integer durationInSeconds, Integer maxFrameLength, String sasUrl);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<String> startWebSiteNetworkTraceAsync(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<String> startWebSiteNetworkTraceWithResponse(
        String resourceGroupName,
        String name,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    String startWebSiteNetworkTrace(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> startWebSiteNetworkTraceOperationWithResponseAsync(
        String resourceGroupName, String name, Integer durationInSeconds, Integer maxFrameLength, String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperationAsync(
        String resourceGroupName, String name, Integer durationInSeconds, Integer maxFrameLength, String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperationAsync(
        String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperation(
        String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperation(
        String resourceGroupName,
        String name,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startWebSiteNetworkTraceOperationAsync(
        String resourceGroupName, String name, Integer durationInSeconds, Integer maxFrameLength, String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startWebSiteNetworkTraceOperationAsync(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startWebSiteNetworkTraceOperation(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startWebSiteNetworkTraceOperation(
        String resourceGroupName,
        String name,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopWebSiteNetworkTraceWithResponseAsync(String resourceGroupName, String name);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopWebSiteNetworkTraceAsync(String resourceGroupName, String name);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> stopWebSiteNetworkTraceWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 stopWebSiteNetworkTrace(String resourceGroupName, String name);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<List<NetworkTraceInner>>> getNetworkTracesWithResponseAsync(
        String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<List<NetworkTraceInner>> getNetworkTracesAsync(String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<List<NetworkTraceInner>> getNetworkTracesWithResponse(
        String resourceGroupName, String name, String operationId, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    List<NetworkTraceInner> getNetworkTraces(String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Object>> getNetworkTraceOperationV2WithResponseAsync(
        String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> getNetworkTraceOperationV2Async(String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Object> getNetworkTraceOperationV2WithResponse(
        String resourceGroupName, String name, String operationId, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object getNetworkTraceOperationV2(String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<List<NetworkTraceInner>>> getNetworkTracesV2WithResponseAsync(
        String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<List<NetworkTraceInner>> getNetworkTracesV2Async(String resourceGroupName, String name, String operationId);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<List<NetworkTraceInner>> getNetworkTracesV2WithResponse(
        String resourceGroupName, String name, String operationId, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    List<NetworkTraceInner> getNetworkTracesV2(String resourceGroupName, String name, String operationId);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> generateNewSitePublishingPasswordWithResponseAsync(String resourceGroupName, String name);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> generateNewSitePublishingPasswordAsync(String resourceGroupName, String name);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> generateNewSitePublishingPasswordWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 generateNewSitePublishingPassword(String resourceGroupName, String name);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param filter Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
     *     $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq
     *     duration'[Hour|Minute|Day]'.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<PerfMonResponseInner> listPerfMonCountersAsync(String resourceGroupName, String name, String filter);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<PerfMonResponseInner> listPerfMonCountersAsync(String resourceGroupName, String name);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PerfMonResponseInner> listPerfMonCounters(String resourceGroupName, String name);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param filter Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
     *     $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq
     *     duration'[Hour|Minute|Day]'.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PerfMonResponseInner> listPerfMonCounters(
        String resourceGroupName, String name, String filter, Context context);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SitePhpErrorLogFlagInner>> getSitePhpErrorLogFlagWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SitePhpErrorLogFlagInner> getSitePhpErrorLogFlagAsync(String resourceGroupName, String name);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SitePhpErrorLogFlagInner> getSitePhpErrorLogFlagWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SitePhpErrorLogFlagInner getSitePhpErrorLogFlag(String resourceGroupName, String name);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> listPremierAddOnsWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> listPremierAddOnsAsync(String resourceGroupName, String name);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> listPremierAddOnsWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner listPremierAddOns(String resourceGroupName, String name);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> getPremierAddOnWithResponseAsync(
        String resourceGroupName, String name, String premierAddOnName);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> getPremierAddOnAsync(String resourceGroupName, String name, String premierAddOnName);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> getPremierAddOnWithResponse(
        String resourceGroupName, String name, String premierAddOnName, Context context);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner getPremierAddOn(String resourceGroupName, String name, String premierAddOnName);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> addPremierAddOnWithResponseAsync(
        String resourceGroupName, String name, String premierAddOnName, PremierAddOnInner premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> addPremierAddOnAsync(
        String resourceGroupName, String name, String premierAddOnName, PremierAddOnInner premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> addPremierAddOnWithResponse(
        String resourceGroupName,
        String name,
        String premierAddOnName,
        PremierAddOnInner premierAddOn,
        Context context);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner addPremierAddOn(
        String resourceGroupName, String name, String premierAddOnName, PremierAddOnInner premierAddOn);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deletePremierAddOnWithResponseAsync(
        String resourceGroupName, String name, String premierAddOnName);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deletePremierAddOnAsync(String resourceGroupName, String name, String premierAddOnName);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deletePremierAddOnWithResponse(
        String resourceGroupName, String name, String premierAddOnName, Context context);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deletePremierAddOn(String resourceGroupName, String name, String premierAddOnName);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> updatePremierAddOnWithResponseAsync(
        String resourceGroupName, String name, String premierAddOnName, PremierAddOnPatchResource premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> updatePremierAddOnAsync(
        String resourceGroupName, String name, String premierAddOnName, PremierAddOnPatchResource premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> updatePremierAddOnWithResponse(
        String resourceGroupName,
        String name,
        String premierAddOnName,
        PremierAddOnPatchResource premierAddOn,
        Context context);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner updatePremierAddOn(
        String resourceGroupName, String name, String premierAddOnName, PremierAddOnPatchResource premierAddOn);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response} on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PrivateAccessInner>> getPrivateAccessWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PrivateAccessInner> getPrivateAccessAsync(String resourceGroupName, String name);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PrivateAccessInner> getPrivateAccessWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PrivateAccessInner getPrivateAccess(String resourceGroupName, String name);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param access The information for the private access.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response} on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PrivateAccessInner>> putPrivateAccessVnetWithResponseAsync(
        String resourceGroupName, String name, PrivateAccessInner access);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param access The information for the private access.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PrivateAccessInner> putPrivateAccessVnetAsync(
        String resourceGroupName, String name, PrivateAccessInner access);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param access The information for the private access.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PrivateAccessInner> putPrivateAccessVnetWithResponse(
        String resourceGroupName, String name, PrivateAccessInner access, Context context);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param access The information for the private access.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PrivateAccessInner putPrivateAccessVnet(String resourceGroupName, String name, PrivateAccessInner access);

    /**
     * Gets the list of private endpoint connections associated with a site
     *
     * <p>Description for Gets the list of private endpoint connections associated with a site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionListAsync(
        String resourceGroupName, String name);

    /**
     * Gets the list of private endpoint connections associated with a site
     *
     * <p>Description for Gets the list of private endpoint connections associated with a site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionList(
        String resourceGroupName, String name);

    /**
     * Gets the list of private endpoint connections associated with a site
     *
     * <p>Description for Gets the list of private endpoint connections associated with a site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionList(
        String resourceGroupName, String name, Context context);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RemotePrivateEndpointConnectionArmResourceInner>> getPrivateEndpointConnectionWithResponseAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionWithResponse(
        String resourceGroupName, String name, String privateEndpointConnectionName, Context context);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RemotePrivateEndpointConnectionArmResourceInner getPrivateEndpointConnection(
        String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> approveOrRejectPrivateEndpointConnectionWithResponseAsync(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<
            PollResult<RemotePrivateEndpointConnectionArmResourceInner>,
            RemotePrivateEndpointConnectionArmResourceInner>
        beginApproveOrRejectPrivateEndpointConnectionAsync(
            String resourceGroupName,
            String name,
            String privateEndpointConnectionName,
            PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<
            PollResult<RemotePrivateEndpointConnectionArmResourceInner>,
            RemotePrivateEndpointConnectionArmResourceInner>
        beginApproveOrRejectPrivateEndpointConnection(
            String resourceGroupName,
            String name,
            String privateEndpointConnectionName,
            PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<
            PollResult<RemotePrivateEndpointConnectionArmResourceInner>,
            RemotePrivateEndpointConnectionArmResourceInner>
        beginApproveOrRejectPrivateEndpointConnection(
            String resourceGroupName,
            String name,
            String privateEndpointConnectionName,
            PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper,
            Context context);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RemotePrivateEndpointConnectionArmResourceInner> approveOrRejectPrivateEndpointConnectionAsync(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RemotePrivateEndpointConnectionArmResourceInner approveOrRejectPrivateEndpointConnection(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RemotePrivateEndpointConnectionArmResourceInner approveOrRejectPrivateEndpointConnection(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper,
        Context context);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> deletePrivateEndpointConnectionWithResponseAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of any object.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginDeletePrivateEndpointConnectionAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 any object.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginDeletePrivateEndpointConnection(
        String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 any object.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginDeletePrivateEndpointConnection(
        String resourceGroupName, String name, String privateEndpointConnectionName, Context context);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> deletePrivateEndpointConnectionAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object deletePrivateEndpointConnection(String resourceGroupName, String name, String privateEndpointConnectionName);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object deletePrivateEndpointConnection(
        String resourceGroupName, String name, String privateEndpointConnectionName, Context context);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources along with {@link Response} on successful completion
     *     of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PrivateLinkResourcesWrapperInner>> getPrivateLinkResourcesWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PrivateLinkResourcesWrapperInner> getPrivateLinkResourcesAsync(String resourceGroupName, String name);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PrivateLinkResourcesWrapperInner> getPrivateLinkResourcesWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PrivateLinkResourcesWrapperInner getPrivateLinkResources(String resourceGroupName, String name);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessInfoInner> listProcessesAsync(String resourceGroupName, String name);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listProcesses(String resourceGroupName, String name);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listProcesses(String resourceGroupName, String name, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessInfoInner>> getProcessWithResponseAsync(
        String resourceGroupName, String name, String processId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessInfoInner> getProcessAsync(String resourceGroupName, String name, String processId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessInfoInner> getProcessWithResponse(
        String resourceGroupName, String name, String processId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessInfoInner getProcess(String resourceGroupName, String name, String processId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteProcessWithResponseAsync(String resourceGroupName, String name, String processId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteProcessAsync(String resourceGroupName, String name, String processId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteProcessWithResponse(String resourceGroupName, String name, String processId, Context context);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteProcess(String resourceGroupName, String name, String processId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getProcessDumpWithResponseAsync(String resourceGroupName, String name, String processId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getProcessDumpAsync(String resourceGroupName, String name, String processId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getProcessDumpWithResponse(
        String resourceGroupName, String name, String processId, Context context);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BinaryData getProcessDump(String resourceGroupName, String name, String processId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessModuleInfoInner> listProcessModulesAsync(String resourceGroupName, String name, String processId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listProcessModules(String resourceGroupName, String name, String processId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listProcessModules(
        String resourceGroupName, String name, String processId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessModuleInfoInner>> getProcessModuleWithResponseAsync(
        String resourceGroupName, String name, String processId, String baseAddress);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessModuleInfoInner> getProcessModuleAsync(
        String resourceGroupName, String name, String processId, String baseAddress);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessModuleInfoInner> getProcessModuleWithResponse(
        String resourceGroupName, String name, String processId, String baseAddress, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessModuleInfoInner getProcessModule(
        String resourceGroupName, String name, String processId, String baseAddress);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessThreadInfoInner> listProcessThreadsAsync(String resourceGroupName, String name, String processId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listProcessThreads(String resourceGroupName, String name, String processId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listProcessThreads(
        String resourceGroupName, String name, String processId, Context context);

    /**
     * Get public certificates for an app or a deployment slot.
     *
     * <p>Description for Get public certificates for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of public certificates as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<PublicCertificateInner> listPublicCertificatesAsync(String resourceGroupName, String name);

    /**
     * Get public certificates for an app or a deployment slot.
     *
     * <p>Description for Get public certificates for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of public certificates as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PublicCertificateInner> listPublicCertificates(String resourceGroupName, String name);

    /**
     * Get public certificates for an app or a deployment slot.
     *
     * <p>Description for Get public certificates for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of public certificates as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PublicCertificateInner> listPublicCertificates(
        String resourceGroupName, String name, Context context);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PublicCertificateInner>> getPublicCertificateWithResponseAsync(
        String resourceGroupName, String name, String publicCertificateName);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PublicCertificateInner> getPublicCertificateAsync(
        String resourceGroupName, String name, String publicCertificateName);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PublicCertificateInner> getPublicCertificateWithResponse(
        String resourceGroupName, String name, String publicCertificateName, Context context);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PublicCertificateInner getPublicCertificate(String resourceGroupName, String name, String publicCertificateName);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PublicCertificateInner>> createOrUpdatePublicCertificateWithResponseAsync(
        String resourceGroupName, String name, String publicCertificateName, PublicCertificateInner publicCertificate);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PublicCertificateInner> createOrUpdatePublicCertificateAsync(
        String resourceGroupName, String name, String publicCertificateName, PublicCertificateInner publicCertificate);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PublicCertificateInner> createOrUpdatePublicCertificateWithResponse(
        String resourceGroupName,
        String name,
        String publicCertificateName,
        PublicCertificateInner publicCertificate,
        Context context);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PublicCertificateInner createOrUpdatePublicCertificate(
        String resourceGroupName, String name, String publicCertificateName, PublicCertificateInner publicCertificate);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deletePublicCertificateWithResponseAsync(
        String resourceGroupName, String name, String publicCertificateName);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deletePublicCertificateAsync(String resourceGroupName, String name, String publicCertificateName);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deletePublicCertificateWithResponse(
        String resourceGroupName, String name, String publicCertificateName, Context context);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deletePublicCertificate(String resourceGroupName, String name, String publicCertificateName);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> listPublishingProfileXmlWithSecretsWithResponseAsync(
        String resourceGroupName, String name, CsmPublishingProfileOptions publishingProfileOptions);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> listPublishingProfileXmlWithSecretsAsync(
        String resourceGroupName, String name, CsmPublishingProfileOptions publishingProfileOptions);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> listPublishingProfileXmlWithSecretsWithResponse(
        String resourceGroupName, String name, CsmPublishingProfileOptions publishingProfileOptions, Context context);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    BinaryData listPublishingProfileXmlWithSecrets(
        String resourceGroupName, String name, CsmPublishingProfileOptions publishingProfileOptions);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> resetProductionSlotConfigWithResponseAsync(String resourceGroupName, String name);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> resetProductionSlotConfigAsync(String resourceGroupName, String name);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> resetProductionSlotConfigWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 resetProductionSlotConfig(String resourceGroupName, String name);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param softRestart Specify true to apply the configuration settings and restarts the app only if necessary. By
     *     default, the API always restarts and reprovisions the app.
     * @param synchronous Specify true to block until the app is restarted. By default, it is set to false, and the API
     *     responds immediately (asynchronous).
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> restartWithResponseAsync(
        String resourceGroupName, String name, Boolean softRestart, Boolean synchronous);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restartAsync(String resourceGroupName, String name);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param softRestart Specify true to apply the configuration settings and restarts the app only if necessary. By
     *     default, the API always restarts and reprovisions the app.
     * @param synchronous Specify true to block until the app is restarted. By default, it is set to false, and the API
     *     responds immediately (asynchronous).
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> restartWithResponse(
        String resourceGroupName, String name, Boolean softRestart, Boolean synchronous, Context context);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restart(String resourceGroupName, String name);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreFromBackupBlobWithResponseAsync(
        String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreFromBackupBlobAsync(
        String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromBackupBlob(
        String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromBackupBlob(
        String resourceGroupName, String name, RestoreRequestInner request, Context context);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreFromBackupBlobAsync(String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromBackupBlob(String resourceGroupName, String name, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromBackupBlob(String resourceGroupName, String name, RestoreRequestInner request, Context context);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreFromDeletedAppWithResponseAsync(
        String resourceGroupName, String name, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreFromDeletedAppAsync(
        String resourceGroupName, String name, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromDeletedApp(
        String resourceGroupName, String name, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Deleted web app restore information.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromDeletedApp(
        String resourceGroupName, String name, DeletedAppRestoreRequest restoreRequest, Context context);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreFromDeletedAppAsync(
        String resourceGroupName, String name, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromDeletedApp(String resourceGroupName, String name, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Deleted web app restore information.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromDeletedApp(
        String resourceGroupName, String name, DeletedAppRestoreRequest restoreRequest, Context context);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreSnapshotWithResponseAsync(
        String resourceGroupName, String name, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreSnapshotAsync(
        String resourceGroupName, String name, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreSnapshot(
        String resourceGroupName, String name, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreSnapshot(
        String resourceGroupName, String name, SnapshotRestoreRequest restoreRequest, Context context);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreSnapshotAsync(String resourceGroupName, String name, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreSnapshot(String resourceGroupName, String name, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreSnapshot(String resourceGroupName, String name, SnapshotRestoreRequest restoreRequest, Context context);

    /**
     * Get list of siteextensions for a web site, or a deployment slot.
     *
     * <p>Description for Get list of siteextensions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu site extension information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteExtensionInfoInner> listSiteExtensionsAsync(String resourceGroupName, String name);

    /**
     * Get list of siteextensions for a web site, or a deployment slot.
     *
     * <p>Description for Get list of siteextensions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu site extension information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteExtensionInfoInner> listSiteExtensions(String resourceGroupName, String name);

    /**
     * Get list of siteextensions for a web site, or a deployment slot.
     *
     * <p>Description for Get list of siteextensions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu site extension information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteExtensionInfoInner> listSiteExtensions(String resourceGroupName, String name, Context context);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteExtensionInfoInner>> getSiteExtensionWithResponseAsync(
        String resourceGroupName, String name, String siteExtensionId);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteExtensionInfoInner> getSiteExtensionAsync(String resourceGroupName, String name, String siteExtensionId);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteExtensionInfoInner> getSiteExtensionWithResponse(
        String resourceGroupName, String name, String siteExtensionId, Context context);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteExtensionInfoInner getSiteExtension(String resourceGroupName, String name, String siteExtensionId);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> installSiteExtensionWithResponseAsync(
        String resourceGroupName, String name, String siteExtensionId);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<SiteExtensionInfoInner>, SiteExtensionInfoInner> beginInstallSiteExtensionAsync(
        String resourceGroupName, String name, String siteExtensionId);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteExtensionInfoInner>, SiteExtensionInfoInner> beginInstallSiteExtension(
        String resourceGroupName, String name, String siteExtensionId);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteExtensionInfoInner>, SiteExtensionInfoInner> beginInstallSiteExtension(
        String resourceGroupName, String name, String siteExtensionId, Context context);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteExtensionInfoInner> installSiteExtensionAsync(
        String resourceGroupName, String name, String siteExtensionId);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteExtensionInfoInner installSiteExtension(String resourceGroupName, String name, String siteExtensionId);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteExtensionInfoInner installSiteExtension(
        String resourceGroupName, String name, String siteExtensionId, Context context);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteSiteExtensionWithResponseAsync(
        String resourceGroupName, String name, String siteExtensionId);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteSiteExtensionAsync(String resourceGroupName, String name, String siteExtensionId);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteSiteExtensionWithResponse(
        String resourceGroupName, String name, String siteExtensionId, Context context);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteSiteExtension(String resourceGroupName, String name, String siteExtensionId);

    /**
     * Gets an app's deployment slots.
     *
     * <p>Description for Gets an app's deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteInner> listSlotsAsync(String resourceGroupName, String name);

    /**
     * Gets an app's deployment slots.
     *
     * <p>Description for Gets an app's deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteInner> listSlots(String resourceGroupName, String name);

    /**
     * Gets an app's deployment slots.
     *
     * <p>Description for Gets an app's deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of App Service apps as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteInner> listSlots(String resourceGroupName, String name, Context context);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteInner>> getSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteInner> getSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteInner> getSlotWithResponse(String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the details of a web, mobile, or API app.
     *
     * <p>Description for Gets the details of a web, mobile, or API app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner getSlot(String resourceGroupName, String name, String slot);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createOrUpdateSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<SiteInner>, SiteInner> beginCreateOrUpdateSlotAsync(
        String resourceGroupName, String name, String slot, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteInner>, SiteInner> beginCreateOrUpdateSlot(
        String resourceGroupName, String name, String slot, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteInner>, SiteInner> beginCreateOrUpdateSlot(
        String resourceGroupName, String name, String slot, SiteInner siteEnvelope, Context context);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteInner> createOrUpdateSlotAsync(String resourceGroupName, String name, String slot, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner createOrUpdateSlot(String resourceGroupName, String name, String slot, SiteInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner createOrUpdateSlot(
        String resourceGroupName, String name, String slot, SiteInner siteEnvelope, Context context);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @param slot Name of the deployment slot to delete. By default, the API deletes the production slot.
     * @param deleteMetrics If true, web app metrics are also deleted.
     * @param deleteEmptyServerFarm Specify false if you want to keep empty App Service plan. By default, empty App
     *     Service plan is deleted.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, Boolean deleteMetrics, Boolean deleteEmptyServerFarm);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @param slot Name of the deployment slot to delete. By default, the API deletes the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @param slot Name of the deployment slot to delete. By default, the API deletes the production slot.
     * @param deleteMetrics If true, web app metrics are also deleted.
     * @param deleteEmptyServerFarm Specify false if you want to keep empty App Service plan. By default, empty App
     *     Service plan is deleted.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        Boolean deleteMetrics,
        Boolean deleteEmptyServerFarm,
        Context context);

    /**
     * Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * <p>Description for Deletes a web, mobile, or API app, or one of the deployment slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app to delete.
     * @param slot Name of the deployment slot to delete. By default, the API deletes the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteSlot(String resourceGroupName, String name, String slot);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteInner>> updateSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SitePatchResourceInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteInner> updateSlotAsync(
        String resourceGroupName, String name, String slot, SitePatchResourceInner siteEnvelope);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteInner> updateSlotWithResponse(
        String resourceGroupName, String name, String slot, SitePatchResourceInner siteEnvelope, Context context);

    /**
     * Creates a new web, mobile, or API app in an existing resource group, or updates an existing app.
     *
     * <p>Description for Creates a new web, mobile, or API app in an existing resource group, or updates an existing
     * app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Unique name of the app to create or update. To create or update a deployment slot, use the {slot}
     *     parameter.
     * @param slot Name of the deployment slot to create or update. By default, this API attempts to create or modify
     *     the production slot.
     * @param siteEnvelope A JSON representation of the app properties. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a web app, a mobile app backend, or an API app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteInner updateSlot(String resourceGroupName, String name, String slot, SitePatchResourceInner siteEnvelope);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param hostname Custom hostname.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CustomHostnameAnalysisResultInner>> analyzeCustomHostnameSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String hostname);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CustomHostnameAnalysisResultInner> analyzeCustomHostnameSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param hostname Custom hostname.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CustomHostnameAnalysisResultInner> analyzeCustomHostnameSlotWithResponse(
        String resourceGroupName, String name, String slot, String hostname, Context context);

    /**
     * Analyze a custom hostname.
     *
     * <p>Description for Analyze a custom hostname.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return custom domain analysis.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CustomHostnameAnalysisResultInner analyzeCustomHostnameSlot(String resourceGroupName, String name, String slot);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> applySlotConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> applySlotConfigurationSlotAsync(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> applySlotConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Applies the configuration settings from the target slot onto the current slot.
     *
     * <p>Description for Applies the configuration settings from the target slot onto the current slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 applySlotConfigurationSlot(String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a backup for the
     *     production slot.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupItemInner>> backupSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, BackupRequestInner request);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a backup for the
     *     production slot.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupItemInner> backupSlotAsync(
        String resourceGroupName, String name, String slot, BackupRequestInner request);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a backup for the
     *     production slot.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupItemInner> backupSlotWithResponse(
        String resourceGroupName, String name, String slot, BackupRequestInner request, Context context);

    /**
     * Creates a backup of an app.
     *
     * <p>Description for Creates a backup of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a backup for the
     *     production slot.
     * @param request Backup configuration. You can use the JSON response from the POST action as input here.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupItemInner backupSlot(String resourceGroupName, String name, String slot, BackupRequestInner request);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get backups of the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<BackupItemInner> listBackupsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get backups of the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listBackupsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get backups of the production
     *     slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listBackupsSlot(String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a backup of the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupItemInner>> getBackupStatusSlotWithResponseAsync(
        String resourceGroupName, String name, String backupId, String slot);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a backup of the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupItemInner> getBackupStatusSlotAsync(String resourceGroupName, String name, String backupId, String slot);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a backup of the production
     *     slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupItemInner> getBackupStatusSlotWithResponse(
        String resourceGroupName, String name, String backupId, String slot, Context context);

    /**
     * Gets a backup of an app by its ID.
     *
     * <p>Description for Gets a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a backup of the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupItemInner getBackupStatusSlot(String resourceGroupName, String name, String backupId, String slot);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a backup of the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteBackupSlotWithResponseAsync(
        String resourceGroupName, String name, String backupId, String slot);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a backup of the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteBackupSlotAsync(String resourceGroupName, String name, String backupId, String slot);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a backup of the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteBackupSlotWithResponse(
        String resourceGroupName, String name, String backupId, String slot, Context context);

    /**
     * Deletes a backup of an app by its ID.
     *
     * <p>Description for Deletes a backup of an app by its ID.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a backup of the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteBackupSlot(String resourceGroupName, String name, String backupId, String slot);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param request Information on backup request.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupItemInner>> listBackupStatusSecretsSlotWithResponseAsync(
        String resourceGroupName, String name, String backupId, String slot, BackupRequestInner request);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param request Information on backup request.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupItemInner> listBackupStatusSecretsSlotAsync(
        String resourceGroupName, String name, String backupId, String slot, BackupRequestInner request);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param request Information on backup request.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupItemInner> listBackupStatusSecretsSlotWithResponse(
        String resourceGroupName,
        String name,
        String backupId,
        String slot,
        BackupRequestInner request,
        Context context);

    /**
     * Gets status of a web app backup that may be in progress, including secrets associated with the backup, such as
     * the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is passed in the
     * request body.
     *
     * <p>Description for Gets status of a web app backup that may be in progress, including secrets associated with the
     * backup, such as the Azure Storage SAS URL. Also can be used to update the SAS URL for the backup if a new URL is
     * passed in the request body.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param backupId ID of backup.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param request Information on backup request.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return backup description.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupItemInner listBackupStatusSecretsSlot(
        String resourceGroupName, String name, String backupId, String slot, BackupRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreSlotWithResponseAsync(
        String resourceGroupName, String name, String backupId, String slot, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreSlotAsync(
        String resourceGroupName, String name, String backupId, String slot, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreSlot(
        String resourceGroupName, String name, String backupId, String slot, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreSlot(
        String resourceGroupName,
        String name,
        String backupId,
        String slot,
        RestoreRequestInner request,
        Context context);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreSlotAsync(
        String resourceGroupName, String name, String backupId, String slot, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreSlot(String resourceGroupName, String name, String backupId, String slot, RestoreRequestInner request);

    /**
     * Restores a specific backup to another app (or deployment slot, if specified).
     *
     * <p>Description for Restores a specific backup to another app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param backupId ID of the backup.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreSlot(
        String resourceGroupName,
        String name,
        String backupId,
        String slot,
        RestoreRequestInner request,
        Context context);

    /**
     * Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * <p>Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies entity collection ARM resource as paginated response with {@link
     *     PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmPublishingCredentialsPoliciesEntityInner> listBasicPublishingCredentialsPoliciesSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * <p>Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies entity collection ARM resource as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmPublishingCredentialsPoliciesEntityInner> listBasicPublishingCredentialsPoliciesSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * <p>Description for Returns whether Scm basic auth is allowed and whether Ftp is allowed for a given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies entity collection ARM resource as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmPublishingCredentialsPoliciesEntityInner> listBasicPublishingCredentialsPoliciesSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> getFtpAllowedSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> getFtpAllowedSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> getFtpAllowedSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Returns whether FTP is allowed on the site or not.
     *
     * <p>Description for Returns whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner getFtpAllowedSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> updateFtpAllowedSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> updateFtpAllowedSlotAsync(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> updateFtpAllowedSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity,
        Context context);

    /**
     * Updates whether FTP is allowed on the site or not.
     *
     * <p>Description for Updates whether FTP is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner updateFtpAllowedSlot(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> getScmAllowedSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> getScmAllowedSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> getScmAllowedSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Returns whether Scm basic auth is allowed on the site or not.
     *
     * <p>Description for Returns whether Scm basic auth is allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner getScmAllowedSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<CsmPublishingCredentialsPoliciesEntityInner>> updateScmAllowedSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmPublishingCredentialsPoliciesEntityInner> updateScmAllowedSlotAsync(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<CsmPublishingCredentialsPoliciesEntityInner> updateScmAllowedSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity,
        Context context);

    /**
     * Updates whether user publishing credentials are allowed on the site or not.
     *
     * <p>Description for Updates whether user publishing credentials are allowed on the site or not.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return publishing Credentials Policies parameters.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmPublishingCredentialsPoliciesEntityInner updateScmAllowedSlot(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingCredentialsPoliciesEntityInner csmPublishingAccessPoliciesEntity);

    /**
     * List the configurations of an app
     *
     * <p>Description for List the configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of site configurations as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteConfigResourceInner> listConfigurationsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * List the configurations of an app
     *
     * <p>Description for List the configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of site configurations as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigResourceInner> listConfigurationsSlot(String resourceGroupName, String name, String slot);

    /**
     * List the configurations of an app
     *
     * <p>Description for List the configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of site configurations as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigResourceInner> listConfigurationsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the application settings
     *     for the production slot.
     * @param appSettings Application settings of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> updateApplicationSettingsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, StringDictionaryInner appSettings);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the application settings
     *     for the production slot.
     * @param appSettings Application settings of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> updateApplicationSettingsSlotAsync(
        String resourceGroupName, String name, String slot, StringDictionaryInner appSettings);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the application settings
     *     for the production slot.
     * @param appSettings Application settings of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> updateApplicationSettingsSlotWithResponse(
        String resourceGroupName, String name, String slot, StringDictionaryInner appSettings, Context context);

    /**
     * Replaces the application settings of an app.
     *
     * <p>Description for Replaces the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the application settings
     *     for the production slot.
     * @param appSettings Application settings of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner updateApplicationSettingsSlot(
        String resourceGroupName, String name, String slot, StringDictionaryInner appSettings);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the application settings
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> listApplicationSettingsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the application settings
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> listApplicationSettingsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the application settings
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> listApplicationSettingsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the application settings of an app.
     *
     * <p>Description for Gets the application settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the application settings
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner listApplicationSettingsSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettings Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsInner>> updateAuthSettingsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteAuthSettingsInner siteAuthSettings);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettings Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsInner> updateAuthSettingsSlotAsync(
        String resourceGroupName, String name, String slot, SiteAuthSettingsInner siteAuthSettings);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettings Auth settings associated with web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsInner> updateAuthSettingsSlotWithResponse(
        String resourceGroupName, String name, String slot, SiteAuthSettingsInner siteAuthSettings, Context context);

    /**
     * Updates the Authentication / Authorization settings associated with web app.
     *
     * <p>Description for Updates the Authentication / Authorization settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettings Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsInner updateAuthSettingsSlot(
        String resourceGroupName, String name, String slot, SiteAuthSettingsInner siteAuthSettings);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsInner>> getAuthSettingsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsInner> getAuthSettingsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature along with {@link
     *     Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsInner> getAuthSettingsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the Authentication/Authorization settings of an app.
     *
     * <p>Description for Gets the Authentication/Authorization settings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsInner getAuthSettingsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site's Authentication / Authorization settings for apps via the V2 format along with {@link Response} on
     *     successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsV2Inner>> getAuthSettingsV2WithoutSecretsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site's Authentication / Authorization settings for apps via the V2 format on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsV2Inner> getAuthSettingsV2WithoutSecretsSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site's Authentication / Authorization settings for apps via the V2 format along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsV2Inner> getAuthSettingsV2WithoutSecretsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site's Authentication / Authorization settings for apps via the V2 format.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsV2Inner getAuthSettingsV2WithoutSecretsSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsV2Inner>> updateAuthSettingsV2SlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteAuthSettingsV2Inner siteAuthSettingsV2);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsV2Inner> updateAuthSettingsV2SlotAsync(
        String resourceGroupName, String name, String slot, SiteAuthSettingsV2Inner siteAuthSettingsV2);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsV2Inner> updateAuthSettingsV2SlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        SiteAuthSettingsV2Inner siteAuthSettingsV2,
        Context context);

    /**
     * Updates site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Updates site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param siteAuthSettingsV2 Auth settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsV2Inner updateAuthSettingsV2Slot(
        String resourceGroupName, String name, String slot, SiteAuthSettingsV2Inner siteAuthSettingsV2);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteAuthSettingsV2Inner>> getAuthSettingsV2SlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteAuthSettingsV2Inner> getAuthSettingsV2SlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature along with
     *     {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteAuthSettingsV2Inner> getAuthSettingsV2SlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets site's Authentication / Authorization settings for apps via the V2 format
     *
     * <p>Description for Gets site's Authentication / Authorization settings for apps via the V2 format.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the settings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration settings for the Azure App Service Authentication / Authorization V2 feature.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteAuthSettingsV2Inner getAuthSettingsV2Slot(String resourceGroupName, String name, String slot);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<AzureStoragePropertyDictionaryResourceInner>> updateAzureStorageAccountsSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String slot,
        AzureStoragePropertyDictionaryResourceInner azureStorageAccounts);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<AzureStoragePropertyDictionaryResourceInner> updateAzureStorageAccountsSlotAsync(
        String resourceGroupName,
        String name,
        String slot,
        AzureStoragePropertyDictionaryResourceInner azureStorageAccounts);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<AzureStoragePropertyDictionaryResourceInner> updateAzureStorageAccountsSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        AzureStoragePropertyDictionaryResourceInner azureStorageAccounts,
        Context context);

    /**
     * Updates the Azure storage account configurations of an app.
     *
     * <p>Description for Updates the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @param azureStorageAccounts Azure storage accounts of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    AzureStoragePropertyDictionaryResourceInner updateAzureStorageAccountsSlot(
        String resourceGroupName,
        String name,
        String slot,
        AzureStoragePropertyDictionaryResourceInner azureStorageAccounts);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<AzureStoragePropertyDictionaryResourceInner>> listAzureStorageAccountsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<AzureStoragePropertyDictionaryResourceInner> listAzureStorageAccountsSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<AzureStoragePropertyDictionaryResourceInner> listAzureStorageAccountsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the Azure storage account configurations of an app.
     *
     * <p>Description for Gets the Azure storage account configurations of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the Azure storage
     *     account configurations for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return azureStorageInfo dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    AzureStoragePropertyDictionaryResourceInner listAzureStorageAccountsSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the backup configuration
     *     for the production slot.
     * @param request Edited backup configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupRequestInner>> updateBackupConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, BackupRequestInner request);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the backup configuration
     *     for the production slot.
     * @param request Edited backup configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupRequestInner> updateBackupConfigurationSlotAsync(
        String resourceGroupName, String name, String slot, BackupRequestInner request);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the backup configuration
     *     for the production slot.
     * @param request Edited backup configuration.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupRequestInner> updateBackupConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, BackupRequestInner request, Context context);

    /**
     * Updates the backup configuration of an app.
     *
     * <p>Description for Updates the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the backup configuration
     *     for the production slot.
     * @param request Edited backup configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupRequestInner updateBackupConfigurationSlot(
        String resourceGroupName, String name, String slot, BackupRequestInner request);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the backup configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteBackupConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the backup configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteBackupConfigurationSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the backup configuration
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteBackupConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Deletes the backup configuration of an app.
     *
     * <p>Description for Deletes the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the backup configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteBackupConfigurationSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the backup configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BackupRequestInner>> getBackupConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the backup configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BackupRequestInner> getBackupConfigurationSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the backup configuration
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BackupRequestInner> getBackupConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the backup configuration of an app.
     *
     * <p>Description for Gets the backup configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the backup configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a backup which will be performed.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BackupRequestInner getBackupConfigurationSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ApiKVReferenceInner> getAppSettingsKeyVaultReferencesSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getAppSettingsKeyVaultReferencesSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getAppSettingsKeyVaultReferencesSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ApiKVReferenceInner>> getAppSettingKeyVaultReferenceSlotWithResponseAsync(
        String resourceGroupName, String name, String appSettingKey, String slot);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ApiKVReferenceInner> getAppSettingKeyVaultReferenceSlotAsync(
        String resourceGroupName, String name, String appSettingKey, String slot);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ApiKVReferenceInner> getAppSettingKeyVaultReferenceSlotWithResponse(
        String resourceGroupName, String name, String appSettingKey, String slot, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param appSettingKey App Setting key name.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ApiKVReferenceInner getAppSettingKeyVaultReferenceSlot(
        String resourceGroupName, String name, String appSettingKey, String slot);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferencesSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferencesSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the config reference app settings and status of an app
     *
     * <p>Description for Gets the config reference app settings and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferencesSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ApiKVReferenceInner>> getSiteConnectionStringKeyVaultReferenceSlotWithResponseAsync(
        String resourceGroupName, String name, String connectionStringKey, String slot);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferenceSlotAsync(
        String resourceGroupName, String name, String connectionStringKey, String slot);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ApiKVReferenceInner> getSiteConnectionStringKeyVaultReferenceSlotWithResponse(
        String resourceGroupName, String name, String connectionStringKey, String slot, Context context);

    /**
     * Gets the config reference and status of an app
     *
     * <p>Description for Gets the config reference and status of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param connectionStringKey The connectionStringKey parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of site key vault references.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ApiKVReferenceInner getSiteConnectionStringKeyVaultReferenceSlot(
        String resourceGroupName, String name, String connectionStringKey, String slot);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the connection settings
     *     for the production slot.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ConnectionStringDictionaryInner>> updateConnectionStringsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, ConnectionStringDictionaryInner connectionStrings);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the connection settings
     *     for the production slot.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ConnectionStringDictionaryInner> updateConnectionStringsSlotAsync(
        String resourceGroupName, String name, String slot, ConnectionStringDictionaryInner connectionStrings);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the connection settings
     *     for the production slot.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ConnectionStringDictionaryInner> updateConnectionStringsSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        ConnectionStringDictionaryInner connectionStrings,
        Context context);

    /**
     * Replaces the connection strings of an app.
     *
     * <p>Description for Replaces the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the connection settings
     *     for the production slot.
     * @param connectionStrings Connection strings of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ConnectionStringDictionaryInner updateConnectionStringsSlot(
        String resourceGroupName, String name, String slot, ConnectionStringDictionaryInner connectionStrings);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the connection settings for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ConnectionStringDictionaryInner>> listConnectionStringsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the connection settings for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ConnectionStringDictionaryInner> listConnectionStringsSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the connection settings for
     *     the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ConnectionStringDictionaryInner> listConnectionStringsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the connection strings of an app.
     *
     * <p>Description for Gets the connection strings of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the connection settings for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ConnectionStringDictionaryInner listConnectionStringsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the logging configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteLogsConfigInner>> getDiagnosticLogsConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the logging configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteLogsConfigInner> getDiagnosticLogsConfigurationSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the logging configuration
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteLogsConfigInner> getDiagnosticLogsConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the logging configuration of an app.
     *
     * <p>Description for Gets the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the logging configuration
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteLogsConfigInner getDiagnosticLogsConfigurationSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the logging
     *     configuration for the production slot.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteLogsConfigInner>> updateDiagnosticLogsConfigSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteLogsConfigInner siteLogsConfig);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the logging
     *     configuration for the production slot.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteLogsConfigInner> updateDiagnosticLogsConfigSlotAsync(
        String resourceGroupName, String name, String slot, SiteLogsConfigInner siteLogsConfig);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the logging
     *     configuration for the production slot.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteLogsConfigInner> updateDiagnosticLogsConfigSlotWithResponse(
        String resourceGroupName, String name, String slot, SiteLogsConfigInner siteLogsConfig, Context context);

    /**
     * Updates the logging configuration of an app.
     *
     * <p>Description for Updates the logging configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the logging
     *     configuration for the production slot.
     * @param siteLogsConfig A SiteLogsConfig JSON object that contains the logging configuration to change in the
     *     "properties" property.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return configuration of App Service site logs.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteLogsConfigInner updateDiagnosticLogsConfigSlot(
        String resourceGroupName, String name, String slot, SiteLogsConfigInner siteLogsConfig);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the metadata for the
     *     production slot.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> updateMetadataSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, StringDictionaryInner metadata);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the metadata for the
     *     production slot.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> updateMetadataSlotAsync(
        String resourceGroupName, String name, String slot, StringDictionaryInner metadata);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the metadata for the
     *     production slot.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> updateMetadataSlotWithResponse(
        String resourceGroupName, String name, String slot, StringDictionaryInner metadata, Context context);

    /**
     * Replaces the metadata of an app.
     *
     * <p>Description for Replaces the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the metadata for the
     *     production slot.
     * @param metadata Edited metadata of the app or deployment slot. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner updateMetadataSlot(
        String resourceGroupName, String name, String slot, StringDictionaryInner metadata);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the metadata for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> listMetadataSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the metadata for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> listMetadataSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the metadata for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> listMetadataSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the metadata of an app.
     *
     * <p>Description for Gets the metadata of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the metadata for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner listMetadataSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> listPublishingCredentialsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<UserInner>, UserInner> beginListPublishingCredentialsSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<UserInner>, UserInner> beginListPublishingCredentialsSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<UserInner>, UserInner> beginListPublishingCredentialsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<UserInner> listPublishingCredentialsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    UserInner listPublishingCredentialsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the Git/FTP publishing credentials of an app.
     *
     * <p>Description for Gets the Git/FTP publishing credentials of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing credentials
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    UserInner listPublishingCredentialsSlot(String resourceGroupName, String name, String slot, Context context);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param pushSettings Push settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PushSettingsInner>> updateSitePushSettingsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, PushSettingsInner pushSettings);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param pushSettings Push settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PushSettingsInner> updateSitePushSettingsSlotAsync(
        String resourceGroupName, String name, String slot, PushSettingsInner pushSettings);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param pushSettings Push settings associated with web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PushSettingsInner> updateSitePushSettingsSlotWithResponse(
        String resourceGroupName, String name, String slot, PushSettingsInner pushSettings, Context context);

    /**
     * Updates the Push settings associated with web app.
     *
     * <p>Description for Updates the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param pushSettings Push settings associated with web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PushSettingsInner updateSitePushSettingsSlot(
        String resourceGroupName, String name, String slot, PushSettingsInner pushSettings);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PushSettingsInner>> listSitePushSettingsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PushSettingsInner> listSitePushSettingsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PushSettingsInner> listSitePushSettingsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the Push settings associated with web app.
     *
     * <p>Description for Gets the Push settings associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return push settings for the App.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PushSettingsInner listSitePushSettingsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> getConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> getConfigurationSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> getConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the configuration of an app, such as platform version and bitness, default documents, virtual applications,
     * Always On, etc.
     *
     * <p>Description for Gets the configuration of an app, such as platform version and bitness, default documents,
     * virtual applications, Always On, etc.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner getConfigurationSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> createOrUpdateConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> createOrUpdateConfigurationSlotAsync(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> createOrUpdateConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig, Context context);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner createOrUpdateConfigurationSlot(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> updateConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> updateConfigurationSlotAsync(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> updateConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig, Context context);

    /**
     * Updates the configuration of an app.
     *
     * <p>Description for Updates the configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update configuration for the
     *     production slot.
     * @param siteConfig JSON representation of a SiteConfig object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner updateConfigurationSlot(
        String resourceGroupName, String name, String slot, SiteConfigResourceInner siteConfig);

    /**
     * Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the
     * ID of the snapshot.
     *
     * <p>Description for Gets a list of web app configuration snapshots identifiers. Each element of the list contains
     * a timestamp and the ID of the snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of metadata for the app configuration snapshots that can be restored as paginated response
     *     with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteConfigurationSnapshotInfoInner> listConfigurationSnapshotInfoSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the
     * ID of the snapshot.
     *
     * <p>Description for Gets a list of web app configuration snapshots identifiers. Each element of the list contains
     * a timestamp and the ID of the snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of metadata for the app configuration snapshots that can be restored as paginated response
     *     with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigurationSnapshotInfoInner> listConfigurationSnapshotInfoSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Gets a list of web app configuration snapshots identifiers. Each element of the list contains a timestamp and the
     * ID of the snapshot.
     *
     * <p>Description for Gets a list of web app configuration snapshots identifiers. Each element of the list contains
     * a timestamp and the ID of the snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of metadata for the app configuration snapshots that can be restored as paginated response
     *     with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteConfigurationSnapshotInfoInner> listConfigurationSnapshotInfoSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteConfigResourceInner>> getConfigurationSnapshotSlotWithResponseAsync(
        String resourceGroupName, String name, String snapshotId, String slot);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteConfigResourceInner> getConfigurationSnapshotSlotAsync(
        String resourceGroupName, String name, String snapshotId, String slot);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteConfigResourceInner> getConfigurationSnapshotSlotWithResponse(
        String resourceGroupName, String name, String snapshotId, String slot, Context context);

    /**
     * Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * <p>Description for Gets a snapshot of the configuration of an app at a previous point in time.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web app configuration ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteConfigResourceInner getConfigurationSnapshotSlot(
        String resourceGroupName, String name, String snapshotId, String slot);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> recoverSiteConfigurationSnapshotSlotWithResponseAsync(
        String resourceGroupName, String name, String snapshotId, String slot);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> recoverSiteConfigurationSnapshotSlotAsync(
        String resourceGroupName, String name, String snapshotId, String slot);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> recoverSiteConfigurationSnapshotSlotWithResponse(
        String resourceGroupName, String name, String snapshotId, String slot, Context context);

    /**
     * Reverts the configuration of an app to a previous snapshot.
     *
     * <p>Description for Reverts the configuration of an app to a previous snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param snapshotId The ID of the snapshot to read.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will return configuration for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 recoverSiteConfigurationSnapshotSlot(String resourceGroupName, String name, String snapshotId, String slot);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getWebSiteContainerLogsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getWebSiteContainerLogsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getWebSiteContainerLogsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the last lines of docker logs for the given site
     *
     * <p>Description for Gets the last lines of docker logs for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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)
    BinaryData getWebSiteContainerLogsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getContainerLogsZipSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getContainerLogsZipSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getContainerLogsZipSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the ZIP archived docker log files for the given site
     *
     * <p>Description for Gets the ZIP archived docker log files for the given site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.core.management.exception.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)
    BinaryData getContainerLogsZipSlot(String resourceGroupName, String name, String slot);

    /**
     * List continuous web jobs for an app, or a deployment slot.
     *
     * <p>Description for List continuous web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ContinuousWebJobInner> listContinuousWebJobsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * List continuous web jobs for an app, or a deployment slot.
     *
     * <p>Description for List continuous web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ContinuousWebJobInner> listContinuousWebJobsSlot(String resourceGroupName, String name, String slot);

    /**
     * List continuous web jobs for an app, or a deployment slot.
     *
     * <p>Description for List continuous web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ContinuousWebJobInner> listContinuousWebJobsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ContinuousWebJobInner>> getContinuousWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ContinuousWebJobInner> getContinuousWebJobSlotAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ContinuousWebJobInner> getContinuousWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return continuous Web Job Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ContinuousWebJobInner getContinuousWebJobSlot(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteContinuousWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteContinuousWebJobSlotAsync(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteContinuousWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a continuous web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteContinuousWebJobSlot(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> startContinuousWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> startContinuousWebJobSlotAsync(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> startContinuousWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Start a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Start a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void startContinuousWebJobSlot(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopContinuousWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopContinuousWebJobSlotAsync(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> stopContinuousWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Stop a continuous web job for an app, or a deployment slot.
     *
     * <p>Description for Stop a continuous web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void stopContinuousWebJobSlot(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * List deployment statuses for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return deployment status collection ARM resource as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmDeploymentStatus> listSlotSiteDeploymentStatusesSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * List deployment statuses for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return deployment status collection ARM resource as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmDeploymentStatus> listSlotSiteDeploymentStatusesSlot(
        String resourceGroupName, String name, String slot);

    /**
     * List deployment statuses for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return deployment status collection ARM resource as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmDeploymentStatus> listSlotSiteDeploymentStatusesSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified) along with {@link Response} on
     *     successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> getSlotSiteDeploymentStatusSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of the deployment status for an app (or deployment slot, if
     *     specified).
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<CsmDeploymentStatus>, CsmDeploymentStatus> beginGetSlotSiteDeploymentStatusSlotAsync(
        String resourceGroupName, String name, String slot, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 the deployment status for an app (or deployment slot, if
     *     specified).
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<CsmDeploymentStatus>, CsmDeploymentStatus> beginGetSlotSiteDeploymentStatusSlot(
        String resourceGroupName, String name, String slot, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param deploymentStatusId GUID of the deployment operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 the deployment status for an app (or deployment slot, if
     *     specified).
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<CsmDeploymentStatus>, CsmDeploymentStatus> beginGetSlotSiteDeploymentStatusSlot(
        String resourceGroupName, String name, String slot, String deploymentStatusId, Context context);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified) on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<CsmDeploymentStatus> getSlotSiteDeploymentStatusSlotAsync(
        String resourceGroupName, String name, String slot, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param deploymentStatusId GUID of the deployment operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified).
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmDeploymentStatus getSlotSiteDeploymentStatusSlot(
        String resourceGroupName, String name, String slot, String deploymentStatusId);

    /**
     * Gets the deployment status for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the deployment status for
     *     the production slot.
     * @param deploymentStatusId GUID of the deployment operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the deployment status for an app (or deployment slot, if specified).
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    CsmDeploymentStatus getSlotSiteDeploymentStatusSlot(
        String resourceGroupName, String name, String slot, String deploymentStatusId, Context context);

    /**
     * List deployments for an app, or a deployment slot.
     *
     * <p>Description for List deployments for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app deployments as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<DeploymentInner> listDeploymentsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * List deployments for an app, or a deployment slot.
     *
     * <p>Description for List deployments for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app deployments as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<DeploymentInner> listDeploymentsSlot(String resourceGroupName, String name, String slot);

    /**
     * List deployments for an app, or a deployment slot.
     *
     * <p>Description for List deployments for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app deployments as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<DeploymentInner> listDeploymentsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets a deployment for the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<DeploymentInner>> getDeploymentSlotWithResponseAsync(
        String resourceGroupName, String name, String id, String slot);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets a deployment for the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<DeploymentInner> getDeploymentSlotAsync(String resourceGroupName, String name, String id, String slot);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets a deployment for the production
     *     slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<DeploymentInner> getDeploymentSlotWithResponse(
        String resourceGroupName, String name, String id, String slot, Context context);

    /**
     * Get a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Get a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets a deployment for the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    DeploymentInner getDeploymentSlot(String resourceGroupName, String name, String id, String slot);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param slot Name of the deployment slot. If a slot is not specified, the API creates a deployment for the
     *     production slot.
     * @param deployment Deployment details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<DeploymentInner>> createDeploymentSlotWithResponseAsync(
        String resourceGroupName, String name, String id, String slot, DeploymentInner deployment);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param slot Name of the deployment slot. If a slot is not specified, the API creates a deployment for the
     *     production slot.
     * @param deployment Deployment details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<DeploymentInner> createDeploymentSlotAsync(
        String resourceGroupName, String name, String id, String slot, DeploymentInner deployment);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param slot Name of the deployment slot. If a slot is not specified, the API creates a deployment for the
     *     production slot.
     * @param deployment Deployment details.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<DeploymentInner> createDeploymentSlotWithResponse(
        String resourceGroupName, String name, String id, String slot, DeploymentInner deployment, Context context);

    /**
     * Create a deployment for an app, or a deployment slot.
     *
     * <p>Description for Create a deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id ID of an existing deployment.
     * @param slot Name of the deployment slot. If a slot is not specified, the API creates a deployment for the
     *     production slot.
     * @param deployment Deployment details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    DeploymentInner createDeploymentSlot(
        String resourceGroupName, String name, String id, String slot, DeploymentInner deployment);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteDeploymentSlotWithResponseAsync(
        String resourceGroupName, String name, String id, String slot);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteDeploymentSlotAsync(String resourceGroupName, String name, String id, String slot);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteDeploymentSlotWithResponse(
        String resourceGroupName, String name, String id, String slot, Context context);

    /**
     * Delete a deployment by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a deployment by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id Deployment ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteDeploymentSlot(String resourceGroupName, String name, String id, String slot);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<DeploymentInner>> listDeploymentLogSlotWithResponseAsync(
        String resourceGroupName, String name, String id, String slot);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<DeploymentInner> listDeploymentLogSlotAsync(String resourceGroupName, String name, String id, String slot);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<DeploymentInner> listDeploymentLogSlotWithResponse(
        String resourceGroupName, String name, String id, String slot, Context context);

    /**
     * List deployment log for specific deployment for an app, or a deployment slot.
     *
     * <p>Description for List deployment log for specific deployment for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param id The ID of a specific deployment. This is the value of the name property in the JSON response from "GET
     *     /api/sites/{siteName}/deployments".
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return user credentials used for publishing activity.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    DeploymentInner listDeploymentLogSlot(String resourceGroupName, String name, String id, String slot);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will perform discovery for the
     *     production slot.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RestoreRequestInner>> discoverBackupSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will perform discovery for the
     *     production slot.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RestoreRequestInner> discoverBackupSlotAsync(
        String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will perform discovery for the
     *     production slot.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RestoreRequestInner> discoverBackupSlotWithResponse(
        String resourceGroupName, String name, String slot, RestoreRequestInner request, Context context);

    /**
     * Discovers an existing app backup that can be restored from a blob in Azure storage. Use this to get information
     * about the databases stored in a backup.
     *
     * <p>Description for Discovers an existing app backup that can be restored from a blob in Azure storage. Use this
     * to get information about the databases stored in a backup.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will perform discovery for the
     *     production slot.
     * @param request A RestoreRequest object that includes Azure storage URL and blog name for discovery of backup.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of a restore request.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RestoreRequestInner discoverBackupSlot(
        String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Lists ownership identifiers for domain associated with web app.
     *
     * <p>Description for Lists ownership identifiers for domain associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of identifiers as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<IdentifierInner> listDomainOwnershipIdentifiersSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Lists ownership identifiers for domain associated with web app.
     *
     * <p>Description for Lists ownership identifiers for domain associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of identifiers as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<IdentifierInner> listDomainOwnershipIdentifiersSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Lists ownership identifiers for domain associated with web app.
     *
     * <p>Description for Lists ownership identifiers for domain associated with web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of identifiers as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<IdentifierInner> listDomainOwnershipIdentifiersSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<IdentifierInner>> getDomainOwnershipIdentifierSlotWithResponseAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<IdentifierInner> getDomainOwnershipIdentifierSlotAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<IdentifierInner> getDomainOwnershipIdentifierSlotWithResponse(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot, Context context);

    /**
     * Get domain ownership identifier for web app.
     *
     * <p>Description for Get domain ownership identifier for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    IdentifierInner getDomainOwnershipIdentifierSlot(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<IdentifierInner>> createOrUpdateDomainOwnershipIdentifierSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<IdentifierInner> createOrUpdateDomainOwnershipIdentifierSlotAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<IdentifierInner> createOrUpdateDomainOwnershipIdentifierSlotWithResponse(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier,
        Context context);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    IdentifierInner createOrUpdateDomainOwnershipIdentifierSlot(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteDomainOwnershipIdentifierSlotWithResponseAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteDomainOwnershipIdentifierSlotAsync(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteDomainOwnershipIdentifierSlotWithResponse(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot, Context context);

    /**
     * Deletes a domain ownership identifier for a web app.
     *
     * <p>Description for Deletes a domain ownership identifier for a web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteDomainOwnershipIdentifierSlot(
        String resourceGroupName, String name, String domainOwnershipIdentifierName, String slot);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<IdentifierInner>> updateDomainOwnershipIdentifierSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<IdentifierInner> updateDomainOwnershipIdentifierSlotAsync(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<IdentifierInner> updateDomainOwnershipIdentifierSlotWithResponse(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier,
        Context context);

    /**
     * Creates a domain ownership identifier for web app, or updates an existing ownership identifier.
     *
     * <p>Description for Creates a domain ownership identifier for web app, or updates an existing ownership
     * identifier.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param domainOwnershipIdentifierName Name of domain ownership identifier.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param domainOwnershipIdentifier A JSON representation of the domain ownership properties.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a domain specific resource identifier.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    IdentifierInner updateDomainOwnershipIdentifierSlot(
        String resourceGroupName,
        String name,
        String domainOwnershipIdentifierName,
        String slot,
        IdentifierInner domainOwnershipIdentifier);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployStatusInner>> getMSDeployStatusSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> getMSDeployStatusSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployStatusInner> getMSDeployStatusSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner getMSDeployStatusSlot(String resourceGroupName, String name, String slot);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createMSDeployOperationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateMSDeployOperationSlotAsync(
        String resourceGroupName, String name, String slot, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, MSDeploy mSDeploy, Context context);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> createMSDeployOperationSlotAsync(
        String resourceGroupName, String name, String slot, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, MSDeploy mSDeploy, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployLogInner>> getMSDeployLogSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployLogInner> getMSDeployLogSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployLogInner> getMSDeployLogSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployLogInner getMSDeployLogSlot(String resourceGroupName, String name, String slot);

    /**
     * List the functions for a web site, or a deployment slot.
     *
     * <p>Description for List the functions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu function information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<FunctionEnvelopeInner> listInstanceFunctionsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * List the functions for a web site, or a deployment slot.
     *
     * <p>Description for List the functions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu function information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<FunctionEnvelopeInner> listInstanceFunctionsSlot(String resourceGroupName, String name, String slot);

    /**
     * List the functions for a web site, or a deployment slot.
     *
     * <p>Description for List the functions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu function information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<FunctionEnvelopeInner> listInstanceFunctionsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<String>> getFunctionsAdminTokenSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<String> getFunctionsAdminTokenSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<String> getFunctionsAdminTokenSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Fetch a short lived token that can be exchanged for a master key.
     *
     * <p>Description for Fetch a short lived token that can be exchanged for a master key.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    String getFunctionsAdminTokenSlot(String resourceGroupName, String name, String slot);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<FunctionEnvelopeInner>> getInstanceFunctionSlotWithResponseAsync(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionEnvelopeInner> getInstanceFunctionSlotAsync(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<FunctionEnvelopeInner> getInstanceFunctionSlotWithResponse(
        String resourceGroupName, String name, String functionName, String slot, Context context);

    /**
     * Get function information by its ID for web site, or a deployment slot.
     *
     * <p>Description for Get function information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionEnvelopeInner getInstanceFunctionSlot(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createInstanceFunctionSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String functionName,
        String slot,
        FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of function information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<FunctionEnvelopeInner>, FunctionEnvelopeInner> beginCreateInstanceFunctionSlotAsync(
        String resourceGroupName,
        String name,
        String functionName,
        String slot,
        FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 function information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<FunctionEnvelopeInner>, FunctionEnvelopeInner> beginCreateInstanceFunctionSlot(
        String resourceGroupName,
        String name,
        String functionName,
        String slot,
        FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param functionEnvelope Function details.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 function information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<FunctionEnvelopeInner>, FunctionEnvelopeInner> beginCreateInstanceFunctionSlot(
        String resourceGroupName,
        String name,
        String functionName,
        String slot,
        FunctionEnvelopeInner functionEnvelope,
        Context context);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionEnvelopeInner> createInstanceFunctionSlotAsync(
        String resourceGroupName,
        String name,
        String functionName,
        String slot,
        FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param functionEnvelope Function details.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionEnvelopeInner createInstanceFunctionSlot(
        String resourceGroupName,
        String name,
        String functionName,
        String slot,
        FunctionEnvelopeInner functionEnvelope);

    /**
     * Create function for web site, or a deployment slot.
     *
     * <p>Description for Create function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param functionEnvelope Function details.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionEnvelopeInner createInstanceFunctionSlot(
        String resourceGroupName,
        String name,
        String functionName,
        String slot,
        FunctionEnvelopeInner functionEnvelope,
        Context context);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteInstanceFunctionSlotWithResponseAsync(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteInstanceFunctionSlotAsync(String resourceGroupName, String name, String functionName, String slot);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteInstanceFunctionSlotWithResponse(
        String resourceGroupName, String name, String functionName, String slot, Context context);

    /**
     * Delete a function for web site, or a deployment slot.
     *
     * <p>Description for Delete a function for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteInstanceFunctionSlot(String resourceGroupName, String name, String functionName, String slot);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<KeyInfoInner>> createOrUpdateFunctionSecretSlotWithResponseAsync(
        String resourceGroupName, String name, String functionName, String keyName, String slot, KeyInfoInner key);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<KeyInfoInner> createOrUpdateFunctionSecretSlotAsync(
        String resourceGroupName, String name, String functionName, String keyName, String slot, KeyInfoInner key);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<KeyInfoInner> createOrUpdateFunctionSecretSlotWithResponse(
        String resourceGroupName,
        String name,
        String functionName,
        String keyName,
        String slot,
        KeyInfoInner key,
        Context context);

    /**
     * Add or update a function secret.
     *
     * <p>Description for Add or update a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    KeyInfoInner createOrUpdateFunctionSecretSlot(
        String resourceGroupName, String name, String functionName, String keyName, String slot, KeyInfoInner key);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteFunctionSecretSlotWithResponseAsync(
        String resourceGroupName, String name, String functionName, String keyName, String slot);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteFunctionSecretSlotAsync(
        String resourceGroupName, String name, String functionName, String keyName, String slot);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteFunctionSecretSlotWithResponse(
        String resourceGroupName, String name, String functionName, String keyName, String slot, Context context);

    /**
     * Delete a function secret.
     *
     * <p>Description for Delete a function secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName The name of the function.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteFunctionSecretSlot(
        String resourceGroupName, String name, String functionName, String keyName, String slot);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<StringDictionaryInner>> listFunctionKeysSlotWithResponseAsync(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<StringDictionaryInner> listFunctionKeysSlotAsync(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<StringDictionaryInner> listFunctionKeysSlotWithResponse(
        String resourceGroupName, String name, String functionName, String slot, Context context);

    /**
     * Get function keys for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function keys for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return string dictionary resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    StringDictionaryInner listFunctionKeysSlot(String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<FunctionSecretsInner>> listFunctionSecretsSlotWithResponseAsync(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionSecretsInner> listFunctionSecretsSlotAsync(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<FunctionSecretsInner> listFunctionSecretsSlotWithResponse(
        String resourceGroupName, String name, String functionName, String slot, Context context);

    /**
     * Get function secrets for a function in a web site, or a deployment slot.
     *
     * <p>Description for Get function secrets for a function in a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param functionName Function name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionSecretsInner listFunctionSecretsSlot(
        String resourceGroupName, String name, String functionName, String slot);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HostKeysInner>> listHostKeysSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HostKeysInner> listHostKeysSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HostKeysInner> listHostKeysSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get host secrets for a function app.
     *
     * <p>Description for Get host secrets for a function app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return functions host level keys.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HostKeysInner listHostKeysSlot(String resourceGroupName, String name, String slot);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> listSyncStatusSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> listSyncStatusSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> listSyncStatusSlotWithResponse(String resourceGroupName, String name, String slot, Context context);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 listSyncStatusSlot(String resourceGroupName, String name, String slot);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> syncFunctionsSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> syncFunctionsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> syncFunctionsSlotWithResponse(String resourceGroupName, String name, String slot, Context context);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 syncFunctionsSlot(String resourceGroupName, String name, String slot);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<KeyInfoInner>> createOrUpdateHostSecretSlotWithResponseAsync(
        String resourceGroupName, String name, String keyType, String keyName, String slot, KeyInfoInner key);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<KeyInfoInner> createOrUpdateHostSecretSlotAsync(
        String resourceGroupName, String name, String keyType, String keyName, String slot, KeyInfoInner key);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<KeyInfoInner> createOrUpdateHostSecretSlotWithResponse(
        String resourceGroupName,
        String name,
        String keyType,
        String keyName,
        String slot,
        KeyInfoInner key,
        Context context);

    /**
     * Add or update a host level secret.
     *
     * <p>Description for Add or update a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param key The key to create or update.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function key info.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    KeyInfoInner createOrUpdateHostSecretSlot(
        String resourceGroupName, String name, String keyType, String keyName, String slot, KeyInfoInner key);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteHostSecretSlotWithResponseAsync(
        String resourceGroupName, String name, String keyType, String keyName, String slot);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteHostSecretSlotAsync(
        String resourceGroupName, String name, String keyType, String keyName, String slot);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteHostSecretSlotWithResponse(
        String resourceGroupName, String name, String keyType, String keyName, String slot, Context context);

    /**
     * Delete a host level secret.
     *
     * <p>Description for Delete a host level secret.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param keyType The type of host key.
     * @param keyName The name of the key.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteHostSecretSlot(String resourceGroupName, String name, String keyType, String keyName, String slot);

    /**
     * Get hostname bindings for an app or a deployment slot.
     *
     * <p>Description for Get hostname bindings for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets hostname bindings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of hostname bindings as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<HostnameBindingInner> listHostnameBindingsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Get hostname bindings for an app or a deployment slot.
     *
     * <p>Description for Get hostname bindings for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets hostname bindings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of hostname bindings as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<HostnameBindingInner> listHostnameBindingsSlot(String resourceGroupName, String name, String slot);

    /**
     * Get hostname bindings for an app or a deployment slot.
     *
     * <p>Description for Get hostname bindings for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets hostname bindings for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of hostname bindings as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<HostnameBindingInner> listHostnameBindingsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HostnameBindingInner>> getHostnameBindingSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String hostname);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HostnameBindingInner> getHostnameBindingSlotAsync(
        String resourceGroupName, String name, String slot, String hostname);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param hostname Hostname in the hostname binding.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HostnameBindingInner> getHostnameBindingSlotWithResponse(
        String resourceGroupName, String name, String slot, String hostname, Context context);

    /**
     * Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named hostname binding for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HostnameBindingInner getHostnameBindingSlot(String resourceGroupName, String name, String slot, String hostname);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HostnameBindingInner>> createOrUpdateHostnameBindingSlotWithResponseAsync(
        String resourceGroupName, String name, String hostname, String slot, HostnameBindingInner hostnameBinding);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HostnameBindingInner> createOrUpdateHostnameBindingSlotAsync(
        String resourceGroupName, String name, String hostname, String slot, HostnameBindingInner hostnameBinding);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HostnameBindingInner> createOrUpdateHostnameBindingSlotWithResponse(
        String resourceGroupName,
        String name,
        String hostname,
        String slot,
        HostnameBindingInner hostnameBinding,
        Context context);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param hostname Hostname in the hostname binding.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param hostnameBinding Binding details. This is the JSON representation of a HostNameBinding object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return a hostname binding object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HostnameBindingInner createOrUpdateHostnameBindingSlot(
        String resourceGroupName, String name, String hostname, String slot, HostnameBindingInner hostnameBinding);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteHostnameBindingSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String hostname);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteHostnameBindingSlotAsync(String resourceGroupName, String name, String slot, String hostname);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param hostname Hostname in the hostname binding.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteHostnameBindingSlotWithResponse(
        String resourceGroupName, String name, String slot, String hostname, Context context);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param hostname Hostname in the hostname binding.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteHostnameBindingSlot(String resourceGroupName, String name, String slot, String hostname);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> getHybridConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> getHybridConnectionSlotAsync(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> getHybridConnectionSlotWithResponse(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot, Context context);

    /**
     * Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * <p>Description for Retrieves a specific Service Bus Hybrid Connection used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner getHybridConnectionSlot(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> createOrUpdateHybridConnectionSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> createOrUpdateHybridConnectionSlotAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> createOrUpdateHybridConnectionSlotWithResponse(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope,
        Context context);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner createOrUpdateHybridConnectionSlot(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteHybridConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteHybridConnectionSlotAsync(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteHybridConnectionSlotWithResponse(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot, Context context);

    /**
     * Removes a Hybrid Connection from this site.
     *
     * <p>Description for Removes a Hybrid Connection from this site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteHybridConnectionSlot(
        String resourceGroupName, String name, String namespaceName, String relayName, String slot);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> updateHybridConnectionSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> updateHybridConnectionSlotAsync(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> updateHybridConnectionSlotWithResponse(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope,
        Context context);

    /**
     * Creates a new Hybrid Connection using a Service Bus relay.
     *
     * <p>Description for Creates a new Hybrid Connection using a Service Bus relay.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param namespaceName The namespace for this hybrid connection.
     * @param relayName The relay name for this hybrid connection.
     * @param slot The name of the slot for the web app.
     * @param connectionEnvelope The details of the hybrid connection.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner updateHybridConnectionSlot(
        String resourceGroupName,
        String name,
        String namespaceName,
        String relayName,
        String slot,
        HybridConnectionInner connectionEnvelope);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<HybridConnectionInner>> listHybridConnectionsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<HybridConnectionInner> listHybridConnectionsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<HybridConnectionInner> listHybridConnectionsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * <p>Description for Retrieves all Service Bus Hybrid Connections used by this Web App.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    HybridConnectionInner listHybridConnectionsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get hybrid connections for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> listRelayServiceConnectionsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get hybrid connections for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> listRelayServiceConnectionsSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get hybrid connections for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> listRelayServiceConnectionsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets hybrid connections configured for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get hybrid connections for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner listRelayServiceConnectionsSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a hybrid connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> getRelayServiceConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String entityName, String slot);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a hybrid connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> getRelayServiceConnectionSlotAsync(
        String resourceGroupName, String name, String entityName, String slot);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a hybrid connection for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> getRelayServiceConnectionSlotWithResponse(
        String resourceGroupName, String name, String entityName, String slot, Context context);

    /**
     * Gets a hybrid connection configuration by its name.
     *
     * <p>Description for Gets a hybrid connection configuration by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a hybrid connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner getRelayServiceConnectionSlot(
        String resourceGroupName, String name, String entityName, String slot);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> createOrUpdateRelayServiceConnectionSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> createOrUpdateRelayServiceConnectionSlotAsync(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> createOrUpdateRelayServiceConnectionSlotWithResponse(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope,
        Context context);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner createOrUpdateRelayServiceConnectionSlot(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a hybrid connection for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteRelayServiceConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String entityName, String slot);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a hybrid connection for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteRelayServiceConnectionSlotAsync(
        String resourceGroupName, String name, String entityName, String slot);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a hybrid connection for
     *     the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteRelayServiceConnectionSlotWithResponse(
        String resourceGroupName, String name, String entityName, String slot, Context context);

    /**
     * Deletes a relay service connection by its name.
     *
     * <p>Description for Deletes a relay service connection by its name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete a hybrid connection for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteRelayServiceConnectionSlot(String resourceGroupName, String name, String entityName, String slot);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RelayServiceConnectionEntityInner>> updateRelayServiceConnectionSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RelayServiceConnectionEntityInner> updateRelayServiceConnectionSlotAsync(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RelayServiceConnectionEntityInner> updateRelayServiceConnectionSlotWithResponse(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope,
        Context context);

    /**
     * Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * <p>Description for Creates a new hybrid connection configuration (PUT), or updates an existing one (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param entityName Name of the hybrid connection configuration.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create or update a hybrid
     *     connection for the production slot.
     * @param connectionEnvelope Details of the hybrid connection configuration.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return hybrid Connection for an App Service app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RelayServiceConnectionEntityInner updateRelayServiceConnectionSlot(
        String resourceGroupName,
        String name,
        String entityName,
        String slot,
        RelayServiceConnectionEntityInner connectionEnvelope);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production slot instances.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app instances as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<WebSiteInstanceStatusInner> listInstanceIdentifiersSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production slot instances.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app instances as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebSiteInstanceStatusInner> listInstanceIdentifiersSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production slot instances.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of app instances as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebSiteInstanceStatusInner> listInstanceIdentifiersSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production slot instances.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WebSiteInstanceStatusInner>> getInstanceInfoSlotWithResponseAsync(
        String resourceGroupName, String name, String instanceId, String slot);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production slot instances.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WebSiteInstanceStatusInner> getInstanceInfoSlotAsync(
        String resourceGroupName, String name, String instanceId, String slot);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production slot instances.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WebSiteInstanceStatusInner> getInstanceInfoSlotWithResponse(
        String resourceGroupName, String name, String instanceId, String slot, Context context);

    /**
     * Gets all scale-out instances of an app.
     *
     * <p>Description for Gets all scale-out instances of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param instanceId The instanceId parameter.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production slot instances.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    WebSiteInstanceStatusInner getInstanceInfoSlot(
        String resourceGroupName, String name, String instanceId, String slot);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployStatusInner>> getInstanceMsDeployStatusSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> getInstanceMsDeployStatusSlotAsync(
        String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployStatusInner> getInstanceMsDeployStatusSlotWithResponse(
        String resourceGroupName, String name, String slot, String instanceId, Context context);

    /**
     * Get the status of the last MSDeploy operation.
     *
     * <p>Description for Get the status of the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner getInstanceMsDeployStatusSlot(
        String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createInstanceMSDeployOperationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateInstanceMSDeployOperationSlotAsync(
        String resourceGroupName, String name, String slot, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateInstanceMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<MSDeployStatusInner>, MSDeployStatusInner> beginCreateInstanceMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, String instanceId, MSDeploy mSDeploy, Context context);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployStatusInner> createInstanceMSDeployOperationSlotAsync(
        String resourceGroupName, String name, String slot, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createInstanceMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, String instanceId, MSDeploy mSDeploy);

    /**
     * Invoke the MSDeploy web app extension.
     *
     * <p>Description for Invoke the MSDeploy web app extension.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param mSDeploy Details of MSDeploy operation.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 409.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy ARM response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployStatusInner createInstanceMSDeployOperationSlot(
        String resourceGroupName, String name, String slot, String instanceId, MSDeploy mSDeploy, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MSDeployLogInner>> getInstanceMSDeployLogSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MSDeployLogInner> getInstanceMSDeployLogSlotAsync(
        String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MSDeployLogInner> getInstanceMSDeployLogSlotWithResponse(
        String resourceGroupName, String name, String slot, String instanceId, Context context);

    /**
     * Get the MSDeploy Log for the last MSDeploy operation.
     *
     * <p>Description for Get the MSDeploy Log for the last MSDeploy operation.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param instanceId ID of web app instance.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mSDeploy log.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MSDeployLogInner getInstanceMSDeployLogSlot(String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessInfoInner> listInstanceProcessesSlotAsync(
        String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listInstanceProcessesSlot(
        String resourceGroupName, String name, String slot, String instanceId);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listInstanceProcessesSlot(
        String resourceGroupName, String name, String slot, String instanceId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessInfoInner>> getInstanceProcessSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessInfoInner> getInstanceProcessSlotAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessInfoInner> getInstanceProcessSlotWithResponse(
        String resourceGroupName, String name, String processId, String slot, String instanceId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessInfoInner getInstanceProcessSlot(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteInstanceProcessSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteInstanceProcessSlotAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteInstanceProcessSlotWithResponse(
        String resourceGroupName, String name, String processId, String slot, String instanceId, Context context);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteInstanceProcessSlot(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getInstanceProcessDumpSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getInstanceProcessDumpSlotAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getInstanceProcessDumpSlotWithResponse(
        String resourceGroupName, String name, String processId, String slot, String instanceId, Context context);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BinaryData getInstanceProcessDumpSlot(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessModuleInfoInner> listInstanceProcessModulesSlotAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listInstanceProcessModulesSlot(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listInstanceProcessModulesSlot(
        String resourceGroupName, String name, String processId, String slot, String instanceId, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessModuleInfoInner>> getInstanceProcessModuleSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String baseAddress, String slot, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessModuleInfoInner> getInstanceProcessModuleSlotAsync(
        String resourceGroupName, String name, String processId, String baseAddress, String slot, String instanceId);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessModuleInfoInner> getInstanceProcessModuleSlotWithResponse(
        String resourceGroupName,
        String name,
        String processId,
        String baseAddress,
        String slot,
        String instanceId,
        Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessModuleInfoInner getInstanceProcessModuleSlot(
        String resourceGroupName, String name, String processId, String baseAddress, String slot, String instanceId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessThreadInfoInner> listInstanceProcessThreadsSlotAsync(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listInstanceProcessThreadsSlot(
        String resourceGroupName, String name, String processId, String slot, String instanceId);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param instanceId ID of a specific scaled-out instance. This is the value of the name property in the JSON
     *     response from "GET api/sites/{siteName}/instances".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listInstanceProcessThreadsSlot(
        String resourceGroupName, String name, String processId, String slot, String instanceId, Context context);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns information on the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteCloneabilityInner>> isCloneableSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns information on the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteCloneabilityInner> isCloneableSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns information on the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteCloneabilityInner> isCloneableSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Shows whether an app can be cloned to another resource group or subscription.
     *
     * <p>Description for Shows whether an app can be cloned to another resource group or subscription.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. By default, this API returns information on the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return represents whether or not an app is cloneable.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteCloneabilityInner isCloneableSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get backups of the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<BackupItemInner> listSiteBackupsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get backups of the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listSiteBackupsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets existing backups of an app.
     *
     * <p>Description for Gets existing backups of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get backups of the production
     *     slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of backup items as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<BackupItemInner> listSiteBackupsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<FunctionSecretsInner>> listSyncFunctionTriggersSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<FunctionSecretsInner> listSyncFunctionTriggersSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<FunctionSecretsInner> listSyncFunctionTriggersSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * This is to allow calling via powershell and ARM template.
     *
     * <p>Description for This is to allow calling via powershell and ARM template.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return function secrets.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    FunctionSecretsInner listSyncFunctionTriggersSlot(String resourceGroupName, String name, String slot);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<MigrateMySqlStatusInner>> getMigrateMySqlStatusSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<MigrateMySqlStatusInner> getMigrateMySqlStatusSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<MigrateMySqlStatusInner> getMigrateMySqlStatusSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Returns the status of MySql in app migration, if one is active, and whether or not MySql in app is enabled
     *
     * <p>Description for Returns the status of MySql in app migration, if one is active, and whether or not MySql in
     * app is enabled.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return mySQL migration status.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    MigrateMySqlStatusInner getMigrateMySqlStatusSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SwiftVirtualNetworkInner>> getSwiftVirtualNetworkConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SwiftVirtualNetworkInner> getSwiftVirtualNetworkConnectionSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SwiftVirtualNetworkInner> getSwiftVirtualNetworkConnectionSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets a Swift Virtual Network connection.
     *
     * <p>Description for Gets a Swift Virtual Network connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SwiftVirtualNetworkInner getSwiftVirtualNetworkConnectionSlot(String resourceGroupName, String name, String slot);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SwiftVirtualNetworkInner>> createOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SwiftVirtualNetworkInner> createOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotAsync(
        String resourceGroupName, String name, String slot, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SwiftVirtualNetworkInner> createOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        SwiftVirtualNetworkInner connectionEnvelope,
        Context context);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SwiftVirtualNetworkInner createOrUpdateSwiftVirtualNetworkConnectionWithCheckSlot(
        String resourceGroupName, String name, String slot, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteSwiftVirtualNetworkSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteSwiftVirtualNetworkSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteSwiftVirtualNetworkSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * <p>Description for Deletes a Swift Virtual Network connection from an app (or deployment slot).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteSwiftVirtualNetworkSlot(String resourceGroupName, String name, String slot);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SwiftVirtualNetworkInner>> updateSwiftVirtualNetworkConnectionWithCheckSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SwiftVirtualNetworkInner> updateSwiftVirtualNetworkConnectionWithCheckSlotAsync(
        String resourceGroupName, String name, String slot, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SwiftVirtualNetworkInner> updateSwiftVirtualNetworkConnectionWithCheckSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        SwiftVirtualNetworkInner connectionEnvelope,
        Context context);

    /**
     * Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true when doing a GET
     * against this resource, and 2) that the target Subnet has already been delegated, and is not in use by another App
     * Service Plan other than the one this App is in.
     *
     * <p>Description for Integrates this Web App with a Virtual Network. This requires that 1) "swiftSupported" is true
     * when doing a GET against this resource, and 2) that the target Subnet has already been delegated, and is not in
     * use by another App Service Plan other than the one this App is in.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return swift Virtual Network Contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SwiftVirtualNetworkInner updateSwiftVirtualNetworkConnectionWithCheckSlot(
        String resourceGroupName, String name, String slot, SwiftVirtualNetworkInner connectionEnvelope);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get network features for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections) along with
     *     {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<NetworkFeaturesInner>> listNetworkFeaturesSlotWithResponseAsync(
        String resourceGroupName, String name, String view, String slot);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get network features for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections) on
     *     successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<NetworkFeaturesInner> listNetworkFeaturesSlotAsync(
        String resourceGroupName, String name, String view, String slot);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get network features for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections) along with
     *     {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<NetworkFeaturesInner> listNetworkFeaturesSlotWithResponse(
        String resourceGroupName, String name, String view, String slot, Context context);

    /**
     * Gets all network features used by the app (or deployment slot, if specified).
     *
     * <p>Description for Gets all network features used by the app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param view The type of view. Only "summary" is supported at this time.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get network features for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return full view of network features for an app (presently VNET integration and Hybrid Connections).
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    NetworkFeaturesInner listNetworkFeaturesSlot(String resourceGroupName, String name, String view, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Object>> getNetworkTraceOperationSlotWithResponseAsync(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> getNetworkTraceOperationSlotAsync(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Object> getNetworkTraceOperationSlotWithResponse(
        String resourceGroupName, String name, String operationId, String slot, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object getNetworkTraceOperationSlot(String resourceGroupName, String name, String operationId, String slot);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<String>> startWebSiteNetworkTraceSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<String> startWebSiteNetworkTraceSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<String> startWebSiteNetworkTraceSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Start capturing network packets for the site (To be deprecated).
     *
     * <p>Description for Start capturing network packets for the site (To be deprecated).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    String startWebSiteNetworkTraceSlot(String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> startWebSiteNetworkTraceOperationSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperationSlotAsync(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperationSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperationSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartWebSiteNetworkTraceOperationSlot(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startWebSiteNetworkTraceOperationSlotAsync(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startWebSiteNetworkTraceOperationSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startWebSiteNetworkTraceOperationSlot(String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startWebSiteNetworkTraceOperationSlot(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopWebSiteNetworkTraceSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopWebSiteNetworkTraceSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> stopWebSiteNetworkTraceSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 stopWebSiteNetworkTraceSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<List<NetworkTraceInner>>> getNetworkTracesSlotWithResponseAsync(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<List<NetworkTraceInner>> getNetworkTracesSlotAsync(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<List<NetworkTraceInner>> getNetworkTracesSlotWithResponse(
        String resourceGroupName, String name, String operationId, String slot, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    List<NetworkTraceInner> getNetworkTracesSlot(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Object>> getNetworkTraceOperationSlotV2WithResponseAsync(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> getNetworkTraceOperationSlotV2Async(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Object> getNetworkTraceOperationSlotV2WithResponse(
        String resourceGroupName, String name, String operationId, String slot, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object getNetworkTraceOperationSlotV2(String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<List<NetworkTraceInner>>> getNetworkTracesSlotV2WithResponseAsync(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<List<NetworkTraceInner>> getNetworkTracesSlotV2Async(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<List<NetworkTraceInner>> getNetworkTracesSlotV2WithResponse(
        String resourceGroupName, String name, String operationId, String slot, Context context);

    /**
     * Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * <p>Description for Gets a named operation for a network trace capturing (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param operationId GUID of the operation.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get an operation for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    List<NetworkTraceInner> getNetworkTracesSlotV2(
        String resourceGroupName, String name, String operationId, String slot);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API generate a new publishing password
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> generateNewSitePublishingPasswordSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API generate a new publishing password
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> generateNewSitePublishingPasswordSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API generate a new publishing password
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> generateNewSitePublishingPasswordSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * <p>Description for Generates a new publishing password for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API generate a new publishing password
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 generateNewSitePublishingPasswordSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param filter Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
     *     $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq
     *     duration'[Hour|Minute|Day]'.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<PerfMonResponseInner> listPerfMonCountersSlotAsync(
        String resourceGroupName, String name, String slot, String filter);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<PerfMonResponseInner> listPerfMonCountersSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PerfMonResponseInner> listPerfMonCountersSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets perfmon counters for web app.
     *
     * <p>Description for Gets perfmon counters for web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param filter Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example:
     *     $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq
     *     duration'[Hour|Minute|Day]'.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of performance monitor counters as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PerfMonResponseInner> listPerfMonCountersSlot(
        String resourceGroupName, String name, String slot, String filter, Context context);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SitePhpErrorLogFlagInner>> getSitePhpErrorLogFlagSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SitePhpErrorLogFlagInner> getSitePhpErrorLogFlagSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SitePhpErrorLogFlagInner> getSitePhpErrorLogFlagSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets web app's event logs.
     *
     * <p>Description for Gets web app's event logs.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return used for getting PHP error logging flag.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SitePhpErrorLogFlagInner getSitePhpErrorLogFlagSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the premier add-ons for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> listPremierAddOnsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the premier add-ons for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> listPremierAddOnsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the premier add-ons for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> listPremierAddOnsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the premier add-ons of an app.
     *
     * <p>Description for Gets the premier add-ons of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the premier add-ons for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner listPremierAddOnsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named add-on for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> getPremierAddOnSlotWithResponseAsync(
        String resourceGroupName, String name, String premierAddOnName, String slot);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named add-on for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> getPremierAddOnSlotAsync(
        String resourceGroupName, String name, String premierAddOnName, String slot);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named add-on for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> getPremierAddOnSlotWithResponse(
        String resourceGroupName, String name, String premierAddOnName, String slot, Context context);

    /**
     * Gets a named add-on of an app.
     *
     * <p>Description for Gets a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named add-on for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner getPremierAddOnSlot(String resourceGroupName, String name, String premierAddOnName, String slot);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> addPremierAddOnSlotWithResponseAsync(
        String resourceGroupName, String name, String premierAddOnName, String slot, PremierAddOnInner premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> addPremierAddOnSlotAsync(
        String resourceGroupName, String name, String premierAddOnName, String slot, PremierAddOnInner premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> addPremierAddOnSlotWithResponse(
        String resourceGroupName,
        String name,
        String premierAddOnName,
        String slot,
        PremierAddOnInner premierAddOn,
        Context context);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner addPremierAddOnSlot(
        String resourceGroupName, String name, String premierAddOnName, String slot, PremierAddOnInner premierAddOn);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the named add-on for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deletePremierAddOnSlotWithResponseAsync(
        String resourceGroupName, String name, String premierAddOnName, String slot);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the named add-on for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deletePremierAddOnSlotAsync(String resourceGroupName, String name, String premierAddOnName, String slot);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the named add-on for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deletePremierAddOnSlotWithResponse(
        String resourceGroupName, String name, String premierAddOnName, String slot, Context context);

    /**
     * Delete a premier add-on from an app.
     *
     * <p>Description for Delete a premier add-on from an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the named add-on for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deletePremierAddOnSlot(String resourceGroupName, String name, String premierAddOnName, String slot);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PremierAddOnInner>> updatePremierAddOnSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String premierAddOnName,
        String slot,
        PremierAddOnPatchResource premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PremierAddOnInner> updatePremierAddOnSlotAsync(
        String resourceGroupName,
        String name,
        String premierAddOnName,
        String slot,
        PremierAddOnPatchResource premierAddOn);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PremierAddOnInner> updatePremierAddOnSlotWithResponse(
        String resourceGroupName,
        String name,
        String premierAddOnName,
        String slot,
        PremierAddOnPatchResource premierAddOn,
        Context context);

    /**
     * Updates a named add-on of an app.
     *
     * <p>Description for Updates a named add-on of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param premierAddOnName Add-on name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the named add-on for the
     *     production slot.
     * @param premierAddOn A JSON representation of the edited premier add-on.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return premier add-on.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PremierAddOnInner updatePremierAddOnSlot(
        String resourceGroupName,
        String name,
        String premierAddOnName,
        String slot,
        PremierAddOnPatchResource premierAddOn);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response} on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PrivateAccessInner>> getPrivateAccessSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PrivateAccessInner> getPrivateAccessSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PrivateAccessInner> getPrivateAccessSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Gets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PrivateAccessInner getPrivateAccessSlot(String resourceGroupName, String name, String slot);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @param access The information for the private access.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response} on successful
     *     completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PrivateAccessInner>> putPrivateAccessVnetSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, PrivateAccessInner access);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @param access The information for the private access.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PrivateAccessInner> putPrivateAccessVnetSlotAsync(
        String resourceGroupName, String name, String slot, PrivateAccessInner access);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @param access The information for the private access.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PrivateAccessInner> putPrivateAccessVnetSlotWithResponse(
        String resourceGroupName, String name, String slot, PrivateAccessInner access, Context context);

    /**
     * Sets data around private site access enablement and authorized Virtual Networks that can access the site.
     *
     * <p>Description for Sets data around private site access enablement and authorized Virtual Networks that can
     * access the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for the web app.
     * @param access The information for the private access.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return description of the parameters of Private Access for a Web Site.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PrivateAccessInner putPrivateAccessVnetSlot(
        String resourceGroupName, String name, String slot, PrivateAccessInner access);

    /**
     * Gets the list of private endpoint connections associated with a site
     *
     * <p>Description for Gets the list of private endpoint connections associated with a site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param slot Name of the site deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionListSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the list of private endpoint connections associated with a site
     *
     * <p>Description for Gets the list of private endpoint connections associated with a site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param slot Name of the site deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionListSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the list of private endpoint connections associated with a site
     *
     * <p>Description for Gets the list of private endpoint connections associated with a site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param slot Name of the site deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionListSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @param slot Name of the site deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<RemotePrivateEndpointConnectionArmResourceInner>> getPrivateEndpointConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @param slot Name of the site deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionSlotAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @param slot Name of the site deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<RemotePrivateEndpointConnectionArmResourceInner> getPrivateEndpointConnectionSlotWithResponse(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot, Context context);

    /**
     * Gets a private endpoint connection
     *
     * <p>Description for Gets a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName Name of the private endpoint connection.
     * @param slot Name of the site deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RemotePrivateEndpointConnectionArmResourceInner getPrivateEndpointConnectionSlot(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource along with {@link Response} on successful completion of
     *     {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> approveOrRejectPrivateEndpointConnectionSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        String slot,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<
            PollResult<RemotePrivateEndpointConnectionArmResourceInner>,
            RemotePrivateEndpointConnectionArmResourceInner>
        beginApproveOrRejectPrivateEndpointConnectionSlotAsync(
            String resourceGroupName,
            String name,
            String privateEndpointConnectionName,
            String slot,
            PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<
            PollResult<RemotePrivateEndpointConnectionArmResourceInner>,
            RemotePrivateEndpointConnectionArmResourceInner>
        beginApproveOrRejectPrivateEndpointConnectionSlot(
            String resourceGroupName,
            String name,
            String privateEndpointConnectionName,
            String slot,
            PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<
            PollResult<RemotePrivateEndpointConnectionArmResourceInner>,
            RemotePrivateEndpointConnectionArmResourceInner>
        beginApproveOrRejectPrivateEndpointConnectionSlot(
            String resourceGroupName,
            String name,
            String privateEndpointConnectionName,
            String slot,
            PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper,
            Context context);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<RemotePrivateEndpointConnectionArmResourceInner> approveOrRejectPrivateEndpointConnectionSlotAsync(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        String slot,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RemotePrivateEndpointConnectionArmResourceInner approveOrRejectPrivateEndpointConnectionSlot(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        String slot,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper);

    /**
     * Approves or rejects a private endpoint connection
     *
     * <p>Description for Approves or rejects a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return remote Private Endpoint Connection ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    RemotePrivateEndpointConnectionArmResourceInner approveOrRejectPrivateEndpointConnectionSlot(
        String resourceGroupName,
        String name,
        String privateEndpointConnectionName,
        String slot,
        PrivateLinkConnectionApprovalRequestResource privateEndpointWrapper,
        Context context);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> deletePrivateEndpointConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of any object.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginDeletePrivateEndpointConnectionSlotAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 any object.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginDeletePrivateEndpointConnectionSlot(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 any object.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginDeletePrivateEndpointConnectionSlot(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot, Context context);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> deletePrivateEndpointConnectionSlotAsync(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object deletePrivateEndpointConnectionSlot(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot);

    /**
     * Deletes a private endpoint connection
     *
     * <p>Description for Deletes a private endpoint connection.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param privateEndpointConnectionName The privateEndpointConnectionName parameter.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return any object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object deletePrivateEndpointConnectionSlot(
        String resourceGroupName, String name, String privateEndpointConnectionName, String slot, Context context);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources along with {@link Response} on successful completion
     *     of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PrivateLinkResourcesWrapperInner>> getPrivateLinkResourcesSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PrivateLinkResourcesWrapperInner> getPrivateLinkResourcesSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param slot The slot parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PrivateLinkResourcesWrapperInner> getPrivateLinkResourcesSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the private link resources
     *
     * <p>Description for Gets the private link resources.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the site.
     * @param slot The slot parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return wrapper for a collection of private link resources.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PrivateLinkResourcesWrapperInner getPrivateLinkResourcesSlot(String resourceGroupName, String name, String slot);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessInfoInner> listProcessesSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listProcessesSlot(String resourceGroupName, String name, String slot);

    /**
     * Get list of processes for a web site, or a deployment slot, or for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get list of processes for a web site, or a deployment slot, or for a specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu process information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessInfoInner> listProcessesSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessInfoInner>> getProcessSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String slot);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessInfoInner> getProcessSlotAsync(String resourceGroupName, String name, String processId, String slot);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessInfoInner> getProcessSlotWithResponse(
        String resourceGroupName, String name, String processId, String slot, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessInfoInner getProcessSlot(String resourceGroupName, String name, String processId, String slot);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteProcessSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String slot);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteProcessSlotAsync(String resourceGroupName, String name, String processId, String slot);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteProcessSlotWithResponse(
        String resourceGroupName, String name, String processId, String slot, Context context);

    /**
     * Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out instance in a web
     * site.
     *
     * <p>Description for Terminate a process by its ID for a web site, or a deployment slot, or specific scaled-out
     * instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteProcessSlot(String resourceGroupName, String name, String processId, String slot);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> getProcessDumpSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String slot);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> getProcessDumpSlotAsync(String resourceGroupName, String name, String processId, String slot);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> getProcessDumpSlotWithResponse(
        String resourceGroupName, String name, String processId, String slot, Context context);

    /**
     * Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get a memory dump of a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the response.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    BinaryData getProcessDumpSlot(String resourceGroupName, String name, String processId, String slot);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessModuleInfoInner> listProcessModulesSlotAsync(
        String resourceGroupName, String name, String processId, String slot);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listProcessModulesSlot(
        String resourceGroupName, String name, String processId, String slot);

    /**
     * List module information for a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List module information for a process by its ID for a specific scaled-out instance in a web
     * site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessModuleInfoInner> listProcessModulesSlot(
        String resourceGroupName, String name, String processId, String slot, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<ProcessModuleInfoInner>> getProcessModuleSlotWithResponseAsync(
        String resourceGroupName, String name, String processId, String baseAddress, String slot);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<ProcessModuleInfoInner> getProcessModuleSlotAsync(
        String resourceGroupName, String name, String processId, String baseAddress, String slot);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<ProcessModuleInfoInner> getProcessModuleSlotWithResponse(
        String resourceGroupName, String name, String processId, String baseAddress, String slot, Context context);

    /**
     * Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for Get process information by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param baseAddress Module base address.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return process Module Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    ProcessModuleInfoInner getProcessModuleSlot(
        String resourceGroupName, String name, String processId, String baseAddress, String slot);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<ProcessThreadInfoInner> listProcessThreadsSlotAsync(
        String resourceGroupName, String name, String processId, String slot);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listProcessThreadsSlot(
        String resourceGroupName, String name, String processId, String slot);

    /**
     * List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * <p>Description for List the threads in a process by its ID for a specific scaled-out instance in a web site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param processId PID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu thread information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<ProcessThreadInfoInner> listProcessThreadsSlot(
        String resourceGroupName, String name, String processId, String slot, Context context);

    /**
     * Get public certificates for an app or a deployment slot.
     *
     * <p>Description for Get public certificates for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets hostname bindings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of public certificates as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<PublicCertificateInner> listPublicCertificatesSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Get public certificates for an app or a deployment slot.
     *
     * <p>Description for Get public certificates for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets hostname bindings for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of public certificates as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PublicCertificateInner> listPublicCertificatesSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Get public certificates for an app or a deployment slot.
     *
     * <p>Description for Get public certificates for an app or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API gets hostname bindings for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of public certificates as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<PublicCertificateInner> listPublicCertificatesSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PublicCertificateInner>> getPublicCertificateSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String publicCertificateName);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PublicCertificateInner> getPublicCertificateSlotAsync(
        String resourceGroupName, String name, String slot, String publicCertificateName);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param publicCertificateName Public certificate name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PublicCertificateInner> getPublicCertificateSlotWithResponse(
        String resourceGroupName, String name, String slot, String publicCertificateName, Context context);

    /**
     * Get the named public certificate for an app (or deployment slot, if specified).
     *
     * <p>Description for Get the named public certificate for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API the named binding for the production
     *     slot.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PublicCertificateInner getPublicCertificateSlot(
        String resourceGroupName, String name, String slot, String publicCertificateName);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<PublicCertificateInner>> createOrUpdatePublicCertificateSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String publicCertificateName,
        String slot,
        PublicCertificateInner publicCertificate);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<PublicCertificateInner> createOrUpdatePublicCertificateSlotAsync(
        String resourceGroupName,
        String name,
        String publicCertificateName,
        String slot,
        PublicCertificateInner publicCertificate);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<PublicCertificateInner> createOrUpdatePublicCertificateSlotWithResponse(
        String resourceGroupName,
        String name,
        String publicCertificateName,
        String slot,
        PublicCertificateInner publicCertificate,
        Context context);

    /**
     * Creates a hostname binding for an app.
     *
     * <p>Description for Creates a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param publicCertificateName Public certificate name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will create a binding for the
     *     production slot.
     * @param publicCertificate Public certificate details. This is the JSON representation of a PublicCertificate
     *     object.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return public certificate object.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    PublicCertificateInner createOrUpdatePublicCertificateSlot(
        String resourceGroupName,
        String name,
        String publicCertificateName,
        String slot,
        PublicCertificateInner publicCertificate);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deletePublicCertificateSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String publicCertificateName);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deletePublicCertificateSlotAsync(
        String resourceGroupName, String name, String slot, String publicCertificateName);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param publicCertificateName Public certificate name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deletePublicCertificateSlotWithResponse(
        String resourceGroupName, String name, String slot, String publicCertificateName, Context context);

    /**
     * Deletes a hostname binding for an app.
     *
     * <p>Description for Deletes a hostname binding for an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the binding for the
     *     production slot.
     * @param publicCertificateName Public certificate name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deletePublicCertificateSlot(String resourceGroupName, String name, String slot, String publicCertificateName);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing profile for
     *     the production slot.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<BinaryData>> listPublishingProfileXmlWithSecretsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, CsmPublishingProfileOptions publishingProfileOptions);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing profile for
     *     the production slot.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<BinaryData> listPublishingProfileXmlWithSecretsSlotAsync(
        String resourceGroupName, String name, String slot, CsmPublishingProfileOptions publishingProfileOptions);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing profile for
     *     the production slot.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 body along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<BinaryData> listPublishingProfileXmlWithSecretsSlotWithResponse(
        String resourceGroupName,
        String name,
        String slot,
        CsmPublishingProfileOptions publishingProfileOptions,
        Context context);

    /**
     * Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the publishing profile for an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the publishing profile for
     *     the production slot.
     * @param publishingProfileOptions Specifies publishingProfileOptions for publishing profile. For example, use
     *     {"format": "FileZilla3"} to get a FileZilla publishing profile.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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)
    BinaryData listPublishingProfileXmlWithSecretsSlot(
        String resourceGroupName, String name, String slot, CsmPublishingProfileOptions publishingProfileOptions);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API resets configuration settings for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> resetSlotConfigurationSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API resets configuration settings for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> resetSlotConfigurationSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API resets configuration settings for
     *     the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> resetSlotConfigurationSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Resets the configuration settings of the current slot if they were previously modified by calling the API with
     * POST.
     *
     * <p>Description for Resets the configuration settings of the current slot if they were previously modified by
     * calling the API with POST.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API resets configuration settings for
     *     the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 resetSlotConfigurationSlot(String resourceGroupName, String name, String slot);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restart the production slot.
     * @param softRestart Specify true to apply the configuration settings and restarts the app only if necessary. By
     *     default, the API always restarts and reprovisions the app.
     * @param synchronous Specify true to block until the app is restarted. By default, it is set to false, and the API
     *     responds immediately (asynchronous).
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> restartSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, Boolean softRestart, Boolean synchronous);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restart the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restartSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restart the production slot.
     * @param softRestart Specify true to apply the configuration settings and restarts the app only if necessary. By
     *     default, the API always restarts and reprovisions the app.
     * @param synchronous Specify true to block until the app is restarted. By default, it is set to false, and the API
     *     responds immediately (asynchronous).
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> restartSlotWithResponse(
        String resourceGroupName, String name, String slot, Boolean softRestart, Boolean synchronous, Context context);

    /**
     * Restarts an app (or deployment slot, if specified).
     *
     * <p>Description for Restarts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restart the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restartSlot(String resourceGroupName, String name, String slot);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreFromBackupBlobSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreFromBackupBlobSlotAsync(
        String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromBackupBlobSlot(
        String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromBackupBlobSlot(
        String resourceGroupName, String name, String slot, RestoreRequestInner request, Context context);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreFromBackupBlobSlotAsync(
        String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromBackupBlobSlot(String resourceGroupName, String name, String slot, RestoreRequestInner request);

    /**
     * Restores an app from a backup blob in Azure Storage.
     *
     * <p>Description for Restores an app from a backup blob in Azure Storage.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will restore a backup of the
     *     production slot.
     * @param request Information on restore request .
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromBackupBlobSlot(
        String resourceGroupName, String name, String slot, RestoreRequestInner request, Context context);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreFromDeletedAppSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreFromDeletedAppSlotAsync(
        String resourceGroupName, String name, String slot, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromDeletedAppSlot(
        String resourceGroupName, String name, String slot, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Deleted web app restore information.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreFromDeletedAppSlot(
        String resourceGroupName, String name, String slot, DeletedAppRestoreRequest restoreRequest, Context context);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreFromDeletedAppSlotAsync(
        String resourceGroupName, String name, String slot, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Deleted web app restore information.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromDeletedAppSlot(
        String resourceGroupName, String name, String slot, DeletedAppRestoreRequest restoreRequest);

    /**
     * Restores a deleted web app to this web app.
     *
     * <p>Description for Restores a deleted web app to this web app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Deleted web app restore information.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreFromDeletedAppSlot(
        String resourceGroupName, String name, String slot, DeletedAppRestoreRequest restoreRequest, Context context);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> restoreSnapshotSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginRestoreSnapshotSlotAsync(
        String resourceGroupName, String name, String slot, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreSnapshotSlot(
        String resourceGroupName, String name, String slot, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginRestoreSnapshotSlot(
        String resourceGroupName, String name, String slot, SnapshotRestoreRequest restoreRequest, Context context);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> restoreSnapshotSlotAsync(
        String resourceGroupName, String name, String slot, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreSnapshotSlot(String resourceGroupName, String name, String slot, SnapshotRestoreRequest restoreRequest);

    /**
     * Restores a web app from a snapshot.
     *
     * <p>Description for Restores a web app from a snapshot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param restoreRequest Snapshot restore settings. Snapshot information can be obtained by calling GetDeletedSites
     *     or GetSiteSnapshots API.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 restoreSnapshotSlot(
        String resourceGroupName, String name, String slot, SnapshotRestoreRequest restoreRequest, Context context);

    /**
     * Get list of siteextensions for a web site, or a deployment slot.
     *
     * <p>Description for Get list of siteextensions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu site extension information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SiteExtensionInfoInner> listSiteExtensionsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Get list of siteextensions for a web site, or a deployment slot.
     *
     * <p>Description for Get list of siteextensions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu site extension information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteExtensionInfoInner> listSiteExtensionsSlot(String resourceGroupName, String name, String slot);

    /**
     * Get list of siteextensions for a web site, or a deployment slot.
     *
     * <p>Description for Get list of siteextensions for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu site extension information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SiteExtensionInfoInner> listSiteExtensionsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteExtensionInfoInner>> getSiteExtensionSlotWithResponseAsync(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteExtensionInfoInner> getSiteExtensionSlotAsync(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteExtensionInfoInner> getSiteExtensionSlotWithResponse(
        String resourceGroupName, String name, String siteExtensionId, String slot, Context context);

    /**
     * Get site extension information by its ID for a web site, or a deployment slot.
     *
     * <p>Description for Get site extension information by its ID for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteExtensionInfoInner getSiteExtensionSlot(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> installSiteExtensionSlotWithResponseAsync(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link PollerFlux} for polling of site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<SiteExtensionInfoInner>, SiteExtensionInfoInner> beginInstallSiteExtensionSlotAsync(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteExtensionInfoInner>, SiteExtensionInfoInner> beginInstallSiteExtensionSlot(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link SyncPoller} for polling of site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteExtensionInfoInner>, SiteExtensionInfoInner> beginInstallSiteExtensionSlot(
        String resourceGroupName, String name, String siteExtensionId, String slot, Context context);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteExtensionInfoInner> installSiteExtensionSlotAsync(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteExtensionInfoInner installSiteExtensionSlot(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Install site extension on a web site, or a deployment slot.
     *
     * <p>Description for Install site extension on a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 429.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return site Extension Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteExtensionInfoInner installSiteExtensionSlot(
        String resourceGroupName, String name, String siteExtensionId, String slot, Context context);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteSiteExtensionSlotWithResponseAsync(
        String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteSiteExtensionSlotAsync(String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteSiteExtensionSlotWithResponse(
        String resourceGroupName, String name, String siteExtensionId, String slot, Context context);

    /**
     * Remove a site extension from a web site, or a deployment slot.
     *
     * <p>Description for Remove a site extension from a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param siteExtensionId Site extension name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteSiteExtensionSlot(String resourceGroupName, String name, String siteExtensionId, String slot);

    /**
     * Get the difference in configuration settings between two web app slots.
     *
     * <p>Description for Get the difference in configuration settings between two web app slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of slot differences as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SlotDifferenceInner> listSlotDifferencesSlotAsync(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Get the difference in configuration settings between two web app slots.
     *
     * <p>Description for Get the difference in configuration settings between two web app slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of slot differences as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SlotDifferenceInner> listSlotDifferencesSlot(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Get the difference in configuration settings between two web app slots.
     *
     * <p>Description for Get the difference in configuration settings between two web app slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of slot differences as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SlotDifferenceInner> listSlotDifferencesSlot(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> swapSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginSwapSlotAsync(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginSwapSlot(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginSwapSlot(
        String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> swapSlotAsync(String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 swapSlot(String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the source slot. If a slot is not specified, the production slot is used as the source slot.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 swapSlot(String resourceGroupName, String name, String slot, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Returns all Snapshots to the user.
     *
     * <p>Description for Returns all Snapshots to the user.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param slot Website Slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SnapshotInner> listSnapshotsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Returns all Snapshots to the user.
     *
     * <p>Description for Returns all Snapshots to the user.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param slot Website Slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshotsSlot(String resourceGroupName, String name, String slot);

    /**
     * Returns all Snapshots to the user.
     *
     * <p>Description for Returns all Snapshots to the user.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param slot Website Slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshotsSlot(String resourceGroupName, String name, String slot, Context context);

    /**
     * Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * <p>Description for Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param slot Website Slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SnapshotInner> listSnapshotsFromDRSecondarySlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * <p>Description for Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param slot Website Slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshotsFromDRSecondarySlot(String resourceGroupName, String name, String slot);

    /**
     * Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * <p>Description for Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param slot Website Slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshotsFromDRSecondarySlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the source control
     *     configuration for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteSourceControlInner>> getSourceControlSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the source control
     *     configuration for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteSourceControlInner> getSourceControlSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the source control
     *     configuration for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteSourceControlInner> getSourceControlSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the source control
     *     configuration for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner getSourceControlSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createOrUpdateSourceControlSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<SiteSourceControlInner>, SiteSourceControlInner> beginCreateOrUpdateSourceControlSlotAsync(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteSourceControlInner>, SiteSourceControlInner> beginCreateOrUpdateSourceControlSlot(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteSourceControlInner>, SiteSourceControlInner> beginCreateOrUpdateSourceControlSlot(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl, Context context);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteSourceControlInner> createOrUpdateSourceControlSlotAsync(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner createOrUpdateSourceControlSlot(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner createOrUpdateSourceControlSlot(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl, Context context);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the source control
     *     configuration for the production slot.
     * @param additionalFlags The additionalFlags parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteSourceControlSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String additionalFlags);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the source control
     *     configuration for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteSourceControlSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the source control
     *     configuration for the production slot.
     * @param additionalFlags The additionalFlags parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteSourceControlSlotWithResponse(
        String resourceGroupName, String name, String slot, String additionalFlags, Context context);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the source control
     *     configuration for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteSourceControlSlot(String resourceGroupName, String name, String slot);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteSourceControlInner>> updateSourceControlSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteSourceControlInner> updateSourceControlSlotAsync(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteSourceControlInner> updateSourceControlSlotWithResponse(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl, Context context);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will update the source control
     *     configuration for the production slot.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner updateSourceControlSlot(
        String resourceGroupName, String name, String slot, SiteSourceControlInner siteSourceControl);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will start the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> startSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will start the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> startSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will start the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> startSlotWithResponse(String resourceGroupName, String name, String slot, Context context);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will start the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 startSlot(String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> startNetworkTraceSlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartNetworkTraceSlotAsync(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartNetworkTraceSlotAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartNetworkTraceSlot(
        String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartNetworkTraceSlot(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startNetworkTraceSlotAsync(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startNetworkTraceSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startNetworkTraceSlot(String resourceGroupName, String name, String slot);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startNetworkTraceSlot(
        String resourceGroupName,
        String name,
        String slot,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will stop the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will stop the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will stop the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> stopSlotWithResponse(String resourceGroupName, String name, String slot, Context context);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will stop the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 stopSlot(String resourceGroupName, String name, String slot);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopNetworkTraceSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopNetworkTraceSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> stopNetworkTraceSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param slot The name of the slot for this web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 stopNetworkTraceSlot(String resourceGroupName, String name, String slot);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> syncRepositorySlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> syncRepositorySlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> syncRepositorySlotWithResponse(String resourceGroupName, String name, String slot, Context context);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param slot Name of web app slot. If not specified then will default to production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 syncRepositorySlot(String resourceGroupName, String name, String slot);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> syncFunctionTriggersSlotWithResponseAsync(String resourceGroupName, String name, String slot);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> syncFunctionTriggersSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> syncFunctionTriggersSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 syncFunctionTriggersSlot(String resourceGroupName, String name, String slot);

    /**
     * List triggered web jobs for an app, or a deployment slot.
     *
     * <p>Description for List triggered web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<TriggeredWebJobInner> listTriggeredWebJobsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * List triggered web jobs for an app, or a deployment slot.
     *
     * <p>Description for List triggered web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredWebJobInner> listTriggeredWebJobsSlot(String resourceGroupName, String name, String slot);

    /**
     * List triggered web jobs for an app, or a deployment slot.
     *
     * <p>Description for List triggered web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes a deployment for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredWebJobInner> listTriggeredWebJobsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<TriggeredWebJobInner>> getTriggeredWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<TriggeredWebJobInner> getTriggeredWebJobSlotAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<TriggeredWebJobInner> getTriggeredWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    TriggeredWebJobInner getTriggeredWebJobSlot(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes web job for the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteTriggeredWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes web job for the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteTriggeredWebJobSlotAsync(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes web job for the production
     *     slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteTriggeredWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API deletes web job for the production
     *     slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteTriggeredWebJobSlot(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * List a triggered web job's history for an app, or a deployment slot.
     *
     * <p>Description for List a triggered web job's history for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<TriggeredJobHistoryInner> listTriggeredWebJobHistorySlotAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * List a triggered web job's history for an app, or a deployment slot.
     *
     * <p>Description for List a triggered web job's history for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredJobHistoryInner> listTriggeredWebJobHistorySlot(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * List a triggered web job's history for an app, or a deployment slot.
     *
     * <p>Description for List a triggered web job's history for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredJobHistoryInner> listTriggeredWebJobHistorySlot(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<TriggeredJobHistoryInner>> getTriggeredWebJobHistorySlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String id, String slot);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<TriggeredJobHistoryInner> getTriggeredWebJobHistorySlotAsync(
        String resourceGroupName, String name, String webJobName, String id, String slot);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<TriggeredJobHistoryInner> getTriggeredWebJobHistorySlotWithResponse(
        String resourceGroupName, String name, String webJobName, String id, String slot, Context context);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    TriggeredJobHistoryInner getTriggeredWebJobHistorySlot(
        String resourceGroupName, String name, String webJobName, String id, String slot);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> runTriggeredWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> runTriggeredWebJobSlotAsync(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> runTriggeredWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API uses the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void runTriggeredWebJobSlot(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get quota information of the
     *     production slot.
     * @param filter Return only information specified in the filter (using OData syntax). For example:
     *     $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq 2014-01-01T00:00:00Z and
     *     endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmUsageQuotaInner> listUsagesSlotAsync(
        String resourceGroupName, String name, String slot, String filter);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get quota information of the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmUsageQuotaInner> listUsagesSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get quota information of the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmUsageQuotaInner> listUsagesSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get quota information of the
     *     production slot.
     * @param filter Return only information specified in the filter (using OData syntax). For example:
     *     $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq 2014-01-01T00:00:00Z and
     *     endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmUsageQuotaInner> listUsagesSlot(
        String resourceGroupName, String name, String slot, String filter, Context context);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get virtual network connections
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<List<VnetInfoResourceInner>>> listVnetConnectionsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get virtual network connections
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<List<VnetInfoResourceInner>> listVnetConnectionsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get virtual network connections
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<List<VnetInfoResourceInner>> listVnetConnectionsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get virtual network connections
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    List<VnetInfoResourceInner> listVnetConnectionsSlot(String resourceGroupName, String name, String slot);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named virtual network
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetInfoResourceInner>> getVnetConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String vnetName, String slot);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named virtual network
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetInfoResourceInner> getVnetConnectionSlotAsync(
        String resourceGroupName, String name, String vnetName, String slot);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named virtual network
     *     for the production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetInfoResourceInner> getVnetConnectionSlotWithResponse(
        String resourceGroupName, String name, String vnetName, String slot, Context context);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get the named virtual network
     *     for the production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetInfoResourceInner getVnetConnectionSlot(String resourceGroupName, String name, String vnetName, String slot);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetInfoResourceInner>> createOrUpdateVnetConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String vnetName, String slot, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetInfoResourceInner> createOrUpdateVnetConnectionSlotAsync(
        String resourceGroupName, String name, String vnetName, String slot, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetInfoResourceInner> createOrUpdateVnetConnectionSlotWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        String slot,
        VnetInfoResourceInner connectionEnvelope,
        Context context);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetInfoResourceInner createOrUpdateVnetConnectionSlot(
        String resourceGroupName, String name, String vnetName, String slot, VnetInfoResourceInner connectionEnvelope);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteVnetConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String vnetName, String slot);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteVnetConnectionSlotAsync(String resourceGroupName, String name, String vnetName, String slot);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteVnetConnectionSlotWithResponse(
        String resourceGroupName, String name, String vnetName, String slot, Context context);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will delete the connection for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteVnetConnectionSlot(String resourceGroupName, String name, String vnetName, String slot);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetInfoResourceInner>> updateVnetConnectionSlotWithResponseAsync(
        String resourceGroupName, String name, String vnetName, String slot, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetInfoResourceInner> updateVnetConnectionSlotAsync(
        String resourceGroupName, String name, String vnetName, String slot, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetInfoResourceInner> updateVnetConnectionSlotWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        String slot,
        VnetInfoResourceInner connectionEnvelope,
        Context context);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update connections for
     *     the production slot.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetInfoResourceInner updateVnetConnectionSlot(
        String resourceGroupName, String name, String vnetName, String slot, VnetInfoResourceInner connectionEnvelope);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetGatewayInner>> getVnetConnectionGatewaySlotWithResponseAsync(
        String resourceGroupName, String name, String vnetName, String gatewayName, String slot);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetGatewayInner> getVnetConnectionGatewaySlotAsync(
        String resourceGroupName, String name, String vnetName, String gatewayName, String slot);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetGatewayInner> getVnetConnectionGatewaySlotWithResponse(
        String resourceGroupName, String name, String vnetName, String gatewayName, String slot, Context context);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will get a gateway for the
     *     production slot's Virtual Network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetGatewayInner getVnetConnectionGatewaySlot(
        String resourceGroupName, String name, String vnetName, String gatewayName, String slot);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetGatewayInner>> createOrUpdateVnetConnectionGatewaySlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetGatewayInner> createOrUpdateVnetConnectionGatewaySlotAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetGatewayInner> createOrUpdateVnetConnectionGatewaySlotWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope,
        Context context);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetGatewayInner createOrUpdateVnetConnectionGatewaySlot(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetGatewayInner>> updateVnetConnectionGatewaySlotWithResponseAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetGatewayInner> updateVnetConnectionGatewaySlotAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetGatewayInner> updateVnetConnectionGatewaySlotWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope,
        Context context);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param slot Name of the deployment slot. If a slot is not specified, the API will add or update a gateway for the
     *     production slot's Virtual Network.
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetGatewayInner updateVnetConnectionGatewaySlot(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        String slot,
        VnetGatewayInner connectionEnvelope);

    /**
     * List webjobs for an app, or a deployment slot.
     *
     * <p>Description for List webjobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<WebJobInner> listWebJobsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * List webjobs for an app, or a deployment slot.
     *
     * <p>Description for List webjobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu web job information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebJobInner> listWebJobsSlot(String resourceGroupName, String name, String slot);

    /**
     * List webjobs for an app, or a deployment slot.
     *
     * <p>Description for List webjobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu web job information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebJobInner> listWebJobsSlot(String resourceGroupName, String name, String slot, Context context);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WebJobInner>> getWebJobSlotWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WebJobInner> getWebJobSlotAsync(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WebJobInner> getWebJobSlotWithResponse(
        String resourceGroupName, String name, String webJobName, String slot, Context context);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @param slot Name of the deployment slot. If a slot is not specified, the API returns deployments for the
     *     production slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    WebJobInner getWebJobSlot(String resourceGroupName, String name, String webJobName, String slot);

    /**
     * Get the difference in configuration settings between two web app slots.
     *
     * <p>Description for Get the difference in configuration settings between two web app slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of slot differences as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SlotDifferenceInner> listSlotDifferencesFromProductionAsync(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Get the difference in configuration settings between two web app slots.
     *
     * <p>Description for Get the difference in configuration settings between two web app slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of slot differences as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SlotDifferenceInner> listSlotDifferencesFromProduction(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Get the difference in configuration settings between two web app slots.
     *
     * <p>Description for Get the difference in configuration settings between two web app slots.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of slot differences as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SlotDifferenceInner> listSlotDifferencesFromProduction(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> swapSlotWithProductionWithResponseAsync(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of long-running operation.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Void>, Void> beginSwapSlotWithProductionAsync(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginSwapSlotWithProduction(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<PollResult<Void>, Void> beginSwapSlotWithProduction(
        String resourceGroupName, String name, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> swapSlotWithProductionAsync(String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 swapSlotWithProduction(String resourceGroupName, String name, CsmSlotEntity slotSwapEntity);

    /**
     * Swaps two deployment slots of an app.
     *
     * <p>Description for Swaps two deployment slots of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param slotSwapEntity JSON object that contains the target slot name. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 swapSlotWithProduction(String resourceGroupName, String name, CsmSlotEntity slotSwapEntity, Context context);

    /**
     * Returns all Snapshots to the user.
     *
     * <p>Description for Returns all Snapshots to the user.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SnapshotInner> listSnapshotsAsync(String resourceGroupName, String name);

    /**
     * Returns all Snapshots to the user.
     *
     * <p>Description for Returns all Snapshots to the user.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshots(String resourceGroupName, String name);

    /**
     * Returns all Snapshots to the user.
     *
     * <p>Description for Returns all Snapshots to the user.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshots(String resourceGroupName, String name, Context context);

    /**
     * Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * <p>Description for Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<SnapshotInner> listSnapshotsFromDRSecondaryAsync(String resourceGroupName, String name);

    /**
     * Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * <p>Description for Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshotsFromDRSecondary(String resourceGroupName, String name);

    /**
     * Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * <p>Description for Returns all Snapshots to the user from DRSecondary endpoint.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Website Name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of snapshots which can be used to revert an app to a previous time as paginated response with
     *     {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<SnapshotInner> listSnapshotsFromDRSecondary(String resourceGroupName, String name, Context context);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteSourceControlInner>> getSourceControlWithResponseAsync(String resourceGroupName, String name);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteSourceControlInner> getSourceControlAsync(String resourceGroupName, String name);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteSourceControlInner> getSourceControlWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the source control configuration of an app.
     *
     * <p>Description for Gets the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner getSourceControl(String resourceGroupName, String name);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> createOrUpdateSourceControlWithResponseAsync(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<SiteSourceControlInner>, SiteSourceControlInner> beginCreateOrUpdateSourceControlAsync(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteSourceControlInner>, SiteSourceControlInner> beginCreateOrUpdateSourceControl(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<SiteSourceControlInner>, SiteSourceControlInner> beginCreateOrUpdateSourceControl(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl, Context context);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteSourceControlInner> createOrUpdateSourceControlAsync(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner createOrUpdateSourceControl(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner createOrUpdateSourceControl(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl, Context context);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param additionalFlags The additionalFlags parameter.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteSourceControlWithResponseAsync(
        String resourceGroupName, String name, String additionalFlags);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteSourceControlAsync(String resourceGroupName, String name);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param additionalFlags The additionalFlags parameter.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteSourceControlWithResponse(
        String resourceGroupName, String name, String additionalFlags, Context context);

    /**
     * Deletes the source control configuration of an app.
     *
     * <p>Description for Deletes the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteSourceControl(String resourceGroupName, String name);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<SiteSourceControlInner>> updateSourceControlWithResponseAsync(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<SiteSourceControlInner> updateSourceControlAsync(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<SiteSourceControlInner> updateSourceControlWithResponse(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl, Context context);

    /**
     * Updates the source control configuration of an app.
     *
     * <p>Description for Updates the source control configuration of an app.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param siteSourceControl JSON representation of a SiteSourceControl object. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return source control configuration for an app.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    SiteSourceControlInner updateSourceControl(
        String resourceGroupName, String name, SiteSourceControlInner siteSourceControl);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> startWithResponseAsync(String resourceGroupName, String name);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> startAsync(String resourceGroupName, String name);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> startWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Starts an app (or deployment slot, if specified).
     *
     * <p>Description for Starts an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 start(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Flux<ByteBuffer>>> startNetworkTraceWithResponseAsync(
        String resourceGroupName, String name, Integer durationInSeconds, Integer maxFrameLength, String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartNetworkTraceAsync(
        String resourceGroupName, String name, Integer durationInSeconds, Integer maxFrameLength, String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 PollerFlux} for polling of array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    PollerFlux<PollResult<Object>, Object> beginStartNetworkTraceAsync(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartNetworkTrace(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.LONG_RUNNING_OPERATION)
    SyncPoller<PollResult<Object>, Object> beginStartNetworkTrace(
        String resourceGroupName,
        String name,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startNetworkTraceAsync(
        String resourceGroupName, String name, Integer durationInSeconds, Integer maxFrameLength, String sasUrl);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Object> startNetworkTraceAsync(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startNetworkTrace(String resourceGroupName, String name);

    /**
     * Start capturing network packets for the site.
     *
     * <p>Description for Start capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param durationInSeconds The duration to keep capturing in seconds.
     * @param maxFrameLength The maximum frame length in bytes (Optional).
     * @param sasUrl The Blob URL to store capture file.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of NetworkTrace.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Object startNetworkTrace(
        String resourceGroupName,
        String name,
        Integer durationInSeconds,
        Integer maxFrameLength,
        String sasUrl,
        Context context);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopWithResponseAsync(String resourceGroupName, String name);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopAsync(String resourceGroupName, String name);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> stopWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Stops an app (or deployment slot, if specified).
     *
     * <p>Description for Stops an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 stop(String resourceGroupName, String name);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> stopNetworkTraceWithResponseAsync(String resourceGroupName, String name);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> stopNetworkTraceAsync(String resourceGroupName, String name);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> stopNetworkTraceWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Stop ongoing capturing network packets for the site.
     *
     * <p>Description for Stop ongoing capturing network packets for the site.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name The name of the web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 stopNetworkTrace(String resourceGroupName, String name);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> syncRepositoryWithResponseAsync(String resourceGroupName, String name);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> syncRepositoryAsync(String resourceGroupName, String name);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> syncRepositoryWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Sync web app repository.
     *
     * <p>Description for Sync web app repository.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of web app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 syncRepository(String resourceGroupName, String name);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> syncFunctionTriggersWithResponseAsync(String resourceGroupName, String name);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> syncFunctionTriggersAsync(String resourceGroupName, String name);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> syncFunctionTriggersWithResponse(String resourceGroupName, String name, Context context);

    /**
     * Syncs function trigger metadata to the management database
     *
     * <p>Description for Syncs function trigger metadata to the management database.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 syncFunctionTriggers(String resourceGroupName, String name);

    /**
     * List triggered web jobs for an app, or a deployment slot.
     *
     * <p>Description for List triggered web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<TriggeredWebJobInner> listTriggeredWebJobsAsync(String resourceGroupName, String name);

    /**
     * List triggered web jobs for an app, or a deployment slot.
     *
     * <p>Description for List triggered web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredWebJobInner> listTriggeredWebJobs(String resourceGroupName, String name);

    /**
     * List triggered web jobs for an app, or a deployment slot.
     *
     * <p>Description for List triggered web jobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredWebJobInner> listTriggeredWebJobs(String resourceGroupName, String name, Context context);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<TriggeredWebJobInner>> getTriggeredWebJobWithResponseAsync(
        String resourceGroupName, String name, String webJobName);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<TriggeredWebJobInner> getTriggeredWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<TriggeredWebJobInner> getTriggeredWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Gets a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    TriggeredWebJobInner getTriggeredWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteTriggeredWebJobWithResponseAsync(
        String resourceGroupName, String name, String webJobName);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteTriggeredWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deleteTriggeredWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * <p>Description for Delete a triggered web job by its ID for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deleteTriggeredWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * List a triggered web job's history for an app, or a deployment slot.
     *
     * <p>Description for List a triggered web job's history for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<TriggeredJobHistoryInner> listTriggeredWebJobHistoryAsync(
        String resourceGroupName, String name, String webJobName);

    /**
     * List a triggered web job's history for an app, or a deployment slot.
     *
     * <p>Description for List a triggered web job's history for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredJobHistoryInner> listTriggeredWebJobHistory(
        String resourceGroupName, String name, String webJobName);

    /**
     * List a triggered web job's history for an app, or a deployment slot.
     *
     * <p>Description for List a triggered web job's history for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu continuous web job information elements as paginated response with {@link
     *     PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<TriggeredJobHistoryInner> listTriggeredWebJobHistory(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<TriggeredJobHistoryInner>> getTriggeredWebJobHistoryWithResponseAsync(
        String resourceGroupName, String name, String webJobName, String id);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<TriggeredJobHistoryInner> getTriggeredWebJobHistoryAsync(
        String resourceGroupName, String name, String webJobName, String id);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<TriggeredJobHistoryInner> getTriggeredWebJobHistoryWithResponse(
        String resourceGroupName, String name, String webJobName, String id, Context context);

    /**
     * Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * <p>Description for Gets a triggered web job's history by its ID for an app, , or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param id History ID.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return triggered Web Job History.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    TriggeredJobHistoryInner getTriggeredWebJobHistory(
        String resourceGroupName, String name, String webJobName, String id);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> runTriggeredWebJobWithResponseAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> runTriggeredWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> runTriggeredWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Run a triggered web job for an app, or a deployment slot.
     *
     * <p>Description for Run a triggered web job for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of Web Job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void runTriggeredWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param filter Return only information specified in the filter (using OData syntax). For example:
     *     $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq 2014-01-01T00:00:00Z and
     *     endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmUsageQuotaInner> listUsagesAsync(String resourceGroupName, String name, String filter);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<CsmUsageQuotaInner> listUsagesAsync(String resourceGroupName, String name);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmUsageQuotaInner> listUsages(String resourceGroupName, String name);

    /**
     * Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * <p>Description for Gets the quota usage information of an app (or deployment slot, if specified).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param filter Return only information specified in the filter (using OData syntax). For example:
     *     $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq 2014-01-01T00:00:00Z and
     *     endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of CSM usage quotas as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<CsmUsageQuotaInner> listUsages(String resourceGroupName, String name, String filter, Context context);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<List<VnetInfoResourceInner>>> listVnetConnectionsWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<List<VnetInfoResourceInner>> listVnetConnectionsAsync(String resourceGroupName, String name);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<List<VnetInfoResourceInner>> listVnetConnectionsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * <p>Description for Gets the virtual networks the app (or deployment slot) is connected to.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return array of VnetInfoResource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    List<VnetInfoResourceInner> listVnetConnections(String resourceGroupName, String name);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetInfoResourceInner>> getVnetConnectionWithResponseAsync(
        String resourceGroupName, String name, String vnetName);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetInfoResourceInner> getVnetConnectionAsync(String resourceGroupName, String name, String vnetName);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetInfoResourceInner> getVnetConnectionWithResponse(
        String resourceGroupName, String name, String vnetName, Context context);

    /**
     * Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * <p>Description for Gets a virtual network the app (or deployment slot) is connected to by name.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetInfoResourceInner getVnetConnection(String resourceGroupName, String name, String vnetName);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetInfoResourceInner>> createOrUpdateVnetConnectionWithResponseAsync(
        String resourceGroupName, String name, String vnetName, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetInfoResourceInner> createOrUpdateVnetConnectionAsync(
        String resourceGroupName, String name, String vnetName, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetInfoResourceInner> createOrUpdateVnetConnectionWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        VnetInfoResourceInner connectionEnvelope,
        Context context);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetInfoResourceInner createOrUpdateVnetConnection(
        String resourceGroupName, String name, String vnetName, VnetInfoResourceInner connectionEnvelope);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deleteVnetConnectionWithResponseAsync(String resourceGroupName, String name, String vnetName);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deleteVnetConnectionAsync(String resourceGroupName, String name, String vnetName);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<Void> deleteVnetConnectionWithResponse(
        String resourceGroupName, String name, String vnetName, Context context);

    /**
     * Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * <p>Description for Deletes a connection from an app (or deployment slot to a named virtual network.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the virtual network.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    void deleteVnetConnection(String resourceGroupName, String name, String vnetName);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetInfoResourceInner>> updateVnetConnectionWithResponseAsync(
        String resourceGroupName, String name, String vnetName, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetInfoResourceInner> updateVnetConnectionAsync(
        String resourceGroupName, String name, String vnetName, VnetInfoResourceInner connectionEnvelope);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetInfoResourceInner> updateVnetConnectionWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        VnetInfoResourceInner connectionEnvelope,
        Context context);

    /**
     * Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties (PATCH).
     *
     * <p>Description for Adds a Virtual Network connection to an app or slot (PUT) or updates the connection properties
     * (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of an existing Virtual Network.
     * @param connectionEnvelope Properties of the Virtual Network connection. See example.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return virtual Network information ARM resource.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetInfoResourceInner updateVnetConnection(
        String resourceGroupName, String name, String vnetName, VnetInfoResourceInner connectionEnvelope);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetGatewayInner>> getVnetConnectionGatewayWithResponseAsync(
        String resourceGroupName, String name, String vnetName, String gatewayName);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetGatewayInner> getVnetConnectionGatewayAsync(
        String resourceGroupName, String name, String vnetName, String gatewayName);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetGatewayInner> getVnetConnectionGatewayWithResponse(
        String resourceGroupName, String name, String vnetName, String gatewayName, Context context);

    /**
     * Gets an app's Virtual Network gateway.
     *
     * <p>Description for Gets an app's Virtual Network gateway.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetGatewayInner getVnetConnectionGateway(
        String resourceGroupName, String name, String vnetName, String gatewayName);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetGatewayInner>> createOrUpdateVnetConnectionGatewayWithResponseAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetGatewayInner> createOrUpdateVnetConnectionGatewayAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetGatewayInner> createOrUpdateVnetConnectionGatewayWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope,
        Context context);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetGatewayInner createOrUpdateVnetConnectionGateway(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response} on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<VnetGatewayInner>> updateVnetConnectionGatewayWithResponseAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<VnetGatewayInner> updateVnetConnectionGatewayAsync(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<VnetGatewayInner> updateVnetConnectionGatewayWithResponse(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope,
        Context context);

    /**
     * Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * <p>Description for Adds a gateway to a connected Virtual Network (PUT) or updates it (PATCH).
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Name of the app.
     * @param vnetName Name of the Virtual Network.
     * @param gatewayName Name of the gateway. Currently, the only supported string is "primary".
     * @param connectionEnvelope The properties to update this gateway with.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return the Virtual Network gateway contract.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    VnetGatewayInner updateVnetConnectionGateway(
        String resourceGroupName,
        String name,
        String vnetName,
        String gatewayName,
        VnetGatewayInner connectionEnvelope);

    /**
     * List webjobs for an app, or a deployment slot.
     *
     * <p>Description for List webjobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu web job information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<WebJobInner> listWebJobsAsync(String resourceGroupName, String name);

    /**
     * List webjobs for an app, or a deployment slot.
     *
     * <p>Description for List webjobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu web job information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebJobInner> listWebJobs(String resourceGroupName, String name);

    /**
     * List webjobs for an app, or a deployment slot.
     *
     * <p>Description for List webjobs for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu web job information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WebJobInner> listWebJobs(String resourceGroupName, String name, Context context);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WebJobInner>> getWebJobWithResponseAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WebJobInner> getWebJobAsync(String resourceGroupName, String name, String webJobName);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WebJobInner> getWebJobWithResponse(
        String resourceGroupName, String name, String webJobName, Context context);

    /**
     * Get webjob information for an app, or a deployment slot.
     *
     * <p>Description for Get webjob information for an app, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param webJobName Name of the web job.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return web Job Information.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    WebJobInner getWebJob(String resourceGroupName, String name, String webJobName);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param workflowArtifacts Application settings and files of the workflow.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deployWorkflowArtifactsWithResponseAsync(
        String resourceGroupName, String name, WorkflowArtifacts workflowArtifacts);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deployWorkflowArtifactsAsync(String resourceGroupName, String name);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param workflowArtifacts Application settings and files of the workflow.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deployWorkflowArtifactsWithResponse(
        String resourceGroupName, String name, WorkflowArtifacts workflowArtifacts, Context context);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deployWorkflowArtifacts(String resourceGroupName, String name);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param workflowArtifacts Application settings and files of the workflow.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<Void>> deployWorkflowArtifactsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, WorkflowArtifacts workflowArtifacts);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return A {@link Mono} that completes when a successful response is received.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Void> deployWorkflowArtifactsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param workflowArtifacts Application settings and files of the workflow.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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<Void> deployWorkflowArtifactsSlotWithResponse(
        String resourceGroupName, String name, String slot, WorkflowArtifacts workflowArtifacts, Context context);

    /**
     * Creates the artifacts for web site, or a deployment slot.
     *
     * <p>Description for Creates the artifacts for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException 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 deployWorkflowArtifactsSlot(String resourceGroupName, String name, String slot);

    /**
     * List the workflows for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu workflow information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<WorkflowEnvelopeInner> listInstanceWorkflowsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * List the workflows for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu workflow information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WorkflowEnvelopeInner> listInstanceWorkflowsSlot(String resourceGroupName, String name, String slot);

    /**
     * List the workflows for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu workflow information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WorkflowEnvelopeInner> listInstanceWorkflowsSlot(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param workflowName Workflow name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot along with {@link Response} on
     *     successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WorkflowEnvelopeInner>> getInstanceWorkflowSlotWithResponseAsync(
        String resourceGroupName, String name, String slot, String workflowName);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param workflowName Workflow name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WorkflowEnvelopeInner> getInstanceWorkflowSlotAsync(
        String resourceGroupName, String name, String slot, String workflowName);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param workflowName Workflow name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WorkflowEnvelopeInner> getInstanceWorkflowSlotWithResponse(
        String resourceGroupName, String name, String slot, String workflowName, Context context);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param workflowName Workflow name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    WorkflowEnvelopeInner getInstanceWorkflowSlot(
        String resourceGroupName, String name, String slot, String workflowName);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WorkflowEnvelopeInner>> listWorkflowsConnectionsSlotWithResponseAsync(
        String resourceGroupName, String name, String slot);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WorkflowEnvelopeInner> listWorkflowsConnectionsSlotAsync(String resourceGroupName, String name, String slot);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WorkflowEnvelopeInner> listWorkflowsConnectionsSlotWithResponse(
        String resourceGroupName, String name, String slot, Context context);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param slot Name of the deployment slot.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    WorkflowEnvelopeInner listWorkflowsConnectionsSlot(String resourceGroupName, String name, String slot);

    /**
     * List the workflows for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu workflow information elements as paginated response with {@link PagedFlux}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedFlux<WorkflowEnvelopeInner> listWorkflowsAsync(String resourceGroupName, String name);

    /**
     * List the workflows for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu workflow information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WorkflowEnvelopeInner> listWorkflows(String resourceGroupName, String name);

    /**
     * List the workflows for a web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return collection of Kudu workflow information elements as paginated response with {@link PagedIterable}.
     */
    @ServiceMethod(returns = ReturnType.COLLECTION)
    PagedIterable<WorkflowEnvelopeInner> listWorkflows(String resourceGroupName, String name, Context context);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param workflowName Workflow name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot along with {@link Response} on
     *     successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WorkflowEnvelopeInner>> getWorkflowWithResponseAsync(
        String resourceGroupName, String name, String workflowName);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param workflowName Workflow name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot on successful completion of {@link
     *     Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WorkflowEnvelopeInner> getWorkflowAsync(String resourceGroupName, String name, String workflowName);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param workflowName Workflow name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WorkflowEnvelopeInner> getWorkflowWithResponse(
        String resourceGroupName, String name, String workflowName, Context context);

    /**
     * Get workflow information by its ID for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param workflowName Workflow name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws com.azure.core.management.exception.ManagementException thrown if the request is rejected by server on
     *     status code 404.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow information by its ID for web site, or a deployment slot.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    WorkflowEnvelopeInner getWorkflow(String resourceGroupName, String name, String workflowName);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition along with {@link Response} on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<Response<WorkflowEnvelopeInner>> listWorkflowsConnectionsWithResponseAsync(
        String resourceGroupName, String name);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition on successful completion of {@link Mono}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Mono<WorkflowEnvelopeInner> listWorkflowsConnectionsAsync(String resourceGroupName, String name);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @param context The context to associate with this operation.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition along with {@link Response}.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    Response<WorkflowEnvelopeInner> listWorkflowsConnectionsWithResponse(
        String resourceGroupName, String name, Context context);

    /**
     * Lists logic app's connections for web site, or a deployment slot.
     *
     * @param resourceGroupName Name of the resource group to which the resource belongs.
     * @param name Site name.
     * @throws IllegalArgumentException thrown if parameters fail the validation.
     * @throws com.azure.resourcemanager.appservice.models.DefaultErrorResponseErrorException thrown if the request is
     *     rejected by server.
     * @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent.
     * @return workflow properties definition.
     */
    @ServiceMethod(returns = ReturnType.SINGLE)
    WorkflowEnvelopeInner listWorkflowsConnections(String resourceGroupName, String name);
}
