/*
 * Copyright (c) Microsoft Corporation.
 * Licensed under the MIT License.
 *
 * Code generated by Microsoft (R) AutoRest Code Generator.
 * Changes may cause incorrect behavior and will be lost if the code is regenerated.
 */

import { PagedAsyncIterableIterator } from "@azure/core-paging";
import { SimplePollerLike, OperationState } from "@azure/core-lro";
import {
  Site,
  WebAppsListOptionalParams,
  WebAppsListByResourceGroupOptionalParams,
  BackupItem,
  WebAppsListBackupsOptionalParams,
  CsmPublishingCredentialsPoliciesEntity,
  WebAppsListBasicPublishingCredentialsPoliciesOptionalParams,
  SiteConfigResource,
  WebAppsListConfigurationsOptionalParams,
  ApiKVReference,
  WebAppsGetAppSettingsKeyVaultReferencesOptionalParams,
  WebAppsGetSiteConnectionStringKeyVaultReferencesOptionalParams,
  SiteConfigurationSnapshotInfo,
  WebAppsListConfigurationSnapshotInfoOptionalParams,
  ContinuousWebJob,
  WebAppsListContinuousWebJobsOptionalParams,
  CsmDeploymentStatus,
  WebAppsListProductionSiteDeploymentStatusesOptionalParams,
  Deployment,
  WebAppsListDeploymentsOptionalParams,
  Identifier,
  WebAppsListDomainOwnershipIdentifiersOptionalParams,
  FunctionEnvelope,
  WebAppsListFunctionsOptionalParams,
  HostNameBinding,
  WebAppsListHostNameBindingsOptionalParams,
  WebSiteInstanceStatus,
  WebAppsListInstanceIdentifiersOptionalParams,
  ProcessInfo,
  WebAppsListInstanceProcessesOptionalParams,
  ProcessModuleInfo,
  WebAppsListInstanceProcessModulesOptionalParams,
  ProcessThreadInfo,
  WebAppsListInstanceProcessThreadsOptionalParams,
  WebAppsListSiteBackupsOptionalParams,
  PerfMonResponse,
  WebAppsListPerfMonCountersOptionalParams,
  RemotePrivateEndpointConnectionARMResource,
  WebAppsGetPrivateEndpointConnectionListOptionalParams,
  WebAppsListProcessesOptionalParams,
  WebAppsListProcessModulesOptionalParams,
  WebAppsListProcessThreadsOptionalParams,
  PublicCertificate,
  WebAppsListPublicCertificatesOptionalParams,
  SiteExtensionInfo,
  WebAppsListSiteExtensionsOptionalParams,
  WebAppsListSlotsOptionalParams,
  WebAppsListBackupsSlotOptionalParams,
  WebAppsListBasicPublishingCredentialsPoliciesSlotOptionalParams,
  WebAppsListConfigurationsSlotOptionalParams,
  WebAppsGetAppSettingsKeyVaultReferencesSlotOptionalParams,
  WebAppsGetSiteConnectionStringKeyVaultReferencesSlotOptionalParams,
  WebAppsListConfigurationSnapshotInfoSlotOptionalParams,
  WebAppsListContinuousWebJobsSlotOptionalParams,
  WebAppsListSlotSiteDeploymentStatusesSlotOptionalParams,
  WebAppsListDeploymentsSlotOptionalParams,
  WebAppsListDomainOwnershipIdentifiersSlotOptionalParams,
  WebAppsListInstanceFunctionsSlotOptionalParams,
  WebAppsListHostNameBindingsSlotOptionalParams,
  WebAppsListInstanceIdentifiersSlotOptionalParams,
  WebAppsListInstanceProcessesSlotOptionalParams,
  WebAppsListInstanceProcessModulesSlotOptionalParams,
  WebAppsListInstanceProcessThreadsSlotOptionalParams,
  WebAppsListSiteBackupsSlotOptionalParams,
  WebAppsListPerfMonCountersSlotOptionalParams,
  WebAppsGetPrivateEndpointConnectionListSlotOptionalParams,
  WebAppsListProcessesSlotOptionalParams,
  WebAppsListProcessModulesSlotOptionalParams,
  WebAppsListProcessThreadsSlotOptionalParams,
  WebAppsListPublicCertificatesSlotOptionalParams,
  WebAppsListSiteExtensionsSlotOptionalParams,
  SlotDifference,
  CsmSlotEntity,
  WebAppsListSlotDifferencesSlotOptionalParams,
  Snapshot,
  WebAppsListSnapshotsSlotOptionalParams,
  WebAppsListSnapshotsFromDRSecondarySlotOptionalParams,
  TriggeredWebJob,
  WebAppsListTriggeredWebJobsSlotOptionalParams,
  TriggeredJobHistory,
  WebAppsListTriggeredWebJobHistorySlotOptionalParams,
  CsmUsageQuota,
  WebAppsListUsagesSlotOptionalParams,
  WebJob,
  WebAppsListWebJobsSlotOptionalParams,
  WebAppsListSlotDifferencesFromProductionOptionalParams,
  WebAppsListSnapshotsOptionalParams,
  WebAppsListSnapshotsFromDRSecondaryOptionalParams,
  WebAppsListTriggeredWebJobsOptionalParams,
  WebAppsListTriggeredWebJobHistoryOptionalParams,
  WebAppsListUsagesOptionalParams,
  WebAppsListWebJobsOptionalParams,
  WorkflowEnvelope,
  WebAppsListInstanceWorkflowsSlotOptionalParams,
  WebAppsListWorkflowsOptionalParams,
  WebAppsGetOptionalParams,
  WebAppsGetResponse,
  WebAppsCreateOrUpdateOptionalParams,
  WebAppsCreateOrUpdateResponse,
  WebAppsDeleteOptionalParams,
  SitePatchResource,
  WebAppsUpdateOptionalParams,
  WebAppsUpdateResponse,
  WebAppsAnalyzeCustomHostnameOptionalParams,
  WebAppsAnalyzeCustomHostnameResponse,
  WebAppsApplySlotConfigToProductionOptionalParams,
  BackupRequest,
  WebAppsBackupOptionalParams,
  WebAppsBackupResponse,
  WebAppsGetBackupStatusOptionalParams,
  WebAppsGetBackupStatusResponse,
  WebAppsDeleteBackupOptionalParams,
  WebAppsListBackupStatusSecretsOptionalParams,
  WebAppsListBackupStatusSecretsResponse,
  RestoreRequest,
  WebAppsRestoreOptionalParams,
  WebAppsGetFtpAllowedOptionalParams,
  WebAppsGetFtpAllowedResponse,
  WebAppsUpdateFtpAllowedOptionalParams,
  WebAppsUpdateFtpAllowedResponse,
  WebAppsGetScmAllowedOptionalParams,
  WebAppsGetScmAllowedResponse,
  WebAppsUpdateScmAllowedOptionalParams,
  WebAppsUpdateScmAllowedResponse,
  StringDictionary,
  WebAppsUpdateApplicationSettingsOptionalParams,
  WebAppsUpdateApplicationSettingsResponse,
  WebAppsListApplicationSettingsOptionalParams,
  WebAppsListApplicationSettingsResponse,
  SiteAuthSettings,
  WebAppsUpdateAuthSettingsOptionalParams,
  WebAppsUpdateAuthSettingsResponse,
  WebAppsGetAuthSettingsOptionalParams,
  WebAppsGetAuthSettingsResponse,
  WebAppsGetAuthSettingsV2WithoutSecretsOptionalParams,
  WebAppsGetAuthSettingsV2WithoutSecretsResponse,
  SiteAuthSettingsV2,
  WebAppsUpdateAuthSettingsV2OptionalParams,
  WebAppsUpdateAuthSettingsV2Response,
  WebAppsGetAuthSettingsV2OptionalParams,
  WebAppsGetAuthSettingsV2Response,
  AzureStoragePropertyDictionaryResource,
  WebAppsUpdateAzureStorageAccountsOptionalParams,
  WebAppsUpdateAzureStorageAccountsResponse,
  WebAppsListAzureStorageAccountsOptionalParams,
  WebAppsListAzureStorageAccountsResponse,
  WebAppsUpdateBackupConfigurationOptionalParams,
  WebAppsUpdateBackupConfigurationResponse,
  WebAppsDeleteBackupConfigurationOptionalParams,
  WebAppsGetBackupConfigurationOptionalParams,
  WebAppsGetBackupConfigurationResponse,
  WebAppsGetAppSettingKeyVaultReferenceOptionalParams,
  WebAppsGetAppSettingKeyVaultReferenceResponse,
  WebAppsGetSiteConnectionStringKeyVaultReferenceOptionalParams,
  WebAppsGetSiteConnectionStringKeyVaultReferenceResponse,
  ConnectionStringDictionary,
  WebAppsUpdateConnectionStringsOptionalParams,
  WebAppsUpdateConnectionStringsResponse,
  WebAppsListConnectionStringsOptionalParams,
  WebAppsListConnectionStringsResponse,
  WebAppsGetDiagnosticLogsConfigurationOptionalParams,
  WebAppsGetDiagnosticLogsConfigurationResponse,
  SiteLogsConfig,
  WebAppsUpdateDiagnosticLogsConfigOptionalParams,
  WebAppsUpdateDiagnosticLogsConfigResponse,
  WebAppsUpdateMetadataOptionalParams,
  WebAppsUpdateMetadataResponse,
  WebAppsListMetadataOptionalParams,
  WebAppsListMetadataResponse,
  WebAppsListPublishingCredentialsOptionalParams,
  WebAppsListPublishingCredentialsResponse,
  PushSettings,
  WebAppsUpdateSitePushSettingsOptionalParams,
  WebAppsUpdateSitePushSettingsResponse,
  WebAppsListSitePushSettingsOptionalParams,
  WebAppsListSitePushSettingsResponse,
  WebAppsListSlotConfigurationNamesOptionalParams,
  WebAppsListSlotConfigurationNamesResponse,
  SlotConfigNamesResource,
  WebAppsUpdateSlotConfigurationNamesOptionalParams,
  WebAppsUpdateSlotConfigurationNamesResponse,
  WebAppsGetConfigurationOptionalParams,
  WebAppsGetConfigurationResponse,
  WebAppsCreateOrUpdateConfigurationOptionalParams,
  WebAppsCreateOrUpdateConfigurationResponse,
  WebAppsUpdateConfigurationOptionalParams,
  WebAppsUpdateConfigurationResponse,
  WebAppsGetConfigurationSnapshotOptionalParams,
  WebAppsGetConfigurationSnapshotResponse,
  WebAppsRecoverSiteConfigurationSnapshotOptionalParams,
  WebAppsGetWebSiteContainerLogsOptionalParams,
  WebAppsGetWebSiteContainerLogsResponse,
  WebAppsGetContainerLogsZipOptionalParams,
  WebAppsGetContainerLogsZipResponse,
  WebAppsGetContinuousWebJobOptionalParams,
  WebAppsGetContinuousWebJobResponse,
  WebAppsDeleteContinuousWebJobOptionalParams,
  WebAppsStartContinuousWebJobOptionalParams,
  WebAppsStopContinuousWebJobOptionalParams,
  WebAppsGetProductionSiteDeploymentStatusOptionalParams,
  WebAppsGetProductionSiteDeploymentStatusResponse,
  WebAppsGetDeploymentOptionalParams,
  WebAppsGetDeploymentResponse,
  WebAppsCreateDeploymentOptionalParams,
  WebAppsCreateDeploymentResponse,
  WebAppsDeleteDeploymentOptionalParams,
  WebAppsListDeploymentLogOptionalParams,
  WebAppsListDeploymentLogResponse,
  WebAppsDiscoverBackupOptionalParams,
  WebAppsDiscoverBackupResponse,
  WebAppsGetDomainOwnershipIdentifierOptionalParams,
  WebAppsGetDomainOwnershipIdentifierResponse,
  WebAppsCreateOrUpdateDomainOwnershipIdentifierOptionalParams,
  WebAppsCreateOrUpdateDomainOwnershipIdentifierResponse,
  WebAppsDeleteDomainOwnershipIdentifierOptionalParams,
  WebAppsUpdateDomainOwnershipIdentifierOptionalParams,
  WebAppsUpdateDomainOwnershipIdentifierResponse,
  WebAppsGetMSDeployStatusOptionalParams,
  WebAppsGetMSDeployStatusResponse,
  MSDeploy,
  WebAppsCreateMSDeployOperationOptionalParams,
  WebAppsCreateMSDeployOperationResponse,
  WebAppsGetMSDeployLogOptionalParams,
  WebAppsGetMSDeployLogResponse,
  WebAppsGetOneDeployStatusOptionalParams,
  WebAppsGetOneDeployStatusResponse,
  WebAppsCreateOneDeployOperationOptionalParams,
  WebAppsCreateOneDeployOperationResponse,
  WebAppsGetFunctionsAdminTokenOptionalParams,
  WebAppsGetFunctionsAdminTokenResponse,
  WebAppsGetFunctionOptionalParams,
  WebAppsGetFunctionResponse,
  WebAppsCreateFunctionOptionalParams,
  WebAppsCreateFunctionResponse,
  WebAppsDeleteFunctionOptionalParams,
  KeyInfo,
  WebAppsCreateOrUpdateFunctionSecretOptionalParams,
  WebAppsCreateOrUpdateFunctionSecretResponse,
  WebAppsDeleteFunctionSecretOptionalParams,
  WebAppsListFunctionKeysOptionalParams,
  WebAppsListFunctionKeysResponse,
  WebAppsListFunctionSecretsOptionalParams,
  WebAppsListFunctionSecretsResponse,
  WebAppsListHostKeysOptionalParams,
  WebAppsListHostKeysResponse,
  WebAppsListSyncStatusOptionalParams,
  WebAppsSyncFunctionsOptionalParams,
  WebAppsCreateOrUpdateHostSecretOptionalParams,
  WebAppsCreateOrUpdateHostSecretResponse,
  WebAppsDeleteHostSecretOptionalParams,
  WebAppsGetHostNameBindingOptionalParams,
  WebAppsGetHostNameBindingResponse,
  WebAppsCreateOrUpdateHostNameBindingOptionalParams,
  WebAppsCreateOrUpdateHostNameBindingResponse,
  WebAppsDeleteHostNameBindingOptionalParams,
  WebAppsGetHybridConnectionOptionalParams,
  WebAppsGetHybridConnectionResponse,
  HybridConnection,
  WebAppsCreateOrUpdateHybridConnectionOptionalParams,
  WebAppsCreateOrUpdateHybridConnectionResponse,
  WebAppsDeleteHybridConnectionOptionalParams,
  WebAppsUpdateHybridConnectionOptionalParams,
  WebAppsUpdateHybridConnectionResponse,
  WebAppsListHybridConnectionsOptionalParams,
  WebAppsListHybridConnectionsResponse,
  WebAppsListRelayServiceConnectionsOptionalParams,
  WebAppsListRelayServiceConnectionsResponse,
  WebAppsGetRelayServiceConnectionOptionalParams,
  WebAppsGetRelayServiceConnectionResponse,
  RelayServiceConnectionEntity,
  WebAppsCreateOrUpdateRelayServiceConnectionOptionalParams,
  WebAppsCreateOrUpdateRelayServiceConnectionResponse,
  WebAppsDeleteRelayServiceConnectionOptionalParams,
  WebAppsUpdateRelayServiceConnectionOptionalParams,
  WebAppsUpdateRelayServiceConnectionResponse,
  WebAppsGetInstanceInfoOptionalParams,
  WebAppsGetInstanceInfoResponse,
  WebAppsGetInstanceMsDeployStatusOptionalParams,
  WebAppsGetInstanceMsDeployStatusResponse,
  WebAppsCreateInstanceMSDeployOperationOptionalParams,
  WebAppsCreateInstanceMSDeployOperationResponse,
  WebAppsGetInstanceMSDeployLogOptionalParams,
  WebAppsGetInstanceMSDeployLogResponse,
  WebAppsGetInstanceProcessOptionalParams,
  WebAppsGetInstanceProcessResponse,
  WebAppsDeleteInstanceProcessOptionalParams,
  WebAppsGetInstanceProcessDumpOptionalParams,
  WebAppsGetInstanceProcessDumpResponse,
  WebAppsGetInstanceProcessModuleOptionalParams,
  WebAppsGetInstanceProcessModuleResponse,
  WebAppsIsCloneableOptionalParams,
  WebAppsIsCloneableResponse,
  WebAppsListSyncFunctionTriggersOptionalParams,
  WebAppsListSyncFunctionTriggersResponse,
  StorageMigrationOptions,
  WebAppsMigrateStorageOptionalParams,
  WebAppsMigrateStorageResponse,
  MigrateMySqlRequest,
  WebAppsMigrateMySqlOptionalParams,
  WebAppsMigrateMySqlResponse,
  WebAppsGetMigrateMySqlStatusOptionalParams,
  WebAppsGetMigrateMySqlStatusResponse,
  WebAppsGetSwiftVirtualNetworkConnectionOptionalParams,
  WebAppsGetSwiftVirtualNetworkConnectionResponse,
  SwiftVirtualNetwork,
  WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckOptionalParams,
  WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckResponse,
  WebAppsDeleteSwiftVirtualNetworkOptionalParams,
  WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckOptionalParams,
  WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckResponse,
  WebAppsListNetworkFeaturesOptionalParams,
  WebAppsListNetworkFeaturesResponse,
  WebAppsGetNetworkTraceOperationOptionalParams,
  WebAppsGetNetworkTraceOperationResponse,
  WebAppsStartWebSiteNetworkTraceOptionalParams,
  WebAppsStartWebSiteNetworkTraceResponse,
  WebAppsStartWebSiteNetworkTraceOperationOptionalParams,
  WebAppsStartWebSiteNetworkTraceOperationResponse,
  WebAppsStopWebSiteNetworkTraceOptionalParams,
  WebAppsGetNetworkTracesOptionalParams,
  WebAppsGetNetworkTracesResponse,
  WebAppsGetNetworkTraceOperationV2OptionalParams,
  WebAppsGetNetworkTraceOperationV2Response,
  WebAppsGetNetworkTracesV2OptionalParams,
  WebAppsGetNetworkTracesV2Response,
  WebAppsGenerateNewSitePublishingPasswordOptionalParams,
  WebAppsGetSitePhpErrorLogFlagOptionalParams,
  WebAppsGetSitePhpErrorLogFlagResponse,
  WebAppsListPremierAddOnsOptionalParams,
  WebAppsListPremierAddOnsResponse,
  WebAppsGetPremierAddOnOptionalParams,
  WebAppsGetPremierAddOnResponse,
  PremierAddOn,
  WebAppsAddPremierAddOnOptionalParams,
  WebAppsAddPremierAddOnResponse,
  WebAppsDeletePremierAddOnOptionalParams,
  PremierAddOnPatchResource,
  WebAppsUpdatePremierAddOnOptionalParams,
  WebAppsUpdatePremierAddOnResponse,
  WebAppsGetPrivateAccessOptionalParams,
  WebAppsGetPrivateAccessResponse,
  PrivateAccess,
  WebAppsPutPrivateAccessVnetOptionalParams,
  WebAppsPutPrivateAccessVnetResponse,
  WebAppsGetPrivateEndpointConnectionOptionalParams,
  WebAppsGetPrivateEndpointConnectionResponse,
  PrivateLinkConnectionApprovalRequestResource,
  WebAppsApproveOrRejectPrivateEndpointConnectionOptionalParams,
  WebAppsApproveOrRejectPrivateEndpointConnectionResponse,
  WebAppsDeletePrivateEndpointConnectionOptionalParams,
  WebAppsDeletePrivateEndpointConnectionResponse,
  WebAppsGetPrivateLinkResourcesOptionalParams,
  WebAppsGetPrivateLinkResourcesResponse,
  WebAppsGetProcessOptionalParams,
  WebAppsGetProcessResponse,
  WebAppsDeleteProcessOptionalParams,
  WebAppsGetProcessDumpOptionalParams,
  WebAppsGetProcessDumpResponse,
  WebAppsGetProcessModuleOptionalParams,
  WebAppsGetProcessModuleResponse,
  WebAppsGetPublicCertificateOptionalParams,
  WebAppsGetPublicCertificateResponse,
  WebAppsCreateOrUpdatePublicCertificateOptionalParams,
  WebAppsCreateOrUpdatePublicCertificateResponse,
  WebAppsDeletePublicCertificateOptionalParams,
  CsmPublishingProfileOptions,
  WebAppsListPublishingProfileXmlWithSecretsOptionalParams,
  WebAppsListPublishingProfileXmlWithSecretsResponse,
  WebAppsResetProductionSlotConfigOptionalParams,
  WebAppsRestartOptionalParams,
  WebAppsRestoreFromBackupBlobOptionalParams,
  DeletedAppRestoreRequest,
  WebAppsRestoreFromDeletedAppOptionalParams,
  SnapshotRestoreRequest,
  WebAppsRestoreSnapshotOptionalParams,
  WebAppsGetSiteExtensionOptionalParams,
  WebAppsGetSiteExtensionResponse,
  WebAppsInstallSiteExtensionOptionalParams,
  WebAppsInstallSiteExtensionResponse,
  WebAppsDeleteSiteExtensionOptionalParams,
  WebAppsGetSlotOptionalParams,
  WebAppsGetSlotResponse,
  WebAppsCreateOrUpdateSlotOptionalParams,
  WebAppsCreateOrUpdateSlotResponse,
  WebAppsDeleteSlotOptionalParams,
  WebAppsUpdateSlotOptionalParams,
  WebAppsUpdateSlotResponse,
  WebAppsAnalyzeCustomHostnameSlotOptionalParams,
  WebAppsAnalyzeCustomHostnameSlotResponse,
  WebAppsApplySlotConfigurationSlotOptionalParams,
  WebAppsBackupSlotOptionalParams,
  WebAppsBackupSlotResponse,
  WebAppsGetBackupStatusSlotOptionalParams,
  WebAppsGetBackupStatusSlotResponse,
  WebAppsDeleteBackupSlotOptionalParams,
  WebAppsListBackupStatusSecretsSlotOptionalParams,
  WebAppsListBackupStatusSecretsSlotResponse,
  WebAppsRestoreSlotOptionalParams,
  WebAppsGetFtpAllowedSlotOptionalParams,
  WebAppsGetFtpAllowedSlotResponse,
  WebAppsUpdateFtpAllowedSlotOptionalParams,
  WebAppsUpdateFtpAllowedSlotResponse,
  WebAppsGetScmAllowedSlotOptionalParams,
  WebAppsGetScmAllowedSlotResponse,
  WebAppsUpdateScmAllowedSlotOptionalParams,
  WebAppsUpdateScmAllowedSlotResponse,
  WebAppsUpdateApplicationSettingsSlotOptionalParams,
  WebAppsUpdateApplicationSettingsSlotResponse,
  WebAppsListApplicationSettingsSlotOptionalParams,
  WebAppsListApplicationSettingsSlotResponse,
  WebAppsUpdateAuthSettingsSlotOptionalParams,
  WebAppsUpdateAuthSettingsSlotResponse,
  WebAppsGetAuthSettingsSlotOptionalParams,
  WebAppsGetAuthSettingsSlotResponse,
  WebAppsGetAuthSettingsV2WithoutSecretsSlotOptionalParams,
  WebAppsGetAuthSettingsV2WithoutSecretsSlotResponse,
  WebAppsUpdateAuthSettingsV2SlotOptionalParams,
  WebAppsUpdateAuthSettingsV2SlotResponse,
  WebAppsGetAuthSettingsV2SlotOptionalParams,
  WebAppsGetAuthSettingsV2SlotResponse,
  WebAppsUpdateAzureStorageAccountsSlotOptionalParams,
  WebAppsUpdateAzureStorageAccountsSlotResponse,
  WebAppsListAzureStorageAccountsSlotOptionalParams,
  WebAppsListAzureStorageAccountsSlotResponse,
  WebAppsUpdateBackupConfigurationSlotOptionalParams,
  WebAppsUpdateBackupConfigurationSlotResponse,
  WebAppsDeleteBackupConfigurationSlotOptionalParams,
  WebAppsGetBackupConfigurationSlotOptionalParams,
  WebAppsGetBackupConfigurationSlotResponse,
  WebAppsGetAppSettingKeyVaultReferenceSlotOptionalParams,
  WebAppsGetAppSettingKeyVaultReferenceSlotResponse,
  WebAppsGetSiteConnectionStringKeyVaultReferenceSlotOptionalParams,
  WebAppsGetSiteConnectionStringKeyVaultReferenceSlotResponse,
  WebAppsUpdateConnectionStringsSlotOptionalParams,
  WebAppsUpdateConnectionStringsSlotResponse,
  WebAppsListConnectionStringsSlotOptionalParams,
  WebAppsListConnectionStringsSlotResponse,
  WebAppsGetDiagnosticLogsConfigurationSlotOptionalParams,
  WebAppsGetDiagnosticLogsConfigurationSlotResponse,
  WebAppsUpdateDiagnosticLogsConfigSlotOptionalParams,
  WebAppsUpdateDiagnosticLogsConfigSlotResponse,
  WebAppsUpdateMetadataSlotOptionalParams,
  WebAppsUpdateMetadataSlotResponse,
  WebAppsListMetadataSlotOptionalParams,
  WebAppsListMetadataSlotResponse,
  WebAppsListPublishingCredentialsSlotOptionalParams,
  WebAppsListPublishingCredentialsSlotResponse,
  WebAppsUpdateSitePushSettingsSlotOptionalParams,
  WebAppsUpdateSitePushSettingsSlotResponse,
  WebAppsListSitePushSettingsSlotOptionalParams,
  WebAppsListSitePushSettingsSlotResponse,
  WebAppsGetConfigurationSlotOptionalParams,
  WebAppsGetConfigurationSlotResponse,
  WebAppsCreateOrUpdateConfigurationSlotOptionalParams,
  WebAppsCreateOrUpdateConfigurationSlotResponse,
  WebAppsUpdateConfigurationSlotOptionalParams,
  WebAppsUpdateConfigurationSlotResponse,
  WebAppsGetConfigurationSnapshotSlotOptionalParams,
  WebAppsGetConfigurationSnapshotSlotResponse,
  WebAppsRecoverSiteConfigurationSnapshotSlotOptionalParams,
  WebAppsGetWebSiteContainerLogsSlotOptionalParams,
  WebAppsGetWebSiteContainerLogsSlotResponse,
  WebAppsGetContainerLogsZipSlotOptionalParams,
  WebAppsGetContainerLogsZipSlotResponse,
  WebAppsGetContinuousWebJobSlotOptionalParams,
  WebAppsGetContinuousWebJobSlotResponse,
  WebAppsDeleteContinuousWebJobSlotOptionalParams,
  WebAppsStartContinuousWebJobSlotOptionalParams,
  WebAppsStopContinuousWebJobSlotOptionalParams,
  WebAppsGetSlotSiteDeploymentStatusSlotOptionalParams,
  WebAppsGetSlotSiteDeploymentStatusSlotResponse,
  WebAppsGetDeploymentSlotOptionalParams,
  WebAppsGetDeploymentSlotResponse,
  WebAppsCreateDeploymentSlotOptionalParams,
  WebAppsCreateDeploymentSlotResponse,
  WebAppsDeleteDeploymentSlotOptionalParams,
  WebAppsListDeploymentLogSlotOptionalParams,
  WebAppsListDeploymentLogSlotResponse,
  WebAppsDiscoverBackupSlotOptionalParams,
  WebAppsDiscoverBackupSlotResponse,
  WebAppsGetDomainOwnershipIdentifierSlotOptionalParams,
  WebAppsGetDomainOwnershipIdentifierSlotResponse,
  WebAppsCreateOrUpdateDomainOwnershipIdentifierSlotOptionalParams,
  WebAppsCreateOrUpdateDomainOwnershipIdentifierSlotResponse,
  WebAppsDeleteDomainOwnershipIdentifierSlotOptionalParams,
  WebAppsUpdateDomainOwnershipIdentifierSlotOptionalParams,
  WebAppsUpdateDomainOwnershipIdentifierSlotResponse,
  WebAppsGetMSDeployStatusSlotOptionalParams,
  WebAppsGetMSDeployStatusSlotResponse,
  WebAppsCreateMSDeployOperationSlotOptionalParams,
  WebAppsCreateMSDeployOperationSlotResponse,
  WebAppsGetMSDeployLogSlotOptionalParams,
  WebAppsGetMSDeployLogSlotResponse,
  WebAppsGetFunctionsAdminTokenSlotOptionalParams,
  WebAppsGetFunctionsAdminTokenSlotResponse,
  WebAppsGetInstanceFunctionSlotOptionalParams,
  WebAppsGetInstanceFunctionSlotResponse,
  WebAppsCreateInstanceFunctionSlotOptionalParams,
  WebAppsCreateInstanceFunctionSlotResponse,
  WebAppsDeleteInstanceFunctionSlotOptionalParams,
  WebAppsCreateOrUpdateFunctionSecretSlotOptionalParams,
  WebAppsCreateOrUpdateFunctionSecretSlotResponse,
  WebAppsDeleteFunctionSecretSlotOptionalParams,
  WebAppsListFunctionKeysSlotOptionalParams,
  WebAppsListFunctionKeysSlotResponse,
  WebAppsListFunctionSecretsSlotOptionalParams,
  WebAppsListFunctionSecretsSlotResponse,
  WebAppsListHostKeysSlotOptionalParams,
  WebAppsListHostKeysSlotResponse,
  WebAppsListSyncStatusSlotOptionalParams,
  WebAppsSyncFunctionsSlotOptionalParams,
  WebAppsCreateOrUpdateHostSecretSlotOptionalParams,
  WebAppsCreateOrUpdateHostSecretSlotResponse,
  WebAppsDeleteHostSecretSlotOptionalParams,
  WebAppsGetHostNameBindingSlotOptionalParams,
  WebAppsGetHostNameBindingSlotResponse,
  WebAppsCreateOrUpdateHostNameBindingSlotOptionalParams,
  WebAppsCreateOrUpdateHostNameBindingSlotResponse,
  WebAppsDeleteHostNameBindingSlotOptionalParams,
  WebAppsGetHybridConnectionSlotOptionalParams,
  WebAppsGetHybridConnectionSlotResponse,
  WebAppsCreateOrUpdateHybridConnectionSlotOptionalParams,
  WebAppsCreateOrUpdateHybridConnectionSlotResponse,
  WebAppsDeleteHybridConnectionSlotOptionalParams,
  WebAppsUpdateHybridConnectionSlotOptionalParams,
  WebAppsUpdateHybridConnectionSlotResponse,
  WebAppsListHybridConnectionsSlotOptionalParams,
  WebAppsListHybridConnectionsSlotResponse,
  WebAppsListRelayServiceConnectionsSlotOptionalParams,
  WebAppsListRelayServiceConnectionsSlotResponse,
  WebAppsGetRelayServiceConnectionSlotOptionalParams,
  WebAppsGetRelayServiceConnectionSlotResponse,
  WebAppsCreateOrUpdateRelayServiceConnectionSlotOptionalParams,
  WebAppsCreateOrUpdateRelayServiceConnectionSlotResponse,
  WebAppsDeleteRelayServiceConnectionSlotOptionalParams,
  WebAppsUpdateRelayServiceConnectionSlotOptionalParams,
  WebAppsUpdateRelayServiceConnectionSlotResponse,
  WebAppsGetInstanceInfoSlotOptionalParams,
  WebAppsGetInstanceInfoSlotResponse,
  WebAppsGetInstanceMsDeployStatusSlotOptionalParams,
  WebAppsGetInstanceMsDeployStatusSlotResponse,
  WebAppsCreateInstanceMSDeployOperationSlotOptionalParams,
  WebAppsCreateInstanceMSDeployOperationSlotResponse,
  WebAppsGetInstanceMSDeployLogSlotOptionalParams,
  WebAppsGetInstanceMSDeployLogSlotResponse,
  WebAppsGetInstanceProcessSlotOptionalParams,
  WebAppsGetInstanceProcessSlotResponse,
  WebAppsDeleteInstanceProcessSlotOptionalParams,
  WebAppsGetInstanceProcessDumpSlotOptionalParams,
  WebAppsGetInstanceProcessDumpSlotResponse,
  WebAppsGetInstanceProcessModuleSlotOptionalParams,
  WebAppsGetInstanceProcessModuleSlotResponse,
  WebAppsIsCloneableSlotOptionalParams,
  WebAppsIsCloneableSlotResponse,
  WebAppsListSyncFunctionTriggersSlotOptionalParams,
  WebAppsListSyncFunctionTriggersSlotResponse,
  WebAppsGetMigrateMySqlStatusSlotOptionalParams,
  WebAppsGetMigrateMySqlStatusSlotResponse,
  WebAppsGetSwiftVirtualNetworkConnectionSlotOptionalParams,
  WebAppsGetSwiftVirtualNetworkConnectionSlotResponse,
  WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotOptionalParams,
  WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotResponse,
  WebAppsDeleteSwiftVirtualNetworkSlotOptionalParams,
  WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckSlotOptionalParams,
  WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckSlotResponse,
  WebAppsListNetworkFeaturesSlotOptionalParams,
  WebAppsListNetworkFeaturesSlotResponse,
  WebAppsGetNetworkTraceOperationSlotOptionalParams,
  WebAppsGetNetworkTraceOperationSlotResponse,
  WebAppsStartWebSiteNetworkTraceSlotOptionalParams,
  WebAppsStartWebSiteNetworkTraceSlotResponse,
  WebAppsStartWebSiteNetworkTraceOperationSlotOptionalParams,
  WebAppsStartWebSiteNetworkTraceOperationSlotResponse,
  WebAppsStopWebSiteNetworkTraceSlotOptionalParams,
  WebAppsGetNetworkTracesSlotOptionalParams,
  WebAppsGetNetworkTracesSlotResponse,
  WebAppsGetNetworkTraceOperationSlotV2OptionalParams,
  WebAppsGetNetworkTraceOperationSlotV2Response,
  WebAppsGetNetworkTracesSlotV2OptionalParams,
  WebAppsGetNetworkTracesSlotV2Response,
  WebAppsGenerateNewSitePublishingPasswordSlotOptionalParams,
  WebAppsGetSitePhpErrorLogFlagSlotOptionalParams,
  WebAppsGetSitePhpErrorLogFlagSlotResponse,
  WebAppsListPremierAddOnsSlotOptionalParams,
  WebAppsListPremierAddOnsSlotResponse,
  WebAppsGetPremierAddOnSlotOptionalParams,
  WebAppsGetPremierAddOnSlotResponse,
  WebAppsAddPremierAddOnSlotOptionalParams,
  WebAppsAddPremierAddOnSlotResponse,
  WebAppsDeletePremierAddOnSlotOptionalParams,
  WebAppsUpdatePremierAddOnSlotOptionalParams,
  WebAppsUpdatePremierAddOnSlotResponse,
  WebAppsGetPrivateAccessSlotOptionalParams,
  WebAppsGetPrivateAccessSlotResponse,
  WebAppsPutPrivateAccessVnetSlotOptionalParams,
  WebAppsPutPrivateAccessVnetSlotResponse,
  WebAppsGetPrivateEndpointConnectionSlotOptionalParams,
  WebAppsGetPrivateEndpointConnectionSlotResponse,
  WebAppsApproveOrRejectPrivateEndpointConnectionSlotOptionalParams,
  WebAppsApproveOrRejectPrivateEndpointConnectionSlotResponse,
  WebAppsDeletePrivateEndpointConnectionSlotOptionalParams,
  WebAppsDeletePrivateEndpointConnectionSlotResponse,
  WebAppsGetPrivateLinkResourcesSlotOptionalParams,
  WebAppsGetPrivateLinkResourcesSlotResponse,
  WebAppsGetProcessSlotOptionalParams,
  WebAppsGetProcessSlotResponse,
  WebAppsDeleteProcessSlotOptionalParams,
  WebAppsGetProcessDumpSlotOptionalParams,
  WebAppsGetProcessDumpSlotResponse,
  WebAppsGetProcessModuleSlotOptionalParams,
  WebAppsGetProcessModuleSlotResponse,
  WebAppsGetPublicCertificateSlotOptionalParams,
  WebAppsGetPublicCertificateSlotResponse,
  WebAppsCreateOrUpdatePublicCertificateSlotOptionalParams,
  WebAppsCreateOrUpdatePublicCertificateSlotResponse,
  WebAppsDeletePublicCertificateSlotOptionalParams,
  WebAppsListPublishingProfileXmlWithSecretsSlotOptionalParams,
  WebAppsListPublishingProfileXmlWithSecretsSlotResponse,
  WebAppsResetSlotConfigurationSlotOptionalParams,
  WebAppsRestartSlotOptionalParams,
  WebAppsRestoreFromBackupBlobSlotOptionalParams,
  WebAppsRestoreFromDeletedAppSlotOptionalParams,
  WebAppsRestoreSnapshotSlotOptionalParams,
  WebAppsGetSiteExtensionSlotOptionalParams,
  WebAppsGetSiteExtensionSlotResponse,
  WebAppsInstallSiteExtensionSlotOptionalParams,
  WebAppsInstallSiteExtensionSlotResponse,
  WebAppsDeleteSiteExtensionSlotOptionalParams,
  WebAppsSwapSlotOptionalParams,
  WebAppsGetSourceControlSlotOptionalParams,
  WebAppsGetSourceControlSlotResponse,
  SiteSourceControl,
  WebAppsCreateOrUpdateSourceControlSlotOptionalParams,
  WebAppsCreateOrUpdateSourceControlSlotResponse,
  WebAppsDeleteSourceControlSlotOptionalParams,
  WebAppsUpdateSourceControlSlotOptionalParams,
  WebAppsUpdateSourceControlSlotResponse,
  WebAppsStartSlotOptionalParams,
  WebAppsStartNetworkTraceSlotOptionalParams,
  WebAppsStartNetworkTraceSlotResponse,
  WebAppsStopSlotOptionalParams,
  WebAppsStopNetworkTraceSlotOptionalParams,
  WebAppsSyncRepositorySlotOptionalParams,
  WebAppsSyncFunctionTriggersSlotOptionalParams,
  WebAppsGetTriggeredWebJobSlotOptionalParams,
  WebAppsGetTriggeredWebJobSlotResponse,
  WebAppsDeleteTriggeredWebJobSlotOptionalParams,
  WebAppsGetTriggeredWebJobHistorySlotOptionalParams,
  WebAppsGetTriggeredWebJobHistorySlotResponse,
  WebAppsRunTriggeredWebJobSlotOptionalParams,
  WebAppsListVnetConnectionsSlotOptionalParams,
  WebAppsListVnetConnectionsSlotResponse,
  WebAppsGetVnetConnectionSlotOptionalParams,
  WebAppsGetVnetConnectionSlotResponse,
  VnetInfoResource,
  WebAppsCreateOrUpdateVnetConnectionSlotOptionalParams,
  WebAppsCreateOrUpdateVnetConnectionSlotResponse,
  WebAppsDeleteVnetConnectionSlotOptionalParams,
  WebAppsUpdateVnetConnectionSlotOptionalParams,
  WebAppsUpdateVnetConnectionSlotResponse,
  WebAppsGetVnetConnectionGatewaySlotOptionalParams,
  WebAppsGetVnetConnectionGatewaySlotResponse,
  VnetGateway,
  WebAppsCreateOrUpdateVnetConnectionGatewaySlotOptionalParams,
  WebAppsCreateOrUpdateVnetConnectionGatewaySlotResponse,
  WebAppsUpdateVnetConnectionGatewaySlotOptionalParams,
  WebAppsUpdateVnetConnectionGatewaySlotResponse,
  WebAppsGetWebJobSlotOptionalParams,
  WebAppsGetWebJobSlotResponse,
  WebAppsSwapSlotWithProductionOptionalParams,
  WebAppsGetSourceControlOptionalParams,
  WebAppsGetSourceControlResponse,
  WebAppsCreateOrUpdateSourceControlOptionalParams,
  WebAppsCreateOrUpdateSourceControlResponse,
  WebAppsDeleteSourceControlOptionalParams,
  WebAppsUpdateSourceControlOptionalParams,
  WebAppsUpdateSourceControlResponse,
  WebAppsStartOptionalParams,
  WebAppsStartNetworkTraceOptionalParams,
  WebAppsStartNetworkTraceResponse,
  WebAppsStopOptionalParams,
  WebAppsStopNetworkTraceOptionalParams,
  WebAppsSyncRepositoryOptionalParams,
  WebAppsSyncFunctionTriggersOptionalParams,
  WebAppsGetTriggeredWebJobOptionalParams,
  WebAppsGetTriggeredWebJobResponse,
  WebAppsDeleteTriggeredWebJobOptionalParams,
  WebAppsGetTriggeredWebJobHistoryOptionalParams,
  WebAppsGetTriggeredWebJobHistoryResponse,
  WebAppsRunTriggeredWebJobOptionalParams,
  WebAppsListVnetConnectionsOptionalParams,
  WebAppsListVnetConnectionsResponse,
  WebAppsGetVnetConnectionOptionalParams,
  WebAppsGetVnetConnectionResponse,
  WebAppsCreateOrUpdateVnetConnectionOptionalParams,
  WebAppsCreateOrUpdateVnetConnectionResponse,
  WebAppsDeleteVnetConnectionOptionalParams,
  WebAppsUpdateVnetConnectionOptionalParams,
  WebAppsUpdateVnetConnectionResponse,
  WebAppsGetVnetConnectionGatewayOptionalParams,
  WebAppsGetVnetConnectionGatewayResponse,
  WebAppsCreateOrUpdateVnetConnectionGatewayOptionalParams,
  WebAppsCreateOrUpdateVnetConnectionGatewayResponse,
  WebAppsUpdateVnetConnectionGatewayOptionalParams,
  WebAppsUpdateVnetConnectionGatewayResponse,
  WebAppsGetWebJobOptionalParams,
  WebAppsGetWebJobResponse,
  WebAppsDeployWorkflowArtifactsOptionalParams,
  WebAppsDeployWorkflowArtifactsSlotOptionalParams,
  WebAppsGetInstanceWorkflowSlotOptionalParams,
  WebAppsGetInstanceWorkflowSlotResponse,
  WebAppsListWorkflowsConnectionsSlotOptionalParams,
  WebAppsListWorkflowsConnectionsSlotResponse,
  WebAppsGetWorkflowOptionalParams,
  WebAppsGetWorkflowResponse,
  WebAppsListWorkflowsConnectionsOptionalParams,
  WebAppsListWorkflowsConnectionsResponse
} from "../models";

/// <reference lib="esnext.asynciterable" />
/** Interface representing a WebApps. */
export interface WebApps {
  /**
   * Description for Get all apps for a subscription.
   * @param options The options parameters.
   */
  list(options?: WebAppsListOptionalParams): PagedAsyncIterableIterator<Site>;
  /**
   * 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 options The options parameters.
   */
  listByResourceGroup(
    resourceGroupName: string,
    options?: WebAppsListByResourceGroupOptionalParams
  ): PagedAsyncIterableIterator<Site>;
  /**
   * 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 options The options parameters.
   */
  listBackups(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListBackupsOptionalParams
  ): PagedAsyncIterableIterator<BackupItem>;
  /**
   * 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 options The options parameters.
   */
  listBasicPublishingCredentialsPolicies(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListBasicPublishingCredentialsPoliciesOptionalParams
  ): PagedAsyncIterableIterator<CsmPublishingCredentialsPoliciesEntity>;
  /**
   * 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 options The options parameters.
   */
  listConfigurations(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListConfigurationsOptionalParams
  ): PagedAsyncIterableIterator<SiteConfigResource>;
  /**
   * 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 options The options parameters.
   */
  listAppSettingsKeyVaultReferences(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetAppSettingsKeyVaultReferencesOptionalParams
  ): PagedAsyncIterableIterator<ApiKVReference>;
  /**
   * 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 options The options parameters.
   */
  listSiteConnectionStringKeyVaultReferences(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetSiteConnectionStringKeyVaultReferencesOptionalParams
  ): PagedAsyncIterableIterator<ApiKVReference>;
  /**
   * 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 options The options parameters.
   */
  listConfigurationSnapshotInfo(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListConfigurationSnapshotInfoOptionalParams
  ): PagedAsyncIterableIterator<SiteConfigurationSnapshotInfo>;
  /**
   * 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 options The options parameters.
   */
  listContinuousWebJobs(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListContinuousWebJobsOptionalParams
  ): PagedAsyncIterableIterator<ContinuousWebJob>;
  /**
   * 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 options The options parameters.
   */
  listProductionSiteDeploymentStatuses(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListProductionSiteDeploymentStatusesOptionalParams
  ): PagedAsyncIterableIterator<CsmDeploymentStatus>;
  /**
   * 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 options The options parameters.
   */
  listDeployments(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListDeploymentsOptionalParams
  ): PagedAsyncIterableIterator<Deployment>;
  /**
   * 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 options The options parameters.
   */
  listDomainOwnershipIdentifiers(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListDomainOwnershipIdentifiersOptionalParams
  ): PagedAsyncIterableIterator<Identifier>;
  /**
   * 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 options The options parameters.
   */
  listFunctions(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListFunctionsOptionalParams
  ): PagedAsyncIterableIterator<FunctionEnvelope>;
  /**
   * 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 options The options parameters.
   */
  listHostNameBindings(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListHostNameBindingsOptionalParams
  ): PagedAsyncIterableIterator<HostNameBinding>;
  /**
   * 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 options The options parameters.
   */
  listInstanceIdentifiers(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListInstanceIdentifiersOptionalParams
  ): PagedAsyncIterableIterator<WebSiteInstanceStatus>;
  /**
   * 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 options The options parameters.
   */
  listInstanceProcesses(
    resourceGroupName: string,
    name: string,
    instanceId: string,
    options?: WebAppsListInstanceProcessesOptionalParams
  ): PagedAsyncIterableIterator<ProcessInfo>;
  /**
   * 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 options The options parameters.
   */
  listInstanceProcessModules(
    resourceGroupName: string,
    name: string,
    processId: string,
    instanceId: string,
    options?: WebAppsListInstanceProcessModulesOptionalParams
  ): PagedAsyncIterableIterator<ProcessModuleInfo>;
  /**
   * 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 options The options parameters.
   */
  listInstanceProcessThreads(
    resourceGroupName: string,
    name: string,
    processId: string,
    instanceId: string,
    options?: WebAppsListInstanceProcessThreadsOptionalParams
  ): PagedAsyncIterableIterator<ProcessThreadInfo>;
  /**
   * 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 options The options parameters.
   */
  listSiteBackups(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSiteBackupsOptionalParams
  ): PagedAsyncIterableIterator<BackupItem>;
  /**
   * 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 options The options parameters.
   */
  listPerfMonCounters(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListPerfMonCountersOptionalParams
  ): PagedAsyncIterableIterator<PerfMonResponse>;
  /**
   * 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 options The options parameters.
   */
  listPrivateEndpointConnectionList(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetPrivateEndpointConnectionListOptionalParams
  ): PagedAsyncIterableIterator<RemotePrivateEndpointConnectionARMResource>;
  /**
   * 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 options The options parameters.
   */
  listProcesses(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListProcessesOptionalParams
  ): PagedAsyncIterableIterator<ProcessInfo>;
  /**
   * 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 options The options parameters.
   */
  listProcessModules(
    resourceGroupName: string,
    name: string,
    processId: string,
    options?: WebAppsListProcessModulesOptionalParams
  ): PagedAsyncIterableIterator<ProcessModuleInfo>;
  /**
   * 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 options The options parameters.
   */
  listProcessThreads(
    resourceGroupName: string,
    name: string,
    processId: string,
    options?: WebAppsListProcessThreadsOptionalParams
  ): PagedAsyncIterableIterator<ProcessThreadInfo>;
  /**
   * 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 options The options parameters.
   */
  listPublicCertificates(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListPublicCertificatesOptionalParams
  ): PagedAsyncIterableIterator<PublicCertificate>;
  /**
   * 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 options The options parameters.
   */
  listSiteExtensions(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSiteExtensionsOptionalParams
  ): PagedAsyncIterableIterator<SiteExtensionInfo>;
  /**
   * 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 options The options parameters.
   */
  listSlots(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSlotsOptionalParams
  ): PagedAsyncIterableIterator<Site>;
  /**
   * 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 options The options parameters.
   */
  listBackupsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListBackupsSlotOptionalParams
  ): PagedAsyncIterableIterator<BackupItem>;
  /**
   * 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
   * @param options The options parameters.
   */
  listBasicPublishingCredentialsPoliciesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListBasicPublishingCredentialsPoliciesSlotOptionalParams
  ): PagedAsyncIterableIterator<CsmPublishingCredentialsPoliciesEntity>;
  /**
   * 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 options The options parameters.
   */
  listConfigurationsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListConfigurationsSlotOptionalParams
  ): PagedAsyncIterableIterator<SiteConfigResource>;
  /**
   * 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
   * @param options The options parameters.
   */
  listAppSettingsKeyVaultReferencesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetAppSettingsKeyVaultReferencesSlotOptionalParams
  ): PagedAsyncIterableIterator<ApiKVReference>;
  /**
   * 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
   * @param options The options parameters.
   */
  listSiteConnectionStringKeyVaultReferencesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetSiteConnectionStringKeyVaultReferencesSlotOptionalParams
  ): PagedAsyncIterableIterator<ApiKVReference>;
  /**
   * 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 options The options parameters.
   */
  listConfigurationSnapshotInfoSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListConfigurationSnapshotInfoSlotOptionalParams
  ): PagedAsyncIterableIterator<SiteConfigurationSnapshotInfo>;
  /**
   * 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 options The options parameters.
   */
  listContinuousWebJobsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListContinuousWebJobsSlotOptionalParams
  ): PagedAsyncIterableIterator<ContinuousWebJob>;
  /**
   * 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 options The options parameters.
   */
  listSlotSiteDeploymentStatusesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSlotSiteDeploymentStatusesSlotOptionalParams
  ): PagedAsyncIterableIterator<CsmDeploymentStatus>;
  /**
   * 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 options The options parameters.
   */
  listDeploymentsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListDeploymentsSlotOptionalParams
  ): PagedAsyncIterableIterator<Deployment>;
  /**
   * 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 options The options parameters.
   */
  listDomainOwnershipIdentifiersSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListDomainOwnershipIdentifiersSlotOptionalParams
  ): PagedAsyncIterableIterator<Identifier>;
  /**
   * 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 options The options parameters.
   */
  listInstanceFunctionsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListInstanceFunctionsSlotOptionalParams
  ): PagedAsyncIterableIterator<FunctionEnvelope>;
  /**
   * 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 options The options parameters.
   */
  listHostNameBindingsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListHostNameBindingsSlotOptionalParams
  ): PagedAsyncIterableIterator<HostNameBinding>;
  /**
   * 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 options The options parameters.
   */
  listInstanceIdentifiersSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListInstanceIdentifiersSlotOptionalParams
  ): PagedAsyncIterableIterator<WebSiteInstanceStatus>;
  /**
   * 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 options The options parameters.
   */
  listInstanceProcessesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    instanceId: string,
    options?: WebAppsListInstanceProcessesSlotOptionalParams
  ): PagedAsyncIterableIterator<ProcessInfo>;
  /**
   * 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 options The options parameters.
   */
  listInstanceProcessModulesSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    instanceId: string,
    options?: WebAppsListInstanceProcessModulesSlotOptionalParams
  ): PagedAsyncIterableIterator<ProcessModuleInfo>;
  /**
   * 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 options The options parameters.
   */
  listInstanceProcessThreadsSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    instanceId: string,
    options?: WebAppsListInstanceProcessThreadsSlotOptionalParams
  ): PagedAsyncIterableIterator<ProcessThreadInfo>;
  /**
   * 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 options The options parameters.
   */
  listSiteBackupsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSiteBackupsSlotOptionalParams
  ): PagedAsyncIterableIterator<BackupItem>;
  /**
   * 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 options The options parameters.
   */
  listPerfMonCountersSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListPerfMonCountersSlotOptionalParams
  ): PagedAsyncIterableIterator<PerfMonResponse>;
  /**
   * 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 options The options parameters.
   */
  listPrivateEndpointConnectionListSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetPrivateEndpointConnectionListSlotOptionalParams
  ): PagedAsyncIterableIterator<RemotePrivateEndpointConnectionARMResource>;
  /**
   * 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 options The options parameters.
   */
  listProcessesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListProcessesSlotOptionalParams
  ): PagedAsyncIterableIterator<ProcessInfo>;
  /**
   * 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 options The options parameters.
   */
  listProcessModulesSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    options?: WebAppsListProcessModulesSlotOptionalParams
  ): PagedAsyncIterableIterator<ProcessModuleInfo>;
  /**
   * 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 options The options parameters.
   */
  listProcessThreadsSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    options?: WebAppsListProcessThreadsSlotOptionalParams
  ): PagedAsyncIterableIterator<ProcessThreadInfo>;
  /**
   * 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 options The options parameters.
   */
  listPublicCertificatesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListPublicCertificatesSlotOptionalParams
  ): PagedAsyncIterableIterator<PublicCertificate>;
  /**
   * 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 options The options parameters.
   */
  listSiteExtensionsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSiteExtensionsSlotOptionalParams
  ): PagedAsyncIterableIterator<SiteExtensionInfo>;
  /**
   * 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 options The options parameters.
   */
  listSlotDifferencesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsListSlotDifferencesSlotOptionalParams
  ): PagedAsyncIterableIterator<SlotDifference>;
  /**
   * 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 options The options parameters.
   */
  listSnapshotsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSnapshotsSlotOptionalParams
  ): PagedAsyncIterableIterator<Snapshot>;
  /**
   * 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 options The options parameters.
   */
  listSnapshotsFromDRSecondarySlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSnapshotsFromDRSecondarySlotOptionalParams
  ): PagedAsyncIterableIterator<Snapshot>;
  /**
   * 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 options The options parameters.
   */
  listTriggeredWebJobsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListTriggeredWebJobsSlotOptionalParams
  ): PagedAsyncIterableIterator<TriggeredWebJob>;
  /**
   * 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 options The options parameters.
   */
  listTriggeredWebJobHistorySlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsListTriggeredWebJobHistorySlotOptionalParams
  ): PagedAsyncIterableIterator<TriggeredJobHistory>;
  /**
   * 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 options The options parameters.
   */
  listUsagesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListUsagesSlotOptionalParams
  ): PagedAsyncIterableIterator<CsmUsageQuota>;
  /**
   * 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 options The options parameters.
   */
  listWebJobsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListWebJobsSlotOptionalParams
  ): PagedAsyncIterableIterator<WebJob>;
  /**
   * 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 options The options parameters.
   */
  listSlotDifferencesFromProduction(
    resourceGroupName: string,
    name: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsListSlotDifferencesFromProductionOptionalParams
  ): PagedAsyncIterableIterator<SlotDifference>;
  /**
   * 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 options The options parameters.
   */
  listSnapshots(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSnapshotsOptionalParams
  ): PagedAsyncIterableIterator<Snapshot>;
  /**
   * 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 options The options parameters.
   */
  listSnapshotsFromDRSecondary(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSnapshotsFromDRSecondaryOptionalParams
  ): PagedAsyncIterableIterator<Snapshot>;
  /**
   * 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 options The options parameters.
   */
  listTriggeredWebJobs(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListTriggeredWebJobsOptionalParams
  ): PagedAsyncIterableIterator<TriggeredWebJob>;
  /**
   * 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 options The options parameters.
   */
  listTriggeredWebJobHistory(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsListTriggeredWebJobHistoryOptionalParams
  ): PagedAsyncIterableIterator<TriggeredJobHistory>;
  /**
   * 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 options The options parameters.
   */
  listUsages(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListUsagesOptionalParams
  ): PagedAsyncIterableIterator<CsmUsageQuota>;
  /**
   * 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 options The options parameters.
   */
  listWebJobs(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListWebJobsOptionalParams
  ): PagedAsyncIterableIterator<WebJob>;
  /**
   * 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 options The options parameters.
   */
  listInstanceWorkflowsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListInstanceWorkflowsSlotOptionalParams
  ): PagedAsyncIterableIterator<WorkflowEnvelope>;
  /**
   * 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 options The options parameters.
   */
  listWorkflows(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListWorkflowsOptionalParams
  ): PagedAsyncIterableIterator<WorkflowEnvelope>;
  /**
   * 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 options The options parameters.
   */
  get(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetOptionalParams
  ): Promise<WebAppsGetResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdate(
    resourceGroupName: string,
    name: string,
    siteEnvelope: Site,
    options?: WebAppsCreateOrUpdateOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateOrUpdateResponse>,
      WebAppsCreateOrUpdateResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdateAndWait(
    resourceGroupName: string,
    name: string,
    siteEnvelope: Site,
    options?: WebAppsCreateOrUpdateOptionalParams
  ): Promise<WebAppsCreateOrUpdateResponse>;
  /**
   * 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 options The options parameters.
   */
  delete(
    resourceGroupName: string,
    name: string,
    options?: WebAppsDeleteOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  update(
    resourceGroupName: string,
    name: string,
    siteEnvelope: SitePatchResource,
    options?: WebAppsUpdateOptionalParams
  ): Promise<WebAppsUpdateResponse>;
  /**
   * 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 options The options parameters.
   */
  analyzeCustomHostname(
    resourceGroupName: string,
    name: string,
    options?: WebAppsAnalyzeCustomHostnameOptionalParams
  ): Promise<WebAppsAnalyzeCustomHostnameResponse>;
  /**
   * 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 options The options parameters.
   */
  applySlotConfigToProduction(
    resourceGroupName: string,
    name: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsApplySlotConfigToProductionOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  backup(
    resourceGroupName: string,
    name: string,
    request: BackupRequest,
    options?: WebAppsBackupOptionalParams
  ): Promise<WebAppsBackupResponse>;
  /**
   * 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 options The options parameters.
   */
  getBackupStatus(
    resourceGroupName: string,
    name: string,
    backupId: string,
    options?: WebAppsGetBackupStatusOptionalParams
  ): Promise<WebAppsGetBackupStatusResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteBackup(
    resourceGroupName: string,
    name: string,
    backupId: string,
    options?: WebAppsDeleteBackupOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listBackupStatusSecrets(
    resourceGroupName: string,
    name: string,
    backupId: string,
    request: BackupRequest,
    options?: WebAppsListBackupStatusSecretsOptionalParams
  ): Promise<WebAppsListBackupStatusSecretsResponse>;
  /**
   * 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 options The options parameters.
   */
  beginRestore(
    resourceGroupName: string,
    name: string,
    backupId: string,
    request: RestoreRequest,
    options?: WebAppsRestoreOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreAndWait(
    resourceGroupName: string,
    name: string,
    backupId: string,
    request: RestoreRequest,
    options?: WebAppsRestoreOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getFtpAllowed(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetFtpAllowedOptionalParams
  ): Promise<WebAppsGetFtpAllowedResponse>;
  /**
   * 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 options The options parameters.
   */
  updateFtpAllowed(
    resourceGroupName: string,
    name: string,
    csmPublishingAccessPoliciesEntity: CsmPublishingCredentialsPoliciesEntity,
    options?: WebAppsUpdateFtpAllowedOptionalParams
  ): Promise<WebAppsUpdateFtpAllowedResponse>;
  /**
   * 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 options The options parameters.
   */
  getScmAllowed(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetScmAllowedOptionalParams
  ): Promise<WebAppsGetScmAllowedResponse>;
  /**
   * 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 options The options parameters.
   */
  updateScmAllowed(
    resourceGroupName: string,
    name: string,
    csmPublishingAccessPoliciesEntity: CsmPublishingCredentialsPoliciesEntity,
    options?: WebAppsUpdateScmAllowedOptionalParams
  ): Promise<WebAppsUpdateScmAllowedResponse>;
  /**
   * 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 options The options parameters.
   */
  updateApplicationSettings(
    resourceGroupName: string,
    name: string,
    appSettings: StringDictionary,
    options?: WebAppsUpdateApplicationSettingsOptionalParams
  ): Promise<WebAppsUpdateApplicationSettingsResponse>;
  /**
   * 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 options The options parameters.
   */
  listApplicationSettings(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListApplicationSettingsOptionalParams
  ): Promise<WebAppsListApplicationSettingsResponse>;
  /**
   * 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 options The options parameters.
   */
  updateAuthSettings(
    resourceGroupName: string,
    name: string,
    siteAuthSettings: SiteAuthSettings,
    options?: WebAppsUpdateAuthSettingsOptionalParams
  ): Promise<WebAppsUpdateAuthSettingsResponse>;
  /**
   * 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 options The options parameters.
   */
  getAuthSettings(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetAuthSettingsOptionalParams
  ): Promise<WebAppsGetAuthSettingsResponse>;
  /**
   * 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 options The options parameters.
   */
  getAuthSettingsV2WithoutSecrets(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetAuthSettingsV2WithoutSecretsOptionalParams
  ): Promise<WebAppsGetAuthSettingsV2WithoutSecretsResponse>;
  /**
   * 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 options The options parameters.
   */
  updateAuthSettingsV2(
    resourceGroupName: string,
    name: string,
    siteAuthSettingsV2: SiteAuthSettingsV2,
    options?: WebAppsUpdateAuthSettingsV2OptionalParams
  ): Promise<WebAppsUpdateAuthSettingsV2Response>;
  /**
   * 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 options The options parameters.
   */
  getAuthSettingsV2(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetAuthSettingsV2OptionalParams
  ): Promise<WebAppsGetAuthSettingsV2Response>;
  /**
   * 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 options The options parameters.
   */
  updateAzureStorageAccounts(
    resourceGroupName: string,
    name: string,
    azureStorageAccounts: AzureStoragePropertyDictionaryResource,
    options?: WebAppsUpdateAzureStorageAccountsOptionalParams
  ): Promise<WebAppsUpdateAzureStorageAccountsResponse>;
  /**
   * 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 options The options parameters.
   */
  listAzureStorageAccounts(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListAzureStorageAccountsOptionalParams
  ): Promise<WebAppsListAzureStorageAccountsResponse>;
  /**
   * 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 options The options parameters.
   */
  updateBackupConfiguration(
    resourceGroupName: string,
    name: string,
    request: BackupRequest,
    options?: WebAppsUpdateBackupConfigurationOptionalParams
  ): Promise<WebAppsUpdateBackupConfigurationResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteBackupConfiguration(
    resourceGroupName: string,
    name: string,
    options?: WebAppsDeleteBackupConfigurationOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getBackupConfiguration(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetBackupConfigurationOptionalParams
  ): Promise<WebAppsGetBackupConfigurationResponse>;
  /**
   * 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 options The options parameters.
   */
  getAppSettingKeyVaultReference(
    resourceGroupName: string,
    name: string,
    appSettingKey: string,
    options?: WebAppsGetAppSettingKeyVaultReferenceOptionalParams
  ): Promise<WebAppsGetAppSettingKeyVaultReferenceResponse>;
  /**
   * 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
   * @param options The options parameters.
   */
  getSiteConnectionStringKeyVaultReference(
    resourceGroupName: string,
    name: string,
    connectionStringKey: string,
    options?: WebAppsGetSiteConnectionStringKeyVaultReferenceOptionalParams
  ): Promise<WebAppsGetSiteConnectionStringKeyVaultReferenceResponse>;
  /**
   * 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 options The options parameters.
   */
  updateConnectionStrings(
    resourceGroupName: string,
    name: string,
    connectionStrings: ConnectionStringDictionary,
    options?: WebAppsUpdateConnectionStringsOptionalParams
  ): Promise<WebAppsUpdateConnectionStringsResponse>;
  /**
   * 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 options The options parameters.
   */
  listConnectionStrings(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListConnectionStringsOptionalParams
  ): Promise<WebAppsListConnectionStringsResponse>;
  /**
   * 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 options The options parameters.
   */
  getDiagnosticLogsConfiguration(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetDiagnosticLogsConfigurationOptionalParams
  ): Promise<WebAppsGetDiagnosticLogsConfigurationResponse>;
  /**
   * 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 options The options parameters.
   */
  updateDiagnosticLogsConfig(
    resourceGroupName: string,
    name: string,
    siteLogsConfig: SiteLogsConfig,
    options?: WebAppsUpdateDiagnosticLogsConfigOptionalParams
  ): Promise<WebAppsUpdateDiagnosticLogsConfigResponse>;
  /**
   * 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 options The options parameters.
   */
  updateMetadata(
    resourceGroupName: string,
    name: string,
    metadata: StringDictionary,
    options?: WebAppsUpdateMetadataOptionalParams
  ): Promise<WebAppsUpdateMetadataResponse>;
  /**
   * 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 options The options parameters.
   */
  listMetadata(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListMetadataOptionalParams
  ): Promise<WebAppsListMetadataResponse>;
  /**
   * 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 options The options parameters.
   */
  beginListPublishingCredentials(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListPublishingCredentialsOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsListPublishingCredentialsResponse>,
      WebAppsListPublishingCredentialsResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginListPublishingCredentialsAndWait(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListPublishingCredentialsOptionalParams
  ): Promise<WebAppsListPublishingCredentialsResponse>;
  /**
   * 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 options The options parameters.
   */
  updateSitePushSettings(
    resourceGroupName: string,
    name: string,
    pushSettings: PushSettings,
    options?: WebAppsUpdateSitePushSettingsOptionalParams
  ): Promise<WebAppsUpdateSitePushSettingsResponse>;
  /**
   * 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 options The options parameters.
   */
  listSitePushSettings(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSitePushSettingsOptionalParams
  ): Promise<WebAppsListSitePushSettingsResponse>;
  /**
   * 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 options The options parameters.
   */
  listSlotConfigurationNames(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSlotConfigurationNamesOptionalParams
  ): Promise<WebAppsListSlotConfigurationNamesResponse>;
  /**
   * 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 options The options parameters.
   */
  updateSlotConfigurationNames(
    resourceGroupName: string,
    name: string,
    slotConfigNames: SlotConfigNamesResource,
    options?: WebAppsUpdateSlotConfigurationNamesOptionalParams
  ): Promise<WebAppsUpdateSlotConfigurationNamesResponse>;
  /**
   * 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 options The options parameters.
   */
  getConfiguration(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetConfigurationOptionalParams
  ): Promise<WebAppsGetConfigurationResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateConfiguration(
    resourceGroupName: string,
    name: string,
    siteConfig: SiteConfigResource,
    options?: WebAppsCreateOrUpdateConfigurationOptionalParams
  ): Promise<WebAppsCreateOrUpdateConfigurationResponse>;
  /**
   * 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 options The options parameters.
   */
  updateConfiguration(
    resourceGroupName: string,
    name: string,
    siteConfig: SiteConfigResource,
    options?: WebAppsUpdateConfigurationOptionalParams
  ): Promise<WebAppsUpdateConfigurationResponse>;
  /**
   * 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 options The options parameters.
   */
  getConfigurationSnapshot(
    resourceGroupName: string,
    name: string,
    snapshotId: string,
    options?: WebAppsGetConfigurationSnapshotOptionalParams
  ): Promise<WebAppsGetConfigurationSnapshotResponse>;
  /**
   * 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 options The options parameters.
   */
  recoverSiteConfigurationSnapshot(
    resourceGroupName: string,
    name: string,
    snapshotId: string,
    options?: WebAppsRecoverSiteConfigurationSnapshotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getWebSiteContainerLogs(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetWebSiteContainerLogsOptionalParams
  ): Promise<WebAppsGetWebSiteContainerLogsResponse>;
  /**
   * 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 options The options parameters.
   */
  getContainerLogsZip(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetContainerLogsZipOptionalParams
  ): Promise<WebAppsGetContainerLogsZipResponse>;
  /**
   * 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 options The options parameters.
   */
  getContinuousWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsGetContinuousWebJobOptionalParams
  ): Promise<WebAppsGetContinuousWebJobResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteContinuousWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsDeleteContinuousWebJobOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  startContinuousWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsStartContinuousWebJobOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  stopContinuousWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsStopContinuousWebJobOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginGetProductionSiteDeploymentStatus(
    resourceGroupName: string,
    name: string,
    deploymentStatusId: string,
    options?: WebAppsGetProductionSiteDeploymentStatusOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsGetProductionSiteDeploymentStatusResponse>,
      WebAppsGetProductionSiteDeploymentStatusResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginGetProductionSiteDeploymentStatusAndWait(
    resourceGroupName: string,
    name: string,
    deploymentStatusId: string,
    options?: WebAppsGetProductionSiteDeploymentStatusOptionalParams
  ): Promise<WebAppsGetProductionSiteDeploymentStatusResponse>;
  /**
   * 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 options The options parameters.
   */
  getDeployment(
    resourceGroupName: string,
    name: string,
    id: string,
    options?: WebAppsGetDeploymentOptionalParams
  ): Promise<WebAppsGetDeploymentResponse>;
  /**
   * 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 options The options parameters.
   */
  createDeployment(
    resourceGroupName: string,
    name: string,
    id: string,
    deployment: Deployment,
    options?: WebAppsCreateDeploymentOptionalParams
  ): Promise<WebAppsCreateDeploymentResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteDeployment(
    resourceGroupName: string,
    name: string,
    id: string,
    options?: WebAppsDeleteDeploymentOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listDeploymentLog(
    resourceGroupName: string,
    name: string,
    id: string,
    options?: WebAppsListDeploymentLogOptionalParams
  ): Promise<WebAppsListDeploymentLogResponse>;
  /**
   * 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 options The options parameters.
   */
  discoverBackup(
    resourceGroupName: string,
    name: string,
    request: RestoreRequest,
    options?: WebAppsDiscoverBackupOptionalParams
  ): Promise<WebAppsDiscoverBackupResponse>;
  /**
   * 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 options The options parameters.
   */
  getDomainOwnershipIdentifier(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    options?: WebAppsGetDomainOwnershipIdentifierOptionalParams
  ): Promise<WebAppsGetDomainOwnershipIdentifierResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateDomainOwnershipIdentifier(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    domainOwnershipIdentifier: Identifier,
    options?: WebAppsCreateOrUpdateDomainOwnershipIdentifierOptionalParams
  ): Promise<WebAppsCreateOrUpdateDomainOwnershipIdentifierResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteDomainOwnershipIdentifier(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    options?: WebAppsDeleteDomainOwnershipIdentifierOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateDomainOwnershipIdentifier(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    domainOwnershipIdentifier: Identifier,
    options?: WebAppsUpdateDomainOwnershipIdentifierOptionalParams
  ): Promise<WebAppsUpdateDomainOwnershipIdentifierResponse>;
  /**
   * 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 options The options parameters.
   */
  getMSDeployStatus(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetMSDeployStatusOptionalParams
  ): Promise<WebAppsGetMSDeployStatusResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateMSDeployOperation(
    resourceGroupName: string,
    name: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateMSDeployOperationOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateMSDeployOperationResponse>,
      WebAppsCreateMSDeployOperationResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateMSDeployOperationAndWait(
    resourceGroupName: string,
    name: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateMSDeployOperationOptionalParams
  ): Promise<WebAppsCreateMSDeployOperationResponse>;
  /**
   * 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 options The options parameters.
   */
  getMSDeployLog(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetMSDeployLogOptionalParams
  ): Promise<WebAppsGetMSDeployLogResponse>;
  /**
   * 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 options The options parameters.
   */
  getOneDeployStatus(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetOneDeployStatusOptionalParams
  ): Promise<WebAppsGetOneDeployStatusResponse>;
  /**
   * 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 options The options parameters.
   */
  createOneDeployOperation(
    resourceGroupName: string,
    name: string,
    options?: WebAppsCreateOneDeployOperationOptionalParams
  ): Promise<WebAppsCreateOneDeployOperationResponse>;
  /**
   * 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 options The options parameters.
   */
  getFunctionsAdminToken(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetFunctionsAdminTokenOptionalParams
  ): Promise<WebAppsGetFunctionsAdminTokenResponse>;
  /**
   * 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 options The options parameters.
   */
  getFunction(
    resourceGroupName: string,
    name: string,
    functionName: string,
    options?: WebAppsGetFunctionOptionalParams
  ): Promise<WebAppsGetFunctionResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateFunction(
    resourceGroupName: string,
    name: string,
    functionName: string,
    functionEnvelope: FunctionEnvelope,
    options?: WebAppsCreateFunctionOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateFunctionResponse>,
      WebAppsCreateFunctionResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateFunctionAndWait(
    resourceGroupName: string,
    name: string,
    functionName: string,
    functionEnvelope: FunctionEnvelope,
    options?: WebAppsCreateFunctionOptionalParams
  ): Promise<WebAppsCreateFunctionResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteFunction(
    resourceGroupName: string,
    name: string,
    functionName: string,
    options?: WebAppsDeleteFunctionOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateFunctionSecret(
    resourceGroupName: string,
    name: string,
    functionName: string,
    keyName: string,
    key: KeyInfo,
    options?: WebAppsCreateOrUpdateFunctionSecretOptionalParams
  ): Promise<WebAppsCreateOrUpdateFunctionSecretResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteFunctionSecret(
    resourceGroupName: string,
    name: string,
    functionName: string,
    keyName: string,
    options?: WebAppsDeleteFunctionSecretOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listFunctionKeys(
    resourceGroupName: string,
    name: string,
    functionName: string,
    options?: WebAppsListFunctionKeysOptionalParams
  ): Promise<WebAppsListFunctionKeysResponse>;
  /**
   * 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 options The options parameters.
   */
  listFunctionSecrets(
    resourceGroupName: string,
    name: string,
    functionName: string,
    options?: WebAppsListFunctionSecretsOptionalParams
  ): Promise<WebAppsListFunctionSecretsResponse>;
  /**
   * 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 options The options parameters.
   */
  listHostKeys(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListHostKeysOptionalParams
  ): Promise<WebAppsListHostKeysResponse>;
  /**
   * 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 options The options parameters.
   */
  listSyncStatus(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSyncStatusOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  syncFunctions(
    resourceGroupName: string,
    name: string,
    options?: WebAppsSyncFunctionsOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateHostSecret(
    resourceGroupName: string,
    name: string,
    keyType: string,
    keyName: string,
    key: KeyInfo,
    options?: WebAppsCreateOrUpdateHostSecretOptionalParams
  ): Promise<WebAppsCreateOrUpdateHostSecretResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteHostSecret(
    resourceGroupName: string,
    name: string,
    keyType: string,
    keyName: string,
    options?: WebAppsDeleteHostSecretOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getHostNameBinding(
    resourceGroupName: string,
    name: string,
    hostName: string,
    options?: WebAppsGetHostNameBindingOptionalParams
  ): Promise<WebAppsGetHostNameBindingResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateHostNameBinding(
    resourceGroupName: string,
    name: string,
    hostName: string,
    hostNameBinding: HostNameBinding,
    options?: WebAppsCreateOrUpdateHostNameBindingOptionalParams
  ): Promise<WebAppsCreateOrUpdateHostNameBindingResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteHostNameBinding(
    resourceGroupName: string,
    name: string,
    hostName: string,
    options?: WebAppsDeleteHostNameBindingOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getHybridConnection(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    options?: WebAppsGetHybridConnectionOptionalParams
  ): Promise<WebAppsGetHybridConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateHybridConnection(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    connectionEnvelope: HybridConnection,
    options?: WebAppsCreateOrUpdateHybridConnectionOptionalParams
  ): Promise<WebAppsCreateOrUpdateHybridConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteHybridConnection(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    options?: WebAppsDeleteHybridConnectionOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateHybridConnection(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    connectionEnvelope: HybridConnection,
    options?: WebAppsUpdateHybridConnectionOptionalParams
  ): Promise<WebAppsUpdateHybridConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  listHybridConnections(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListHybridConnectionsOptionalParams
  ): Promise<WebAppsListHybridConnectionsResponse>;
  /**
   * 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 options The options parameters.
   */
  listRelayServiceConnections(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListRelayServiceConnectionsOptionalParams
  ): Promise<WebAppsListRelayServiceConnectionsResponse>;
  /**
   * 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 options The options parameters.
   */
  getRelayServiceConnection(
    resourceGroupName: string,
    name: string,
    entityName: string,
    options?: WebAppsGetRelayServiceConnectionOptionalParams
  ): Promise<WebAppsGetRelayServiceConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateRelayServiceConnection(
    resourceGroupName: string,
    name: string,
    entityName: string,
    connectionEnvelope: RelayServiceConnectionEntity,
    options?: WebAppsCreateOrUpdateRelayServiceConnectionOptionalParams
  ): Promise<WebAppsCreateOrUpdateRelayServiceConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteRelayServiceConnection(
    resourceGroupName: string,
    name: string,
    entityName: string,
    options?: WebAppsDeleteRelayServiceConnectionOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateRelayServiceConnection(
    resourceGroupName: string,
    name: string,
    entityName: string,
    connectionEnvelope: RelayServiceConnectionEntity,
    options?: WebAppsUpdateRelayServiceConnectionOptionalParams
  ): Promise<WebAppsUpdateRelayServiceConnectionResponse>;
  /**
   * 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
   * @param options The options parameters.
   */
  getInstanceInfo(
    resourceGroupName: string,
    name: string,
    instanceId: string,
    options?: WebAppsGetInstanceInfoOptionalParams
  ): Promise<WebAppsGetInstanceInfoResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceMsDeployStatus(
    resourceGroupName: string,
    name: string,
    instanceId: string,
    options?: WebAppsGetInstanceMsDeployStatusOptionalParams
  ): Promise<WebAppsGetInstanceMsDeployStatusResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateInstanceMSDeployOperation(
    resourceGroupName: string,
    name: string,
    instanceId: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateInstanceMSDeployOperationOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateInstanceMSDeployOperationResponse>,
      WebAppsCreateInstanceMSDeployOperationResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateInstanceMSDeployOperationAndWait(
    resourceGroupName: string,
    name: string,
    instanceId: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateInstanceMSDeployOperationOptionalParams
  ): Promise<WebAppsCreateInstanceMSDeployOperationResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceMSDeployLog(
    resourceGroupName: string,
    name: string,
    instanceId: string,
    options?: WebAppsGetInstanceMSDeployLogOptionalParams
  ): Promise<WebAppsGetInstanceMSDeployLogResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceProcess(
    resourceGroupName: string,
    name: string,
    processId: string,
    instanceId: string,
    options?: WebAppsGetInstanceProcessOptionalParams
  ): Promise<WebAppsGetInstanceProcessResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteInstanceProcess(
    resourceGroupName: string,
    name: string,
    processId: string,
    instanceId: string,
    options?: WebAppsDeleteInstanceProcessOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getInstanceProcessDump(
    resourceGroupName: string,
    name: string,
    processId: string,
    instanceId: string,
    options?: WebAppsGetInstanceProcessDumpOptionalParams
  ): Promise<WebAppsGetInstanceProcessDumpResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceProcessModule(
    resourceGroupName: string,
    name: string,
    processId: string,
    baseAddress: string,
    instanceId: string,
    options?: WebAppsGetInstanceProcessModuleOptionalParams
  ): Promise<WebAppsGetInstanceProcessModuleResponse>;
  /**
   * 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 options The options parameters.
   */
  isCloneable(
    resourceGroupName: string,
    name: string,
    options?: WebAppsIsCloneableOptionalParams
  ): Promise<WebAppsIsCloneableResponse>;
  /**
   * 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 options The options parameters.
   */
  listSyncFunctionTriggers(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListSyncFunctionTriggersOptionalParams
  ): Promise<WebAppsListSyncFunctionTriggersResponse>;
  /**
   * 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 options The options parameters.
   */
  beginMigrateStorage(
    subscriptionName: string,
    resourceGroupName: string,
    name: string,
    migrationOptions: StorageMigrationOptions,
    options?: WebAppsMigrateStorageOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsMigrateStorageResponse>,
      WebAppsMigrateStorageResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginMigrateStorageAndWait(
    subscriptionName: string,
    resourceGroupName: string,
    name: string,
    migrationOptions: StorageMigrationOptions,
    options?: WebAppsMigrateStorageOptionalParams
  ): Promise<WebAppsMigrateStorageResponse>;
  /**
   * 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 options The options parameters.
   */
  beginMigrateMySql(
    resourceGroupName: string,
    name: string,
    migrationRequestEnvelope: MigrateMySqlRequest,
    options?: WebAppsMigrateMySqlOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsMigrateMySqlResponse>,
      WebAppsMigrateMySqlResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginMigrateMySqlAndWait(
    resourceGroupName: string,
    name: string,
    migrationRequestEnvelope: MigrateMySqlRequest,
    options?: WebAppsMigrateMySqlOptionalParams
  ): Promise<WebAppsMigrateMySqlResponse>;
  /**
   * 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 options The options parameters.
   */
  getMigrateMySqlStatus(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetMigrateMySqlStatusOptionalParams
  ): Promise<WebAppsGetMigrateMySqlStatusResponse>;
  /**
   * 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 options The options parameters.
   */
  getSwiftVirtualNetworkConnection(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetSwiftVirtualNetworkConnectionOptionalParams
  ): Promise<WebAppsGetSwiftVirtualNetworkConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateSwiftVirtualNetworkConnectionWithCheck(
    resourceGroupName: string,
    name: string,
    connectionEnvelope: SwiftVirtualNetwork,
    options?: WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckOptionalParams
  ): Promise<
    WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckResponse
  >;
  /**
   * 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 options The options parameters.
   */
  deleteSwiftVirtualNetwork(
    resourceGroupName: string,
    name: string,
    options?: WebAppsDeleteSwiftVirtualNetworkOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateSwiftVirtualNetworkConnectionWithCheck(
    resourceGroupName: string,
    name: string,
    connectionEnvelope: SwiftVirtualNetwork,
    options?: WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckOptionalParams
  ): Promise<WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckResponse>;
  /**
   * 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 options The options parameters.
   */
  listNetworkFeatures(
    resourceGroupName: string,
    name: string,
    view: string,
    options?: WebAppsListNetworkFeaturesOptionalParams
  ): Promise<WebAppsListNetworkFeaturesResponse>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTraceOperation(
    resourceGroupName: string,
    name: string,
    operationId: string,
    options?: WebAppsGetNetworkTraceOperationOptionalParams
  ): Promise<WebAppsGetNetworkTraceOperationResponse>;
  /**
   * 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 options The options parameters.
   */
  startWebSiteNetworkTrace(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStartWebSiteNetworkTraceOptionalParams
  ): Promise<WebAppsStartWebSiteNetworkTraceResponse>;
  /**
   * 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 options The options parameters.
   */
  beginStartWebSiteNetworkTraceOperation(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStartWebSiteNetworkTraceOperationOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsStartWebSiteNetworkTraceOperationResponse>,
      WebAppsStartWebSiteNetworkTraceOperationResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginStartWebSiteNetworkTraceOperationAndWait(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStartWebSiteNetworkTraceOperationOptionalParams
  ): Promise<WebAppsStartWebSiteNetworkTraceOperationResponse>;
  /**
   * 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 options The options parameters.
   */
  stopWebSiteNetworkTrace(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStopWebSiteNetworkTraceOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTraces(
    resourceGroupName: string,
    name: string,
    operationId: string,
    options?: WebAppsGetNetworkTracesOptionalParams
  ): Promise<WebAppsGetNetworkTracesResponse>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTraceOperationV2(
    resourceGroupName: string,
    name: string,
    operationId: string,
    options?: WebAppsGetNetworkTraceOperationV2OptionalParams
  ): Promise<WebAppsGetNetworkTraceOperationV2Response>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTracesV2(
    resourceGroupName: string,
    name: string,
    operationId: string,
    options?: WebAppsGetNetworkTracesV2OptionalParams
  ): Promise<WebAppsGetNetworkTracesV2Response>;
  /**
   * 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 options The options parameters.
   */
  generateNewSitePublishingPassword(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGenerateNewSitePublishingPasswordOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getSitePhpErrorLogFlag(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetSitePhpErrorLogFlagOptionalParams
  ): Promise<WebAppsGetSitePhpErrorLogFlagResponse>;
  /**
   * 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 options The options parameters.
   */
  listPremierAddOns(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListPremierAddOnsOptionalParams
  ): Promise<WebAppsListPremierAddOnsResponse>;
  /**
   * 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 options The options parameters.
   */
  getPremierAddOn(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    options?: WebAppsGetPremierAddOnOptionalParams
  ): Promise<WebAppsGetPremierAddOnResponse>;
  /**
   * 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 options The options parameters.
   */
  addPremierAddOn(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    premierAddOn: PremierAddOn,
    options?: WebAppsAddPremierAddOnOptionalParams
  ): Promise<WebAppsAddPremierAddOnResponse>;
  /**
   * 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 options The options parameters.
   */
  deletePremierAddOn(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    options?: WebAppsDeletePremierAddOnOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updatePremierAddOn(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    premierAddOn: PremierAddOnPatchResource,
    options?: WebAppsUpdatePremierAddOnOptionalParams
  ): Promise<WebAppsUpdatePremierAddOnResponse>;
  /**
   * 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 options The options parameters.
   */
  getPrivateAccess(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetPrivateAccessOptionalParams
  ): Promise<WebAppsGetPrivateAccessResponse>;
  /**
   * 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 options The options parameters.
   */
  putPrivateAccessVnet(
    resourceGroupName: string,
    name: string,
    access: PrivateAccess,
    options?: WebAppsPutPrivateAccessVnetOptionalParams
  ): Promise<WebAppsPutPrivateAccessVnetResponse>;
  /**
   * 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 options The options parameters.
   */
  getPrivateEndpointConnection(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    options?: WebAppsGetPrivateEndpointConnectionOptionalParams
  ): Promise<WebAppsGetPrivateEndpointConnectionResponse>;
  /**
   * 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
   * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
   * @param options The options parameters.
   */
  beginApproveOrRejectPrivateEndpointConnection(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    privateEndpointWrapper: PrivateLinkConnectionApprovalRequestResource,
    options?: WebAppsApproveOrRejectPrivateEndpointConnectionOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsApproveOrRejectPrivateEndpointConnectionResponse>,
      WebAppsApproveOrRejectPrivateEndpointConnectionResponse
    >
  >;
  /**
   * 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
   * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
   * @param options The options parameters.
   */
  beginApproveOrRejectPrivateEndpointConnectionAndWait(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    privateEndpointWrapper: PrivateLinkConnectionApprovalRequestResource,
    options?: WebAppsApproveOrRejectPrivateEndpointConnectionOptionalParams
  ): Promise<WebAppsApproveOrRejectPrivateEndpointConnectionResponse>;
  /**
   * 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
   * @param options The options parameters.
   */
  beginDeletePrivateEndpointConnection(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    options?: WebAppsDeletePrivateEndpointConnectionOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsDeletePrivateEndpointConnectionResponse>,
      WebAppsDeletePrivateEndpointConnectionResponse
    >
  >;
  /**
   * 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
   * @param options The options parameters.
   */
  beginDeletePrivateEndpointConnectionAndWait(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    options?: WebAppsDeletePrivateEndpointConnectionOptionalParams
  ): Promise<WebAppsDeletePrivateEndpointConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  getPrivateLinkResources(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetPrivateLinkResourcesOptionalParams
  ): Promise<WebAppsGetPrivateLinkResourcesResponse>;
  /**
   * 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 options The options parameters.
   */
  getProcess(
    resourceGroupName: string,
    name: string,
    processId: string,
    options?: WebAppsGetProcessOptionalParams
  ): Promise<WebAppsGetProcessResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteProcess(
    resourceGroupName: string,
    name: string,
    processId: string,
    options?: WebAppsDeleteProcessOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getProcessDump(
    resourceGroupName: string,
    name: string,
    processId: string,
    options?: WebAppsGetProcessDumpOptionalParams
  ): Promise<WebAppsGetProcessDumpResponse>;
  /**
   * 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 options The options parameters.
   */
  getProcessModule(
    resourceGroupName: string,
    name: string,
    processId: string,
    baseAddress: string,
    options?: WebAppsGetProcessModuleOptionalParams
  ): Promise<WebAppsGetProcessModuleResponse>;
  /**
   * 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 options The options parameters.
   */
  getPublicCertificate(
    resourceGroupName: string,
    name: string,
    publicCertificateName: string,
    options?: WebAppsGetPublicCertificateOptionalParams
  ): Promise<WebAppsGetPublicCertificateResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdatePublicCertificate(
    resourceGroupName: string,
    name: string,
    publicCertificateName: string,
    publicCertificate: PublicCertificate,
    options?: WebAppsCreateOrUpdatePublicCertificateOptionalParams
  ): Promise<WebAppsCreateOrUpdatePublicCertificateResponse>;
  /**
   * 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 options The options parameters.
   */
  deletePublicCertificate(
    resourceGroupName: string,
    name: string,
    publicCertificateName: string,
    options?: WebAppsDeletePublicCertificateOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listPublishingProfileXmlWithSecrets(
    resourceGroupName: string,
    name: string,
    publishingProfileOptions: CsmPublishingProfileOptions,
    options?: WebAppsListPublishingProfileXmlWithSecretsOptionalParams
  ): Promise<WebAppsListPublishingProfileXmlWithSecretsResponse>;
  /**
   * 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 options The options parameters.
   */
  resetProductionSlotConfig(
    resourceGroupName: string,
    name: string,
    options?: WebAppsResetProductionSlotConfigOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  restart(
    resourceGroupName: string,
    name: string,
    options?: WebAppsRestartOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromBackupBlob(
    resourceGroupName: string,
    name: string,
    request: RestoreRequest,
    options?: WebAppsRestoreFromBackupBlobOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromBackupBlobAndWait(
    resourceGroupName: string,
    name: string,
    request: RestoreRequest,
    options?: WebAppsRestoreFromBackupBlobOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromDeletedApp(
    resourceGroupName: string,
    name: string,
    restoreRequest: DeletedAppRestoreRequest,
    options?: WebAppsRestoreFromDeletedAppOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromDeletedAppAndWait(
    resourceGroupName: string,
    name: string,
    restoreRequest: DeletedAppRestoreRequest,
    options?: WebAppsRestoreFromDeletedAppOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreSnapshot(
    resourceGroupName: string,
    name: string,
    restoreRequest: SnapshotRestoreRequest,
    options?: WebAppsRestoreSnapshotOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreSnapshotAndWait(
    resourceGroupName: string,
    name: string,
    restoreRequest: SnapshotRestoreRequest,
    options?: WebAppsRestoreSnapshotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getSiteExtension(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    options?: WebAppsGetSiteExtensionOptionalParams
  ): Promise<WebAppsGetSiteExtensionResponse>;
  /**
   * 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 options The options parameters.
   */
  beginInstallSiteExtension(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    options?: WebAppsInstallSiteExtensionOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsInstallSiteExtensionResponse>,
      WebAppsInstallSiteExtensionResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginInstallSiteExtensionAndWait(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    options?: WebAppsInstallSiteExtensionOptionalParams
  ): Promise<WebAppsInstallSiteExtensionResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteSiteExtension(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    options?: WebAppsDeleteSiteExtensionOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetSlotOptionalParams
  ): Promise<WebAppsGetSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdateSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteEnvelope: Site,
    options?: WebAppsCreateOrUpdateSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateOrUpdateSlotResponse>,
      WebAppsCreateOrUpdateSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdateSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteEnvelope: Site,
    options?: WebAppsCreateOrUpdateSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsDeleteSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteEnvelope: SitePatchResource,
    options?: WebAppsUpdateSlotOptionalParams
  ): Promise<WebAppsUpdateSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  analyzeCustomHostnameSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsAnalyzeCustomHostnameSlotOptionalParams
  ): Promise<WebAppsAnalyzeCustomHostnameSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  applySlotConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsApplySlotConfigurationSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  backupSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    request: BackupRequest,
    options?: WebAppsBackupSlotOptionalParams
  ): Promise<WebAppsBackupSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getBackupStatusSlot(
    resourceGroupName: string,
    name: string,
    backupId: string,
    slot: string,
    options?: WebAppsGetBackupStatusSlotOptionalParams
  ): Promise<WebAppsGetBackupStatusSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteBackupSlot(
    resourceGroupName: string,
    name: string,
    backupId: string,
    slot: string,
    options?: WebAppsDeleteBackupSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listBackupStatusSecretsSlot(
    resourceGroupName: string,
    name: string,
    backupId: string,
    slot: string,
    request: BackupRequest,
    options?: WebAppsListBackupStatusSecretsSlotOptionalParams
  ): Promise<WebAppsListBackupStatusSecretsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreSlot(
    resourceGroupName: string,
    name: string,
    backupId: string,
    slot: string,
    request: RestoreRequest,
    options?: WebAppsRestoreSlotOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreSlotAndWait(
    resourceGroupName: string,
    name: string,
    backupId: string,
    slot: string,
    request: RestoreRequest,
    options?: WebAppsRestoreSlotOptionalParams
  ): Promise<void>;
  /**
   * 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
   * @param options The options parameters.
   */
  getFtpAllowedSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetFtpAllowedSlotOptionalParams
  ): Promise<WebAppsGetFtpAllowedSlotResponse>;
  /**
   * 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
   * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
   * @param options The options parameters.
   */
  updateFtpAllowedSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    csmPublishingAccessPoliciesEntity: CsmPublishingCredentialsPoliciesEntity,
    options?: WebAppsUpdateFtpAllowedSlotOptionalParams
  ): Promise<WebAppsUpdateFtpAllowedSlotResponse>;
  /**
   * 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
   * @param options The options parameters.
   */
  getScmAllowedSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetScmAllowedSlotOptionalParams
  ): Promise<WebAppsGetScmAllowedSlotResponse>;
  /**
   * 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
   * @param csmPublishingAccessPoliciesEntity Publishing Credentials Policies parameters.
   * @param options The options parameters.
   */
  updateScmAllowedSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    csmPublishingAccessPoliciesEntity: CsmPublishingCredentialsPoliciesEntity,
    options?: WebAppsUpdateScmAllowedSlotOptionalParams
  ): Promise<WebAppsUpdateScmAllowedSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateApplicationSettingsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    appSettings: StringDictionary,
    options?: WebAppsUpdateApplicationSettingsSlotOptionalParams
  ): Promise<WebAppsUpdateApplicationSettingsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listApplicationSettingsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListApplicationSettingsSlotOptionalParams
  ): Promise<WebAppsListApplicationSettingsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateAuthSettingsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteAuthSettings: SiteAuthSettings,
    options?: WebAppsUpdateAuthSettingsSlotOptionalParams
  ): Promise<WebAppsUpdateAuthSettingsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getAuthSettingsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetAuthSettingsSlotOptionalParams
  ): Promise<WebAppsGetAuthSettingsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getAuthSettingsV2WithoutSecretsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetAuthSettingsV2WithoutSecretsSlotOptionalParams
  ): Promise<WebAppsGetAuthSettingsV2WithoutSecretsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateAuthSettingsV2Slot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteAuthSettingsV2: SiteAuthSettingsV2,
    options?: WebAppsUpdateAuthSettingsV2SlotOptionalParams
  ): Promise<WebAppsUpdateAuthSettingsV2SlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getAuthSettingsV2Slot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetAuthSettingsV2SlotOptionalParams
  ): Promise<WebAppsGetAuthSettingsV2SlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateAzureStorageAccountsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    azureStorageAccounts: AzureStoragePropertyDictionaryResource,
    options?: WebAppsUpdateAzureStorageAccountsSlotOptionalParams
  ): Promise<WebAppsUpdateAzureStorageAccountsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listAzureStorageAccountsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListAzureStorageAccountsSlotOptionalParams
  ): Promise<WebAppsListAzureStorageAccountsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateBackupConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    request: BackupRequest,
    options?: WebAppsUpdateBackupConfigurationSlotOptionalParams
  ): Promise<WebAppsUpdateBackupConfigurationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteBackupConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsDeleteBackupConfigurationSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getBackupConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetBackupConfigurationSlotOptionalParams
  ): Promise<WebAppsGetBackupConfigurationSlotResponse>;
  /**
   * 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
   * @param options The options parameters.
   */
  getAppSettingKeyVaultReferenceSlot(
    resourceGroupName: string,
    name: string,
    appSettingKey: string,
    slot: string,
    options?: WebAppsGetAppSettingKeyVaultReferenceSlotOptionalParams
  ): Promise<WebAppsGetAppSettingKeyVaultReferenceSlotResponse>;
  /**
   * 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
   * @param slot
   * @param options The options parameters.
   */
  getSiteConnectionStringKeyVaultReferenceSlot(
    resourceGroupName: string,
    name: string,
    connectionStringKey: string,
    slot: string,
    options?: WebAppsGetSiteConnectionStringKeyVaultReferenceSlotOptionalParams
  ): Promise<WebAppsGetSiteConnectionStringKeyVaultReferenceSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateConnectionStringsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    connectionStrings: ConnectionStringDictionary,
    options?: WebAppsUpdateConnectionStringsSlotOptionalParams
  ): Promise<WebAppsUpdateConnectionStringsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listConnectionStringsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListConnectionStringsSlotOptionalParams
  ): Promise<WebAppsListConnectionStringsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getDiagnosticLogsConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetDiagnosticLogsConfigurationSlotOptionalParams
  ): Promise<WebAppsGetDiagnosticLogsConfigurationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateDiagnosticLogsConfigSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteLogsConfig: SiteLogsConfig,
    options?: WebAppsUpdateDiagnosticLogsConfigSlotOptionalParams
  ): Promise<WebAppsUpdateDiagnosticLogsConfigSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateMetadataSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    metadata: StringDictionary,
    options?: WebAppsUpdateMetadataSlotOptionalParams
  ): Promise<WebAppsUpdateMetadataSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listMetadataSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListMetadataSlotOptionalParams
  ): Promise<WebAppsListMetadataSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginListPublishingCredentialsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListPublishingCredentialsSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsListPublishingCredentialsSlotResponse>,
      WebAppsListPublishingCredentialsSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginListPublishingCredentialsSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListPublishingCredentialsSlotOptionalParams
  ): Promise<WebAppsListPublishingCredentialsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateSitePushSettingsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    pushSettings: PushSettings,
    options?: WebAppsUpdateSitePushSettingsSlotOptionalParams
  ): Promise<WebAppsUpdateSitePushSettingsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listSitePushSettingsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSitePushSettingsSlotOptionalParams
  ): Promise<WebAppsListSitePushSettingsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetConfigurationSlotOptionalParams
  ): Promise<WebAppsGetConfigurationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteConfig: SiteConfigResource,
    options?: WebAppsCreateOrUpdateConfigurationSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateConfigurationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteConfig: SiteConfigResource,
    options?: WebAppsUpdateConfigurationSlotOptionalParams
  ): Promise<WebAppsUpdateConfigurationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getConfigurationSnapshotSlot(
    resourceGroupName: string,
    name: string,
    snapshotId: string,
    slot: string,
    options?: WebAppsGetConfigurationSnapshotSlotOptionalParams
  ): Promise<WebAppsGetConfigurationSnapshotSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  recoverSiteConfigurationSnapshotSlot(
    resourceGroupName: string,
    name: string,
    snapshotId: string,
    slot: string,
    options?: WebAppsRecoverSiteConfigurationSnapshotSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getWebSiteContainerLogsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetWebSiteContainerLogsSlotOptionalParams
  ): Promise<WebAppsGetWebSiteContainerLogsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getContainerLogsZipSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetContainerLogsZipSlotOptionalParams
  ): Promise<WebAppsGetContainerLogsZipSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getContinuousWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsGetContinuousWebJobSlotOptionalParams
  ): Promise<WebAppsGetContinuousWebJobSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteContinuousWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsDeleteContinuousWebJobSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  startContinuousWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsStartContinuousWebJobSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  stopContinuousWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsStopContinuousWebJobSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginGetSlotSiteDeploymentStatusSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    deploymentStatusId: string,
    options?: WebAppsGetSlotSiteDeploymentStatusSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsGetSlotSiteDeploymentStatusSlotResponse>,
      WebAppsGetSlotSiteDeploymentStatusSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginGetSlotSiteDeploymentStatusSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    deploymentStatusId: string,
    options?: WebAppsGetSlotSiteDeploymentStatusSlotOptionalParams
  ): Promise<WebAppsGetSlotSiteDeploymentStatusSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getDeploymentSlot(
    resourceGroupName: string,
    name: string,
    id: string,
    slot: string,
    options?: WebAppsGetDeploymentSlotOptionalParams
  ): Promise<WebAppsGetDeploymentSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createDeploymentSlot(
    resourceGroupName: string,
    name: string,
    id: string,
    slot: string,
    deployment: Deployment,
    options?: WebAppsCreateDeploymentSlotOptionalParams
  ): Promise<WebAppsCreateDeploymentSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteDeploymentSlot(
    resourceGroupName: string,
    name: string,
    id: string,
    slot: string,
    options?: WebAppsDeleteDeploymentSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listDeploymentLogSlot(
    resourceGroupName: string,
    name: string,
    id: string,
    slot: string,
    options?: WebAppsListDeploymentLogSlotOptionalParams
  ): Promise<WebAppsListDeploymentLogSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  discoverBackupSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    request: RestoreRequest,
    options?: WebAppsDiscoverBackupSlotOptionalParams
  ): Promise<WebAppsDiscoverBackupSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getDomainOwnershipIdentifierSlot(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    slot: string,
    options?: WebAppsGetDomainOwnershipIdentifierSlotOptionalParams
  ): Promise<WebAppsGetDomainOwnershipIdentifierSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateDomainOwnershipIdentifierSlot(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    slot: string,
    domainOwnershipIdentifier: Identifier,
    options?: WebAppsCreateOrUpdateDomainOwnershipIdentifierSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateDomainOwnershipIdentifierSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteDomainOwnershipIdentifierSlot(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    slot: string,
    options?: WebAppsDeleteDomainOwnershipIdentifierSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateDomainOwnershipIdentifierSlot(
    resourceGroupName: string,
    name: string,
    domainOwnershipIdentifierName: string,
    slot: string,
    domainOwnershipIdentifier: Identifier,
    options?: WebAppsUpdateDomainOwnershipIdentifierSlotOptionalParams
  ): Promise<WebAppsUpdateDomainOwnershipIdentifierSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getMSDeployStatusSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetMSDeployStatusSlotOptionalParams
  ): Promise<WebAppsGetMSDeployStatusSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateMSDeployOperationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateMSDeployOperationSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateMSDeployOperationSlotResponse>,
      WebAppsCreateMSDeployOperationSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateMSDeployOperationSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateMSDeployOperationSlotOptionalParams
  ): Promise<WebAppsCreateMSDeployOperationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getMSDeployLogSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetMSDeployLogSlotOptionalParams
  ): Promise<WebAppsGetMSDeployLogSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getFunctionsAdminTokenSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetFunctionsAdminTokenSlotOptionalParams
  ): Promise<WebAppsGetFunctionsAdminTokenSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceFunctionSlot(
    resourceGroupName: string,
    name: string,
    functionName: string,
    slot: string,
    options?: WebAppsGetInstanceFunctionSlotOptionalParams
  ): Promise<WebAppsGetInstanceFunctionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateInstanceFunctionSlot(
    resourceGroupName: string,
    name: string,
    functionName: string,
    slot: string,
    functionEnvelope: FunctionEnvelope,
    options?: WebAppsCreateInstanceFunctionSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateInstanceFunctionSlotResponse>,
      WebAppsCreateInstanceFunctionSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateInstanceFunctionSlotAndWait(
    resourceGroupName: string,
    name: string,
    functionName: string,
    slot: string,
    functionEnvelope: FunctionEnvelope,
    options?: WebAppsCreateInstanceFunctionSlotOptionalParams
  ): Promise<WebAppsCreateInstanceFunctionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteInstanceFunctionSlot(
    resourceGroupName: string,
    name: string,
    functionName: string,
    slot: string,
    options?: WebAppsDeleteInstanceFunctionSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateFunctionSecretSlot(
    resourceGroupName: string,
    name: string,
    functionName: string,
    keyName: string,
    slot: string,
    key: KeyInfo,
    options?: WebAppsCreateOrUpdateFunctionSecretSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateFunctionSecretSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteFunctionSecretSlot(
    resourceGroupName: string,
    name: string,
    functionName: string,
    keyName: string,
    slot: string,
    options?: WebAppsDeleteFunctionSecretSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listFunctionKeysSlot(
    resourceGroupName: string,
    name: string,
    functionName: string,
    slot: string,
    options?: WebAppsListFunctionKeysSlotOptionalParams
  ): Promise<WebAppsListFunctionKeysSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listFunctionSecretsSlot(
    resourceGroupName: string,
    name: string,
    functionName: string,
    slot: string,
    options?: WebAppsListFunctionSecretsSlotOptionalParams
  ): Promise<WebAppsListFunctionSecretsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listHostKeysSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListHostKeysSlotOptionalParams
  ): Promise<WebAppsListHostKeysSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listSyncStatusSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSyncStatusSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  syncFunctionsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsSyncFunctionsSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateHostSecretSlot(
    resourceGroupName: string,
    name: string,
    keyType: string,
    keyName: string,
    slot: string,
    key: KeyInfo,
    options?: WebAppsCreateOrUpdateHostSecretSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateHostSecretSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteHostSecretSlot(
    resourceGroupName: string,
    name: string,
    keyType: string,
    keyName: string,
    slot: string,
    options?: WebAppsDeleteHostSecretSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getHostNameBindingSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    hostName: string,
    options?: WebAppsGetHostNameBindingSlotOptionalParams
  ): Promise<WebAppsGetHostNameBindingSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateHostNameBindingSlot(
    resourceGroupName: string,
    name: string,
    hostName: string,
    slot: string,
    hostNameBinding: HostNameBinding,
    options?: WebAppsCreateOrUpdateHostNameBindingSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateHostNameBindingSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteHostNameBindingSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    hostName: string,
    options?: WebAppsDeleteHostNameBindingSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getHybridConnectionSlot(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    slot: string,
    options?: WebAppsGetHybridConnectionSlotOptionalParams
  ): Promise<WebAppsGetHybridConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateHybridConnectionSlot(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    slot: string,
    connectionEnvelope: HybridConnection,
    options?: WebAppsCreateOrUpdateHybridConnectionSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateHybridConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteHybridConnectionSlot(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    slot: string,
    options?: WebAppsDeleteHybridConnectionSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateHybridConnectionSlot(
    resourceGroupName: string,
    name: string,
    namespaceName: string,
    relayName: string,
    slot: string,
    connectionEnvelope: HybridConnection,
    options?: WebAppsUpdateHybridConnectionSlotOptionalParams
  ): Promise<WebAppsUpdateHybridConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listHybridConnectionsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListHybridConnectionsSlotOptionalParams
  ): Promise<WebAppsListHybridConnectionsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listRelayServiceConnectionsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListRelayServiceConnectionsSlotOptionalParams
  ): Promise<WebAppsListRelayServiceConnectionsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getRelayServiceConnectionSlot(
    resourceGroupName: string,
    name: string,
    entityName: string,
    slot: string,
    options?: WebAppsGetRelayServiceConnectionSlotOptionalParams
  ): Promise<WebAppsGetRelayServiceConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateRelayServiceConnectionSlot(
    resourceGroupName: string,
    name: string,
    entityName: string,
    slot: string,
    connectionEnvelope: RelayServiceConnectionEntity,
    options?: WebAppsCreateOrUpdateRelayServiceConnectionSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateRelayServiceConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteRelayServiceConnectionSlot(
    resourceGroupName: string,
    name: string,
    entityName: string,
    slot: string,
    options?: WebAppsDeleteRelayServiceConnectionSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateRelayServiceConnectionSlot(
    resourceGroupName: string,
    name: string,
    entityName: string,
    slot: string,
    connectionEnvelope: RelayServiceConnectionEntity,
    options?: WebAppsUpdateRelayServiceConnectionSlotOptionalParams
  ): Promise<WebAppsUpdateRelayServiceConnectionSlotResponse>;
  /**
   * 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
   * @param slot Name of the deployment slot. If a slot is not specified, the API gets the production
   *             slot instances.
   * @param options The options parameters.
   */
  getInstanceInfoSlot(
    resourceGroupName: string,
    name: string,
    instanceId: string,
    slot: string,
    options?: WebAppsGetInstanceInfoSlotOptionalParams
  ): Promise<WebAppsGetInstanceInfoSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceMsDeployStatusSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    instanceId: string,
    options?: WebAppsGetInstanceMsDeployStatusSlotOptionalParams
  ): Promise<WebAppsGetInstanceMsDeployStatusSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateInstanceMSDeployOperationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    instanceId: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateInstanceMSDeployOperationSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateInstanceMSDeployOperationSlotResponse>,
      WebAppsCreateInstanceMSDeployOperationSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateInstanceMSDeployOperationSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    instanceId: string,
    mSDeploy: MSDeploy,
    options?: WebAppsCreateInstanceMSDeployOperationSlotOptionalParams
  ): Promise<WebAppsCreateInstanceMSDeployOperationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceMSDeployLogSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    instanceId: string,
    options?: WebAppsGetInstanceMSDeployLogSlotOptionalParams
  ): Promise<WebAppsGetInstanceMSDeployLogSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceProcessSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    instanceId: string,
    options?: WebAppsGetInstanceProcessSlotOptionalParams
  ): Promise<WebAppsGetInstanceProcessSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteInstanceProcessSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    instanceId: string,
    options?: WebAppsDeleteInstanceProcessSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getInstanceProcessDumpSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    instanceId: string,
    options?: WebAppsGetInstanceProcessDumpSlotOptionalParams
  ): Promise<WebAppsGetInstanceProcessDumpSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getInstanceProcessModuleSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    baseAddress: string,
    slot: string,
    instanceId: string,
    options?: WebAppsGetInstanceProcessModuleSlotOptionalParams
  ): Promise<WebAppsGetInstanceProcessModuleSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  isCloneableSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsIsCloneableSlotOptionalParams
  ): Promise<WebAppsIsCloneableSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listSyncFunctionTriggersSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListSyncFunctionTriggersSlotOptionalParams
  ): Promise<WebAppsListSyncFunctionTriggersSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getMigrateMySqlStatusSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetMigrateMySqlStatusSlotOptionalParams
  ): Promise<WebAppsGetMigrateMySqlStatusSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getSwiftVirtualNetworkConnectionSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetSwiftVirtualNetworkConnectionSlotOptionalParams
  ): Promise<WebAppsGetSwiftVirtualNetworkConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateSwiftVirtualNetworkConnectionWithCheckSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    connectionEnvelope: SwiftVirtualNetwork,
    options?: WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotOptionalParams
  ): Promise<
    WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotResponse
  >;
  /**
   * 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 options The options parameters.
   */
  deleteSwiftVirtualNetworkSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsDeleteSwiftVirtualNetworkSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateSwiftVirtualNetworkConnectionWithCheckSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    connectionEnvelope: SwiftVirtualNetwork,
    options?: WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckSlotOptionalParams
  ): Promise<WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listNetworkFeaturesSlot(
    resourceGroupName: string,
    name: string,
    view: string,
    slot: string,
    options?: WebAppsListNetworkFeaturesSlotOptionalParams
  ): Promise<WebAppsListNetworkFeaturesSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTraceOperationSlot(
    resourceGroupName: string,
    name: string,
    operationId: string,
    slot: string,
    options?: WebAppsGetNetworkTraceOperationSlotOptionalParams
  ): Promise<WebAppsGetNetworkTraceOperationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  startWebSiteNetworkTraceSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStartWebSiteNetworkTraceSlotOptionalParams
  ): Promise<WebAppsStartWebSiteNetworkTraceSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginStartWebSiteNetworkTraceOperationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStartWebSiteNetworkTraceOperationSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsStartWebSiteNetworkTraceOperationSlotResponse>,
      WebAppsStartWebSiteNetworkTraceOperationSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginStartWebSiteNetworkTraceOperationSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStartWebSiteNetworkTraceOperationSlotOptionalParams
  ): Promise<WebAppsStartWebSiteNetworkTraceOperationSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  stopWebSiteNetworkTraceSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStopWebSiteNetworkTraceSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTracesSlot(
    resourceGroupName: string,
    name: string,
    operationId: string,
    slot: string,
    options?: WebAppsGetNetworkTracesSlotOptionalParams
  ): Promise<WebAppsGetNetworkTracesSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTraceOperationSlotV2(
    resourceGroupName: string,
    name: string,
    operationId: string,
    slot: string,
    options?: WebAppsGetNetworkTraceOperationSlotV2OptionalParams
  ): Promise<WebAppsGetNetworkTraceOperationSlotV2Response>;
  /**
   * 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 options The options parameters.
   */
  getNetworkTracesSlotV2(
    resourceGroupName: string,
    name: string,
    operationId: string,
    slot: string,
    options?: WebAppsGetNetworkTracesSlotV2OptionalParams
  ): Promise<WebAppsGetNetworkTracesSlotV2Response>;
  /**
   * 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 options The options parameters.
   */
  generateNewSitePublishingPasswordSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGenerateNewSitePublishingPasswordSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getSitePhpErrorLogFlagSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetSitePhpErrorLogFlagSlotOptionalParams
  ): Promise<WebAppsGetSitePhpErrorLogFlagSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listPremierAddOnsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListPremierAddOnsSlotOptionalParams
  ): Promise<WebAppsListPremierAddOnsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getPremierAddOnSlot(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    slot: string,
    options?: WebAppsGetPremierAddOnSlotOptionalParams
  ): Promise<WebAppsGetPremierAddOnSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  addPremierAddOnSlot(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    slot: string,
    premierAddOn: PremierAddOn,
    options?: WebAppsAddPremierAddOnSlotOptionalParams
  ): Promise<WebAppsAddPremierAddOnSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deletePremierAddOnSlot(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    slot: string,
    options?: WebAppsDeletePremierAddOnSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updatePremierAddOnSlot(
    resourceGroupName: string,
    name: string,
    premierAddOnName: string,
    slot: string,
    premierAddOn: PremierAddOnPatchResource,
    options?: WebAppsUpdatePremierAddOnSlotOptionalParams
  ): Promise<WebAppsUpdatePremierAddOnSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getPrivateAccessSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetPrivateAccessSlotOptionalParams
  ): Promise<WebAppsGetPrivateAccessSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  putPrivateAccessVnetSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    access: PrivateAccess,
    options?: WebAppsPutPrivateAccessVnetSlotOptionalParams
  ): Promise<WebAppsPutPrivateAccessVnetSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getPrivateEndpointConnectionSlot(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    slot: string,
    options?: WebAppsGetPrivateEndpointConnectionSlotOptionalParams
  ): Promise<WebAppsGetPrivateEndpointConnectionSlotResponse>;
  /**
   * 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
   * @param slot
   * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
   * @param options The options parameters.
   */
  beginApproveOrRejectPrivateEndpointConnectionSlot(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    slot: string,
    privateEndpointWrapper: PrivateLinkConnectionApprovalRequestResource,
    options?: WebAppsApproveOrRejectPrivateEndpointConnectionSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<
        WebAppsApproveOrRejectPrivateEndpointConnectionSlotResponse
      >,
      WebAppsApproveOrRejectPrivateEndpointConnectionSlotResponse
    >
  >;
  /**
   * 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
   * @param slot
   * @param privateEndpointWrapper Private Endpoint Connection Approval ARM resource.
   * @param options The options parameters.
   */
  beginApproveOrRejectPrivateEndpointConnectionSlotAndWait(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    slot: string,
    privateEndpointWrapper: PrivateLinkConnectionApprovalRequestResource,
    options?: WebAppsApproveOrRejectPrivateEndpointConnectionSlotOptionalParams
  ): Promise<WebAppsApproveOrRejectPrivateEndpointConnectionSlotResponse>;
  /**
   * 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
   * @param slot
   * @param options The options parameters.
   */
  beginDeletePrivateEndpointConnectionSlot(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    slot: string,
    options?: WebAppsDeletePrivateEndpointConnectionSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsDeletePrivateEndpointConnectionSlotResponse>,
      WebAppsDeletePrivateEndpointConnectionSlotResponse
    >
  >;
  /**
   * 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
   * @param slot
   * @param options The options parameters.
   */
  beginDeletePrivateEndpointConnectionSlotAndWait(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    slot: string,
    options?: WebAppsDeletePrivateEndpointConnectionSlotOptionalParams
  ): Promise<WebAppsDeletePrivateEndpointConnectionSlotResponse>;
  /**
   * 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
   * @param options The options parameters.
   */
  getPrivateLinkResourcesSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetPrivateLinkResourcesSlotOptionalParams
  ): Promise<WebAppsGetPrivateLinkResourcesSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getProcessSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    options?: WebAppsGetProcessSlotOptionalParams
  ): Promise<WebAppsGetProcessSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteProcessSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    options?: WebAppsDeleteProcessSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getProcessDumpSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    slot: string,
    options?: WebAppsGetProcessDumpSlotOptionalParams
  ): Promise<WebAppsGetProcessDumpSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getProcessModuleSlot(
    resourceGroupName: string,
    name: string,
    processId: string,
    baseAddress: string,
    slot: string,
    options?: WebAppsGetProcessModuleSlotOptionalParams
  ): Promise<WebAppsGetProcessModuleSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getPublicCertificateSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    publicCertificateName: string,
    options?: WebAppsGetPublicCertificateSlotOptionalParams
  ): Promise<WebAppsGetPublicCertificateSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdatePublicCertificateSlot(
    resourceGroupName: string,
    name: string,
    publicCertificateName: string,
    slot: string,
    publicCertificate: PublicCertificate,
    options?: WebAppsCreateOrUpdatePublicCertificateSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdatePublicCertificateSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deletePublicCertificateSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    publicCertificateName: string,
    options?: WebAppsDeletePublicCertificateSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listPublishingProfileXmlWithSecretsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    publishingProfileOptions: CsmPublishingProfileOptions,
    options?: WebAppsListPublishingProfileXmlWithSecretsSlotOptionalParams
  ): Promise<WebAppsListPublishingProfileXmlWithSecretsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  resetSlotConfigurationSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsResetSlotConfigurationSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  restartSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsRestartSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromBackupBlobSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    request: RestoreRequest,
    options?: WebAppsRestoreFromBackupBlobSlotOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromBackupBlobSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    request: RestoreRequest,
    options?: WebAppsRestoreFromBackupBlobSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromDeletedAppSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    restoreRequest: DeletedAppRestoreRequest,
    options?: WebAppsRestoreFromDeletedAppSlotOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreFromDeletedAppSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    restoreRequest: DeletedAppRestoreRequest,
    options?: WebAppsRestoreFromDeletedAppSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreSnapshotSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    restoreRequest: SnapshotRestoreRequest,
    options?: WebAppsRestoreSnapshotSlotOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginRestoreSnapshotSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    restoreRequest: SnapshotRestoreRequest,
    options?: WebAppsRestoreSnapshotSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getSiteExtensionSlot(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    slot: string,
    options?: WebAppsGetSiteExtensionSlotOptionalParams
  ): Promise<WebAppsGetSiteExtensionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginInstallSiteExtensionSlot(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    slot: string,
    options?: WebAppsInstallSiteExtensionSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsInstallSiteExtensionSlotResponse>,
      WebAppsInstallSiteExtensionSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginInstallSiteExtensionSlotAndWait(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    slot: string,
    options?: WebAppsInstallSiteExtensionSlotOptionalParams
  ): Promise<WebAppsInstallSiteExtensionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteSiteExtensionSlot(
    resourceGroupName: string,
    name: string,
    siteExtensionId: string,
    slot: string,
    options?: WebAppsDeleteSiteExtensionSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginSwapSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsSwapSlotOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginSwapSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsSwapSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getSourceControlSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsGetSourceControlSlotOptionalParams
  ): Promise<WebAppsGetSourceControlSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdateSourceControlSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteSourceControl: SiteSourceControl,
    options?: WebAppsCreateOrUpdateSourceControlSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateOrUpdateSourceControlSlotResponse>,
      WebAppsCreateOrUpdateSourceControlSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdateSourceControlSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteSourceControl: SiteSourceControl,
    options?: WebAppsCreateOrUpdateSourceControlSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateSourceControlSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteSourceControlSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsDeleteSourceControlSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateSourceControlSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    siteSourceControl: SiteSourceControl,
    options?: WebAppsUpdateSourceControlSlotOptionalParams
  ): Promise<WebAppsUpdateSourceControlSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  startSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStartSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginStartNetworkTraceSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStartNetworkTraceSlotOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsStartNetworkTraceSlotResponse>,
      WebAppsStartNetworkTraceSlotResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginStartNetworkTraceSlotAndWait(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStartNetworkTraceSlotOptionalParams
  ): Promise<WebAppsStartNetworkTraceSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  stopSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStopSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  stopNetworkTraceSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsStopNetworkTraceSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  syncRepositorySlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsSyncRepositorySlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  syncFunctionTriggersSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsSyncFunctionTriggersSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getTriggeredWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsGetTriggeredWebJobSlotOptionalParams
  ): Promise<WebAppsGetTriggeredWebJobSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteTriggeredWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsDeleteTriggeredWebJobSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getTriggeredWebJobHistorySlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    id: string,
    slot: string,
    options?: WebAppsGetTriggeredWebJobHistorySlotOptionalParams
  ): Promise<WebAppsGetTriggeredWebJobHistorySlotResponse>;
  /**
   * 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 options The options parameters.
   */
  runTriggeredWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsRunTriggeredWebJobSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listVnetConnectionsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListVnetConnectionsSlotOptionalParams
  ): Promise<WebAppsListVnetConnectionsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getVnetConnectionSlot(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    slot: string,
    options?: WebAppsGetVnetConnectionSlotOptionalParams
  ): Promise<WebAppsGetVnetConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateVnetConnectionSlot(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    slot: string,
    connectionEnvelope: VnetInfoResource,
    options?: WebAppsCreateOrUpdateVnetConnectionSlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateVnetConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteVnetConnectionSlot(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    slot: string,
    options?: WebAppsDeleteVnetConnectionSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateVnetConnectionSlot(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    slot: string,
    connectionEnvelope: VnetInfoResource,
    options?: WebAppsUpdateVnetConnectionSlotOptionalParams
  ): Promise<WebAppsUpdateVnetConnectionSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getVnetConnectionGatewaySlot(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    gatewayName: string,
    slot: string,
    options?: WebAppsGetVnetConnectionGatewaySlotOptionalParams
  ): Promise<WebAppsGetVnetConnectionGatewaySlotResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateVnetConnectionGatewaySlot(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    gatewayName: string,
    slot: string,
    connectionEnvelope: VnetGateway,
    options?: WebAppsCreateOrUpdateVnetConnectionGatewaySlotOptionalParams
  ): Promise<WebAppsCreateOrUpdateVnetConnectionGatewaySlotResponse>;
  /**
   * 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 options The options parameters.
   */
  updateVnetConnectionGatewaySlot(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    gatewayName: string,
    slot: string,
    connectionEnvelope: VnetGateway,
    options?: WebAppsUpdateVnetConnectionGatewaySlotOptionalParams
  ): Promise<WebAppsUpdateVnetConnectionGatewaySlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getWebJobSlot(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    slot: string,
    options?: WebAppsGetWebJobSlotOptionalParams
  ): Promise<WebAppsGetWebJobSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  beginSwapSlotWithProduction(
    resourceGroupName: string,
    name: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsSwapSlotWithProductionOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * 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 options The options parameters.
   */
  beginSwapSlotWithProductionAndWait(
    resourceGroupName: string,
    name: string,
    slotSwapEntity: CsmSlotEntity,
    options?: WebAppsSwapSlotWithProductionOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getSourceControl(
    resourceGroupName: string,
    name: string,
    options?: WebAppsGetSourceControlOptionalParams
  ): Promise<WebAppsGetSourceControlResponse>;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdateSourceControl(
    resourceGroupName: string,
    name: string,
    siteSourceControl: SiteSourceControl,
    options?: WebAppsCreateOrUpdateSourceControlOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsCreateOrUpdateSourceControlResponse>,
      WebAppsCreateOrUpdateSourceControlResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginCreateOrUpdateSourceControlAndWait(
    resourceGroupName: string,
    name: string,
    siteSourceControl: SiteSourceControl,
    options?: WebAppsCreateOrUpdateSourceControlOptionalParams
  ): Promise<WebAppsCreateOrUpdateSourceControlResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteSourceControl(
    resourceGroupName: string,
    name: string,
    options?: WebAppsDeleteSourceControlOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateSourceControl(
    resourceGroupName: string,
    name: string,
    siteSourceControl: SiteSourceControl,
    options?: WebAppsUpdateSourceControlOptionalParams
  ): Promise<WebAppsUpdateSourceControlResponse>;
  /**
   * 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 options The options parameters.
   */
  start(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStartOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  beginStartNetworkTrace(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStartNetworkTraceOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<WebAppsStartNetworkTraceResponse>,
      WebAppsStartNetworkTraceResponse
    >
  >;
  /**
   * 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 options The options parameters.
   */
  beginStartNetworkTraceAndWait(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStartNetworkTraceOptionalParams
  ): Promise<WebAppsStartNetworkTraceResponse>;
  /**
   * 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 options The options parameters.
   */
  stop(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStopOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  stopNetworkTrace(
    resourceGroupName: string,
    name: string,
    options?: WebAppsStopNetworkTraceOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  syncRepository(
    resourceGroupName: string,
    name: string,
    options?: WebAppsSyncRepositoryOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  syncFunctionTriggers(
    resourceGroupName: string,
    name: string,
    options?: WebAppsSyncFunctionTriggersOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getTriggeredWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsGetTriggeredWebJobOptionalParams
  ): Promise<WebAppsGetTriggeredWebJobResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteTriggeredWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsDeleteTriggeredWebJobOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getTriggeredWebJobHistory(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    id: string,
    options?: WebAppsGetTriggeredWebJobHistoryOptionalParams
  ): Promise<WebAppsGetTriggeredWebJobHistoryResponse>;
  /**
   * 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 options The options parameters.
   */
  runTriggeredWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsRunTriggeredWebJobOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  listVnetConnections(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListVnetConnectionsOptionalParams
  ): Promise<WebAppsListVnetConnectionsResponse>;
  /**
   * 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 options The options parameters.
   */
  getVnetConnection(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    options?: WebAppsGetVnetConnectionOptionalParams
  ): Promise<WebAppsGetVnetConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateVnetConnection(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    connectionEnvelope: VnetInfoResource,
    options?: WebAppsCreateOrUpdateVnetConnectionOptionalParams
  ): Promise<WebAppsCreateOrUpdateVnetConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  deleteVnetConnection(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    options?: WebAppsDeleteVnetConnectionOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  updateVnetConnection(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    connectionEnvelope: VnetInfoResource,
    options?: WebAppsUpdateVnetConnectionOptionalParams
  ): Promise<WebAppsUpdateVnetConnectionResponse>;
  /**
   * 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 options The options parameters.
   */
  getVnetConnectionGateway(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    gatewayName: string,
    options?: WebAppsGetVnetConnectionGatewayOptionalParams
  ): Promise<WebAppsGetVnetConnectionGatewayResponse>;
  /**
   * 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 options The options parameters.
   */
  createOrUpdateVnetConnectionGateway(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    gatewayName: string,
    connectionEnvelope: VnetGateway,
    options?: WebAppsCreateOrUpdateVnetConnectionGatewayOptionalParams
  ): Promise<WebAppsCreateOrUpdateVnetConnectionGatewayResponse>;
  /**
   * 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 options The options parameters.
   */
  updateVnetConnectionGateway(
    resourceGroupName: string,
    name: string,
    vnetName: string,
    gatewayName: string,
    connectionEnvelope: VnetGateway,
    options?: WebAppsUpdateVnetConnectionGatewayOptionalParams
  ): Promise<WebAppsUpdateVnetConnectionGatewayResponse>;
  /**
   * 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 options The options parameters.
   */
  getWebJob(
    resourceGroupName: string,
    name: string,
    webJobName: string,
    options?: WebAppsGetWebJobOptionalParams
  ): Promise<WebAppsGetWebJobResponse>;
  /**
   * 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 options The options parameters.
   */
  deployWorkflowArtifacts(
    resourceGroupName: string,
    name: string,
    options?: WebAppsDeployWorkflowArtifactsOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  deployWorkflowArtifactsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsDeployWorkflowArtifactsSlotOptionalParams
  ): Promise<void>;
  /**
   * 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 options The options parameters.
   */
  getInstanceWorkflowSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    workflowName: string,
    options?: WebAppsGetInstanceWorkflowSlotOptionalParams
  ): Promise<WebAppsGetInstanceWorkflowSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  listWorkflowsConnectionsSlot(
    resourceGroupName: string,
    name: string,
    slot: string,
    options?: WebAppsListWorkflowsConnectionsSlotOptionalParams
  ): Promise<WebAppsListWorkflowsConnectionsSlotResponse>;
  /**
   * 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 options The options parameters.
   */
  getWorkflow(
    resourceGroupName: string,
    name: string,
    workflowName: string,
    options?: WebAppsGetWorkflowOptionalParams
  ): Promise<WebAppsGetWorkflowResponse>;
  /**
   * 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 options The options parameters.
   */
  listWorkflowsConnections(
    resourceGroupName: string,
    name: string,
    options?: WebAppsListWorkflowsConnectionsOptionalParams
  ): Promise<WebAppsListWorkflowsConnectionsResponse>;
}
