/*
 * 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 {
  StaticSiteARMResource,
  StaticSitesListOptionalParams,
  StaticSitesGetStaticSitesByResourceGroupOptionalParams,
  StaticSiteUserARMResource,
  StaticSitesListStaticSiteUsersOptionalParams,
  StaticSiteBuildARMResource,
  StaticSitesGetStaticSiteBuildsOptionalParams,
  DatabaseConnection,
  StaticSitesGetBuildDatabaseConnectionsOptionalParams,
  StaticSiteFunctionOverviewARMResource,
  StaticSitesListStaticSiteBuildFunctionsOptionalParams,
  StaticSitesGetBuildDatabaseConnectionsWithDetailsOptionalParams,
  StaticSiteUserProvidedFunctionAppARMResource,
  StaticSitesGetUserProvidedFunctionAppsForStaticSiteBuildOptionalParams,
  StaticSiteBasicAuthPropertiesARMResource,
  StaticSitesListBasicAuthOptionalParams,
  StaticSiteCustomDomainOverviewARMResource,
  StaticSitesListStaticSiteCustomDomainsOptionalParams,
  StaticSitesGetDatabaseConnectionsOptionalParams,
  StaticSitesListStaticSiteFunctionsOptionalParams,
  RemotePrivateEndpointConnectionARMResource,
  StaticSitesGetPrivateEndpointConnectionListOptionalParams,
  StaticSitesGetDatabaseConnectionsWithDetailsOptionalParams,
  StaticSitesGetUserProvidedFunctionAppsForStaticSiteOptionalParams,
  StaticSiteLinkedBackendARMResource,
  StaticSitesGetLinkedBackendsOptionalParams,
  StaticSitesGetLinkedBackendsForBuildOptionalParams,
  StaticSitesWorkflowPreviewRequest,
  StaticSitesPreviewWorkflowOptionalParams,
  StaticSitesPreviewWorkflowResponse,
  StaticSitesGetStaticSiteOptionalParams,
  StaticSitesGetStaticSiteResponse,
  StaticSitesCreateOrUpdateStaticSiteOptionalParams,
  StaticSitesCreateOrUpdateStaticSiteResponse,
  StaticSitesDeleteStaticSiteOptionalParams,
  StaticSitePatchResource,
  StaticSitesUpdateStaticSiteOptionalParams,
  StaticSitesUpdateStaticSiteResponse,
  StaticSitesDeleteStaticSiteUserOptionalParams,
  StaticSitesUpdateStaticSiteUserOptionalParams,
  StaticSitesUpdateStaticSiteUserResponse,
  StaticSitesGetStaticSiteBuildOptionalParams,
  StaticSitesGetStaticSiteBuildResponse,
  StaticSitesDeleteStaticSiteBuildOptionalParams,
  StringDictionary,
  StaticSitesCreateOrUpdateStaticSiteBuildAppSettingsOptionalParams,
  StaticSitesCreateOrUpdateStaticSiteBuildAppSettingsResponse,
  StaticSitesCreateOrUpdateStaticSiteBuildFunctionAppSettingsOptionalParams,
  StaticSitesCreateOrUpdateStaticSiteBuildFunctionAppSettingsResponse,
  StaticSitesGetBuildDatabaseConnectionOptionalParams,
  StaticSitesGetBuildDatabaseConnectionResponse,
  StaticSitesCreateOrUpdateBuildDatabaseConnectionOptionalParams,
  StaticSitesCreateOrUpdateBuildDatabaseConnectionResponse,
  StaticSitesDeleteBuildDatabaseConnectionOptionalParams,
  DatabaseConnectionPatchRequest,
  StaticSitesUpdateBuildDatabaseConnectionOptionalParams,
  StaticSitesUpdateBuildDatabaseConnectionResponse,
  StaticSitesGetBuildDatabaseConnectionWithDetailsOptionalParams,
  StaticSitesGetBuildDatabaseConnectionWithDetailsResponse,
  StaticSitesListStaticSiteBuildAppSettingsOptionalParams,
  StaticSitesListStaticSiteBuildAppSettingsResponse,
  StaticSitesListStaticSiteBuildFunctionAppSettingsOptionalParams,
  StaticSitesListStaticSiteBuildFunctionAppSettingsResponse,
  StaticSitesGetUserProvidedFunctionAppForStaticSiteBuildOptionalParams,
  StaticSitesGetUserProvidedFunctionAppForStaticSiteBuildResponse,
  StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildOptionalParams,
  StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildResponse,
  StaticSitesDetachUserProvidedFunctionAppFromStaticSiteBuildOptionalParams,
  StaticSiteZipDeploymentARMResource,
  StaticSitesCreateZipDeploymentForStaticSiteBuildOptionalParams,
  StaticSitesCreateOrUpdateStaticSiteAppSettingsOptionalParams,
  StaticSitesCreateOrUpdateStaticSiteAppSettingsResponse,
  BasicAuthName,
  StaticSitesGetBasicAuthOptionalParams,
  StaticSitesGetBasicAuthResponse,
  StaticSitesCreateOrUpdateBasicAuthOptionalParams,
  StaticSitesCreateOrUpdateBasicAuthResponse,
  StaticSitesCreateOrUpdateStaticSiteFunctionAppSettingsOptionalParams,
  StaticSitesCreateOrUpdateStaticSiteFunctionAppSettingsResponse,
  StaticSiteUserInvitationRequestResource,
  StaticSitesCreateUserRolesInvitationLinkOptionalParams,
  StaticSitesCreateUserRolesInvitationLinkResponse,
  StaticSitesGetStaticSiteCustomDomainOptionalParams,
  StaticSitesGetStaticSiteCustomDomainResponse,
  StaticSiteCustomDomainRequestPropertiesARMResource,
  StaticSitesCreateOrUpdateStaticSiteCustomDomainOptionalParams,
  StaticSitesCreateOrUpdateStaticSiteCustomDomainResponse,
  StaticSitesDeleteStaticSiteCustomDomainOptionalParams,
  StaticSitesValidateCustomDomainCanBeAddedToStaticSiteOptionalParams,
  StaticSitesGetDatabaseConnectionOptionalParams,
  StaticSitesGetDatabaseConnectionResponse,
  StaticSitesCreateOrUpdateDatabaseConnectionOptionalParams,
  StaticSitesCreateOrUpdateDatabaseConnectionResponse,
  StaticSitesDeleteDatabaseConnectionOptionalParams,
  StaticSitesUpdateDatabaseConnectionOptionalParams,
  StaticSitesUpdateDatabaseConnectionResponse,
  StaticSitesGetDatabaseConnectionWithDetailsOptionalParams,
  StaticSitesGetDatabaseConnectionWithDetailsResponse,
  StaticSitesDetachStaticSiteOptionalParams,
  StaticSitesListStaticSiteAppSettingsOptionalParams,
  StaticSitesListStaticSiteAppSettingsResponse,
  StaticSitesListStaticSiteConfiguredRolesOptionalParams,
  StaticSitesListStaticSiteConfiguredRolesResponse,
  StaticSitesListStaticSiteFunctionAppSettingsOptionalParams,
  StaticSitesListStaticSiteFunctionAppSettingsResponse,
  StaticSitesListStaticSiteSecretsOptionalParams,
  StaticSitesListStaticSiteSecretsResponse,
  StaticSitesGetPrivateEndpointConnectionOptionalParams,
  StaticSitesGetPrivateEndpointConnectionResponse,
  PrivateLinkConnectionApprovalRequestResource,
  StaticSitesApproveOrRejectPrivateEndpointConnectionOptionalParams,
  StaticSitesApproveOrRejectPrivateEndpointConnectionResponse,
  StaticSitesDeletePrivateEndpointConnectionOptionalParams,
  StaticSitesDeletePrivateEndpointConnectionResponse,
  StaticSitesGetPrivateLinkResourcesOptionalParams,
  StaticSitesGetPrivateLinkResourcesResponse,
  StaticSiteResetPropertiesARMResource,
  StaticSitesResetStaticSiteApiKeyOptionalParams,
  StaticSitesGetUserProvidedFunctionAppForStaticSiteOptionalParams,
  StaticSitesGetUserProvidedFunctionAppForStaticSiteResponse,
  StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteOptionalParams,
  StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteResponse,
  StaticSitesDetachUserProvidedFunctionAppFromStaticSiteOptionalParams,
  StaticSitesCreateZipDeploymentForStaticSiteOptionalParams,
  StaticSitesValidateBackendOptionalParams,
  StaticSitesValidateBackendForBuildOptionalParams,
  StaticSitesGetLinkedBackendOptionalParams,
  StaticSitesGetLinkedBackendResponse,
  StaticSitesLinkBackendOptionalParams,
  StaticSitesLinkBackendResponse,
  StaticSitesUnlinkBackendOptionalParams,
  StaticSitesGetLinkedBackendForBuildOptionalParams,
  StaticSitesGetLinkedBackendForBuildResponse,
  StaticSitesLinkBackendToBuildOptionalParams,
  StaticSitesLinkBackendToBuildResponse,
  StaticSitesUnlinkBackendFromBuildOptionalParams
} from "../models";

/// <reference lib="esnext.asynciterable" />
/** Interface representing a StaticSites. */
export interface StaticSites {
  /**
   * Description for Get all Static Sites for a subscription.
   * @param options The options parameters.
   */
  list(
    options?: StaticSitesListOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteARMResource>;
  /**
   * Description for Gets all static sites in the specified resource group.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param options The options parameters.
   */
  listStaticSitesByResourceGroup(
    resourceGroupName: string,
    options?: StaticSitesGetStaticSitesByResourceGroupOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteARMResource>;
  /**
   * Description for Gets the list of users of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param authprovider The auth provider for the users.
   * @param options The options parameters.
   */
  listStaticSiteUsers(
    resourceGroupName: string,
    name: string,
    authprovider: string,
    options?: StaticSitesListStaticSiteUsersOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteUserARMResource>;
  /**
   * Description for Gets all static site builds for a particular static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listStaticSiteBuilds(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesGetStaticSiteBuildsOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteBuildARMResource>;
  /**
   * Returns overviews of database connections for a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  listBuildDatabaseConnections(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesGetBuildDatabaseConnectionsOptionalParams
  ): PagedAsyncIterableIterator<DatabaseConnection>;
  /**
   * Description for Gets the functions of a particular static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  listStaticSiteBuildFunctions(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesListStaticSiteBuildFunctionsOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteFunctionOverviewARMResource>;
  /**
   * Returns details of database connections for a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  listBuildDatabaseConnectionsWithDetails(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesGetBuildDatabaseConnectionsWithDetailsOptionalParams
  ): PagedAsyncIterableIterator<DatabaseConnection>;
  /**
   * Description for Gets the details of the user provided function apps registered with a static site
   * build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  listUserProvidedFunctionAppsForStaticSiteBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesGetUserProvidedFunctionAppsForStaticSiteBuildOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteUserProvidedFunctionAppARMResource>;
  /**
   * Description for Gets the basic auth properties for a static site as a collection.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listBasicAuth(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesListBasicAuthOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteBasicAuthPropertiesARMResource>;
  /**
   * Description for Gets all static site custom domains for a particular static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site resource to search in.
   * @param options The options parameters.
   */
  listStaticSiteCustomDomains(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesListStaticSiteCustomDomainsOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteCustomDomainOverviewARMResource>;
  /**
   * Returns overviews of database connections for a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param options The options parameters.
   */
  listDatabaseConnections(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesGetDatabaseConnectionsOptionalParams
  ): PagedAsyncIterableIterator<DatabaseConnection>;
  /**
   * Description for Gets the functions of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listStaticSiteFunctions(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesListStaticSiteFunctionsOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteFunctionOverviewARMResource>;
  /**
   * Description for Gets the list of private endpoint connections associated with a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listPrivateEndpointConnectionList(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesGetPrivateEndpointConnectionListOptionalParams
  ): PagedAsyncIterableIterator<RemotePrivateEndpointConnectionARMResource>;
  /**
   * Returns details of database connections for a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param options The options parameters.
   */
  listDatabaseConnectionsWithDetails(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesGetDatabaseConnectionsWithDetailsOptionalParams
  ): PagedAsyncIterableIterator<DatabaseConnection>;
  /**
   * Description for Gets the details of the user provided function apps registered with a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listUserProvidedFunctionAppsForStaticSite(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesGetUserProvidedFunctionAppsForStaticSiteOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteUserProvidedFunctionAppARMResource>;
  /**
   * Returns details of all backends linked to a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param options The options parameters.
   */
  listLinkedBackends(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesGetLinkedBackendsOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteLinkedBackendARMResource>;
  /**
   * Returns details of all backends linked to a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier
   * @param options The options parameters.
   */
  listLinkedBackendsForBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesGetLinkedBackendsForBuildOptionalParams
  ): PagedAsyncIterableIterator<StaticSiteLinkedBackendARMResource>;
  /**
   * Description for Generates a preview workflow file for the static site
   * @param location Location where you plan to create the static site.
   * @param staticSitesWorkflowPreviewRequest A JSON representation of the
   *                                          StaticSitesWorkflowPreviewRequest properties. See example.
   * @param options The options parameters.
   */
  previewWorkflow(
    location: string,
    staticSitesWorkflowPreviewRequest: StaticSitesWorkflowPreviewRequest,
    options?: StaticSitesPreviewWorkflowOptionalParams
  ): Promise<StaticSitesPreviewWorkflowResponse>;
  /**
   * Description for Gets the details of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  getStaticSite(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesGetStaticSiteOptionalParams
  ): Promise<StaticSitesGetStaticSiteResponse>;
  /**
   * Description for Creates a new static site in an existing resource group, or updates an existing
   * static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site to create or update.
   * @param staticSiteEnvelope A JSON representation of the staticsite properties. See example.
   * @param options The options parameters.
   */
  beginCreateOrUpdateStaticSite(
    resourceGroupName: string,
    name: string,
    staticSiteEnvelope: StaticSiteARMResource,
    options?: StaticSitesCreateOrUpdateStaticSiteOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<StaticSitesCreateOrUpdateStaticSiteResponse>,
      StaticSitesCreateOrUpdateStaticSiteResponse
    >
  >;
  /**
   * Description for Creates a new static site in an existing resource group, or updates an existing
   * static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site to create or update.
   * @param staticSiteEnvelope A JSON representation of the staticsite properties. See example.
   * @param options The options parameters.
   */
  beginCreateOrUpdateStaticSiteAndWait(
    resourceGroupName: string,
    name: string,
    staticSiteEnvelope: StaticSiteARMResource,
    options?: StaticSitesCreateOrUpdateStaticSiteOptionalParams
  ): Promise<StaticSitesCreateOrUpdateStaticSiteResponse>;
  /**
   * Description for Deletes a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site to delete.
   * @param options The options parameters.
   */
  beginDeleteStaticSite(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesDeleteStaticSiteOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Description for Deletes a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site to delete.
   * @param options The options parameters.
   */
  beginDeleteStaticSiteAndWait(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesDeleteStaticSiteOptionalParams
  ): Promise<void>;
  /**
   * Description for Creates a new static site in an existing resource group, or updates an existing
   * static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site to create or update.
   * @param staticSiteEnvelope A JSON representation of the staticsite properties. See example.
   * @param options The options parameters.
   */
  updateStaticSite(
    resourceGroupName: string,
    name: string,
    staticSiteEnvelope: StaticSitePatchResource,
    options?: StaticSitesUpdateStaticSiteOptionalParams
  ): Promise<StaticSitesUpdateStaticSiteResponse>;
  /**
   * Description for Deletes the user entry from the static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the staticsite.
   * @param authprovider The auth provider for this user.
   * @param userid The user id of the user.
   * @param options The options parameters.
   */
  deleteStaticSiteUser(
    resourceGroupName: string,
    name: string,
    authprovider: string,
    userid: string,
    options?: StaticSitesDeleteStaticSiteUserOptionalParams
  ): Promise<void>;
  /**
   * Description for Updates a user entry with the listed roles
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param authprovider The auth provider for this user.
   * @param userid The user id of the user.
   * @param staticSiteUserEnvelope A JSON representation of the StaticSiteUser properties. See example.
   * @param options The options parameters.
   */
  updateStaticSiteUser(
    resourceGroupName: string,
    name: string,
    authprovider: string,
    userid: string,
    staticSiteUserEnvelope: StaticSiteUserARMResource,
    options?: StaticSitesUpdateStaticSiteUserOptionalParams
  ): Promise<StaticSitesUpdateStaticSiteUserResponse>;
  /**
   * Description for Gets the details of a static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  getStaticSiteBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesGetStaticSiteBuildOptionalParams
  ): Promise<StaticSitesGetStaticSiteBuildResponse>;
  /**
   * Description for Deletes a static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  beginDeleteStaticSiteBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesDeleteStaticSiteBuildOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Description for Deletes a static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  beginDeleteStaticSiteBuildAndWait(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesDeleteStaticSiteBuildOptionalParams
  ): Promise<void>;
  /**
   * Description for Creates or updates the app settings of a static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param appSettings The dictionary containing the static site app settings to update.
   * @param options The options parameters.
   */
  createOrUpdateStaticSiteBuildAppSettings(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    appSettings: StringDictionary,
    options?: StaticSitesCreateOrUpdateStaticSiteBuildAppSettingsOptionalParams
  ): Promise<StaticSitesCreateOrUpdateStaticSiteBuildAppSettingsResponse>;
  /**
   * Description for Creates or updates the function app settings of a static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param appSettings The dictionary containing the static site function app settings to update.
   * @param options The options parameters.
   */
  createOrUpdateStaticSiteBuildFunctionAppSettings(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    appSettings: StringDictionary,
    options?: StaticSitesCreateOrUpdateStaticSiteBuildFunctionAppSettingsOptionalParams
  ): Promise<
    StaticSitesCreateOrUpdateStaticSiteBuildFunctionAppSettingsResponse
  >;
  /**
   * Returns overview of a database connection for a static site build by name
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier.
   * @param databaseConnectionName Name of the database connection.
   * @param options The options parameters.
   */
  getBuildDatabaseConnection(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    databaseConnectionName: string,
    options?: StaticSitesGetBuildDatabaseConnectionOptionalParams
  ): Promise<StaticSitesGetBuildDatabaseConnectionResponse>;
  /**
   * Description for Create or update a database connection for a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier.
   * @param databaseConnectionName Name of the database connection.
   * @param databaseConnectionRequestEnvelope A JSON representation of the database connection request
   *                                          properties
   * @param options The options parameters.
   */
  createOrUpdateBuildDatabaseConnection(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    databaseConnectionName: string,
    databaseConnectionRequestEnvelope: DatabaseConnection,
    options?: StaticSitesCreateOrUpdateBuildDatabaseConnectionOptionalParams
  ): Promise<StaticSitesCreateOrUpdateBuildDatabaseConnectionResponse>;
  /**
   * Delete a database connection for a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier.
   * @param databaseConnectionName Name of the database connection.
   * @param options The options parameters.
   */
  deleteBuildDatabaseConnection(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    databaseConnectionName: string,
    options?: StaticSitesDeleteBuildDatabaseConnectionOptionalParams
  ): Promise<void>;
  /**
   * Description for Create or update a database connection for a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier.
   * @param databaseConnectionName Name of the database connection.
   * @param databaseConnectionRequestEnvelope A JSON representation of the database connection request
   *                                          properties
   * @param options The options parameters.
   */
  updateBuildDatabaseConnection(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    databaseConnectionName: string,
    databaseConnectionRequestEnvelope: DatabaseConnectionPatchRequest,
    options?: StaticSitesUpdateBuildDatabaseConnectionOptionalParams
  ): Promise<StaticSitesUpdateBuildDatabaseConnectionResponse>;
  /**
   * Returns details of a database connection for a static site build by name
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier.
   * @param databaseConnectionName Name of the database connection.
   * @param options The options parameters.
   */
  getBuildDatabaseConnectionWithDetails(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    databaseConnectionName: string,
    options?: StaticSitesGetBuildDatabaseConnectionWithDetailsOptionalParams
  ): Promise<StaticSitesGetBuildDatabaseConnectionWithDetailsResponse>;
  /**
   * Description for Gets the application settings of a static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  listStaticSiteBuildAppSettings(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesListStaticSiteBuildAppSettingsOptionalParams
  ): Promise<StaticSitesListStaticSiteBuildAppSettingsResponse>;
  /**
   * Description for Gets the application settings of a static site build.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param options The options parameters.
   */
  listStaticSiteBuildFunctionAppSettings(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    options?: StaticSitesListStaticSiteBuildFunctionAppSettingsOptionalParams
  ): Promise<StaticSitesListStaticSiteBuildFunctionAppSettingsResponse>;
  /**
   * Description for Gets the details of the user provided function app registered with a static site
   * build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param functionAppName Name of the function app registered with the static site build.
   * @param options The options parameters.
   */
  getUserProvidedFunctionAppForStaticSiteBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    functionAppName: string,
    options?: StaticSitesGetUserProvidedFunctionAppForStaticSiteBuildOptionalParams
  ): Promise<StaticSitesGetUserProvidedFunctionAppForStaticSiteBuildResponse>;
  /**
   * Description for Register a user provided function app with a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param functionAppName Name of the function app to register with the static site build.
   * @param staticSiteUserProvidedFunctionEnvelope A JSON representation of the user provided function
   *                                               app properties. See example.
   * @param options The options parameters.
   */
  beginRegisterUserProvidedFunctionAppWithStaticSiteBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    functionAppName: string,
    staticSiteUserProvidedFunctionEnvelope: StaticSiteUserProvidedFunctionAppARMResource,
    options?: StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<
        StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildResponse
      >,
      StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildResponse
    >
  >;
  /**
   * Description for Register a user provided function app with a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param functionAppName Name of the function app to register with the static site build.
   * @param staticSiteUserProvidedFunctionEnvelope A JSON representation of the user provided function
   *                                               app properties. See example.
   * @param options The options parameters.
   */
  beginRegisterUserProvidedFunctionAppWithStaticSiteBuildAndWait(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    functionAppName: string,
    staticSiteUserProvidedFunctionEnvelope: StaticSiteUserProvidedFunctionAppARMResource,
    options?: StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildOptionalParams
  ): Promise<
    StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildResponse
  >;
  /**
   * Description for Detach the user provided function app from the static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName The stage site identifier.
   * @param functionAppName Name of the function app registered with the static site build.
   * @param options The options parameters.
   */
  detachUserProvidedFunctionAppFromStaticSiteBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    functionAppName: string,
    options?: StaticSitesDetachUserProvidedFunctionAppFromStaticSiteBuildOptionalParams
  ): Promise<void>;
  /**
   * Description for Deploys zipped content to a specific environment of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName Name of the environment.
   * @param staticSiteZipDeploymentEnvelope A JSON representation of the StaticSiteZipDeployment
   *                                        properties. See example.
   * @param options The options parameters.
   */
  beginCreateZipDeploymentForStaticSiteBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    staticSiteZipDeploymentEnvelope: StaticSiteZipDeploymentARMResource,
    options?: StaticSitesCreateZipDeploymentForStaticSiteBuildOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Description for Deploys zipped content to a specific environment of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param environmentName Name of the environment.
   * @param staticSiteZipDeploymentEnvelope A JSON representation of the StaticSiteZipDeployment
   *                                        properties. See example.
   * @param options The options parameters.
   */
  beginCreateZipDeploymentForStaticSiteBuildAndWait(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    staticSiteZipDeploymentEnvelope: StaticSiteZipDeploymentARMResource,
    options?: StaticSitesCreateZipDeploymentForStaticSiteBuildOptionalParams
  ): Promise<void>;
  /**
   * Description for Creates or updates the app settings of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param appSettings The dictionary containing the static site app settings to update.
   * @param options The options parameters.
   */
  createOrUpdateStaticSiteAppSettings(
    resourceGroupName: string,
    name: string,
    appSettings: StringDictionary,
    options?: StaticSitesCreateOrUpdateStaticSiteAppSettingsOptionalParams
  ): Promise<StaticSitesCreateOrUpdateStaticSiteAppSettingsResponse>;
  /**
   * Description for Gets the basic auth properties for a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param basicAuthName name of the basic auth entry.
   * @param options The options parameters.
   */
  getBasicAuth(
    resourceGroupName: string,
    name: string,
    basicAuthName: BasicAuthName,
    options?: StaticSitesGetBasicAuthOptionalParams
  ): Promise<StaticSitesGetBasicAuthResponse>;
  /**
   * Description for Adds or updates basic auth for a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param basicAuthName name of the basic auth entry.
   * @param basicAuthEnvelope A JSON representation of the basic auth properties.
   * @param options The options parameters.
   */
  createOrUpdateBasicAuth(
    resourceGroupName: string,
    name: string,
    basicAuthName: BasicAuthName,
    basicAuthEnvelope: StaticSiteBasicAuthPropertiesARMResource,
    options?: StaticSitesCreateOrUpdateBasicAuthOptionalParams
  ): Promise<StaticSitesCreateOrUpdateBasicAuthResponse>;
  /**
   * Description for Creates or updates the function app settings of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param appSettings The dictionary containing the static site function app settings to update.
   * @param options The options parameters.
   */
  createOrUpdateStaticSiteFunctionAppSettings(
    resourceGroupName: string,
    name: string,
    appSettings: StringDictionary,
    options?: StaticSitesCreateOrUpdateStaticSiteFunctionAppSettingsOptionalParams
  ): Promise<StaticSitesCreateOrUpdateStaticSiteFunctionAppSettingsResponse>;
  /**
   * Description for Creates an invitation link for a user with the role
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param staticSiteUserRolesInvitationEnvelope Static sites user roles invitation resource.
   * @param options The options parameters.
   */
  createUserRolesInvitationLink(
    resourceGroupName: string,
    name: string,
    staticSiteUserRolesInvitationEnvelope: StaticSiteUserInvitationRequestResource,
    options?: StaticSitesCreateUserRolesInvitationLinkOptionalParams
  ): Promise<StaticSitesCreateUserRolesInvitationLinkResponse>;
  /**
   * Description for Gets an existing custom domain for a particular static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site resource to search in.
   * @param domainName The custom domain name.
   * @param options The options parameters.
   */
  getStaticSiteCustomDomain(
    resourceGroupName: string,
    name: string,
    domainName: string,
    options?: StaticSitesGetStaticSiteCustomDomainOptionalParams
  ): Promise<StaticSitesGetStaticSiteCustomDomainResponse>;
  /**
   * Description for Creates a new static site custom domain in an existing resource group and static
   * site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param domainName The custom domain to create.
   * @param staticSiteCustomDomainRequestPropertiesEnvelope A JSON representation of the static site
   *                                                        custom domain request properties. See example.
   * @param options The options parameters.
   */
  beginCreateOrUpdateStaticSiteCustomDomain(
    resourceGroupName: string,
    name: string,
    domainName: string,
    staticSiteCustomDomainRequestPropertiesEnvelope: StaticSiteCustomDomainRequestPropertiesARMResource,
    options?: StaticSitesCreateOrUpdateStaticSiteCustomDomainOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<StaticSitesCreateOrUpdateStaticSiteCustomDomainResponse>,
      StaticSitesCreateOrUpdateStaticSiteCustomDomainResponse
    >
  >;
  /**
   * Description for Creates a new static site custom domain in an existing resource group and static
   * site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param domainName The custom domain to create.
   * @param staticSiteCustomDomainRequestPropertiesEnvelope A JSON representation of the static site
   *                                                        custom domain request properties. See example.
   * @param options The options parameters.
   */
  beginCreateOrUpdateStaticSiteCustomDomainAndWait(
    resourceGroupName: string,
    name: string,
    domainName: string,
    staticSiteCustomDomainRequestPropertiesEnvelope: StaticSiteCustomDomainRequestPropertiesARMResource,
    options?: StaticSitesCreateOrUpdateStaticSiteCustomDomainOptionalParams
  ): Promise<StaticSitesCreateOrUpdateStaticSiteCustomDomainResponse>;
  /**
   * Description for Deletes a custom domain.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param domainName The custom domain to delete.
   * @param options The options parameters.
   */
  beginDeleteStaticSiteCustomDomain(
    resourceGroupName: string,
    name: string,
    domainName: string,
    options?: StaticSitesDeleteStaticSiteCustomDomainOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Description for Deletes a custom domain.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param domainName The custom domain to delete.
   * @param options The options parameters.
   */
  beginDeleteStaticSiteCustomDomainAndWait(
    resourceGroupName: string,
    name: string,
    domainName: string,
    options?: StaticSitesDeleteStaticSiteCustomDomainOptionalParams
  ): Promise<void>;
  /**
   * Description for Validates a particular custom domain can be added to a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param domainName The custom domain to validate.
   * @param staticSiteCustomDomainRequestPropertiesEnvelope A JSON representation of the static site
   *                                                        custom domain request properties. See example.
   * @param options The options parameters.
   */
  beginValidateCustomDomainCanBeAddedToStaticSite(
    resourceGroupName: string,
    name: string,
    domainName: string,
    staticSiteCustomDomainRequestPropertiesEnvelope: StaticSiteCustomDomainRequestPropertiesARMResource,
    options?: StaticSitesValidateCustomDomainCanBeAddedToStaticSiteOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Description for Validates a particular custom domain can be added to a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param domainName The custom domain to validate.
   * @param staticSiteCustomDomainRequestPropertiesEnvelope A JSON representation of the static site
   *                                                        custom domain request properties. See example.
   * @param options The options parameters.
   */
  beginValidateCustomDomainCanBeAddedToStaticSiteAndWait(
    resourceGroupName: string,
    name: string,
    domainName: string,
    staticSiteCustomDomainRequestPropertiesEnvelope: StaticSiteCustomDomainRequestPropertiesARMResource,
    options?: StaticSitesValidateCustomDomainCanBeAddedToStaticSiteOptionalParams
  ): Promise<void>;
  /**
   * Returns overview of a database connection for a static site by name
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param databaseConnectionName Name of the database connection.
   * @param options The options parameters.
   */
  getDatabaseConnection(
    resourceGroupName: string,
    name: string,
    databaseConnectionName: string,
    options?: StaticSitesGetDatabaseConnectionOptionalParams
  ): Promise<StaticSitesGetDatabaseConnectionResponse>;
  /**
   * Description for Create or update a database connection for a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param databaseConnectionName Name of the database connection.
   * @param databaseConnectionRequestEnvelope A JSON representation of the database connection request
   *                                          properties
   * @param options The options parameters.
   */
  createOrUpdateDatabaseConnection(
    resourceGroupName: string,
    name: string,
    databaseConnectionName: string,
    databaseConnectionRequestEnvelope: DatabaseConnection,
    options?: StaticSitesCreateOrUpdateDatabaseConnectionOptionalParams
  ): Promise<StaticSitesCreateOrUpdateDatabaseConnectionResponse>;
  /**
   * Delete a database connection for a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param databaseConnectionName Name of the database connection.
   * @param options The options parameters.
   */
  deleteDatabaseConnection(
    resourceGroupName: string,
    name: string,
    databaseConnectionName: string,
    options?: StaticSitesDeleteDatabaseConnectionOptionalParams
  ): Promise<void>;
  /**
   * Description for Create or update a database connection for a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param databaseConnectionName Name of the database connection.
   * @param databaseConnectionRequestEnvelope A JSON representation of the database connection request
   *                                          properties
   * @param options The options parameters.
   */
  updateDatabaseConnection(
    resourceGroupName: string,
    name: string,
    databaseConnectionName: string,
    databaseConnectionRequestEnvelope: DatabaseConnectionPatchRequest,
    options?: StaticSitesUpdateDatabaseConnectionOptionalParams
  ): Promise<StaticSitesUpdateDatabaseConnectionResponse>;
  /**
   * Returns details of a database connection for a static site by name
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param databaseConnectionName Name of the database connection.
   * @param options The options parameters.
   */
  getDatabaseConnectionWithDetails(
    resourceGroupName: string,
    name: string,
    databaseConnectionName: string,
    options?: StaticSitesGetDatabaseConnectionWithDetailsOptionalParams
  ): Promise<StaticSitesGetDatabaseConnectionWithDetailsResponse>;
  /**
   * Description for Detaches a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site to detach.
   * @param options The options parameters.
   */
  beginDetachStaticSite(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesDetachStaticSiteOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Description for Detaches a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site to detach.
   * @param options The options parameters.
   */
  beginDetachStaticSiteAndWait(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesDetachStaticSiteOptionalParams
  ): Promise<void>;
  /**
   * Description for Gets the application settings of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listStaticSiteAppSettings(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesListStaticSiteAppSettingsOptionalParams
  ): Promise<StaticSitesListStaticSiteAppSettingsResponse>;
  /**
   * Description for Lists the roles configured for the static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listStaticSiteConfiguredRoles(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesListStaticSiteConfiguredRolesOptionalParams
  ): Promise<StaticSitesListStaticSiteConfiguredRolesResponse>;
  /**
   * Description for Gets the application settings of a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listStaticSiteFunctionAppSettings(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesListStaticSiteFunctionAppSettingsOptionalParams
  ): Promise<StaticSitesListStaticSiteFunctionAppSettingsResponse>;
  /**
   * Description for Lists the secrets for an existing static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param options The options parameters.
   */
  listStaticSiteSecrets(
    resourceGroupName: string,
    name: string,
    options?: StaticSitesListStaticSiteSecretsOptionalParams
  ): Promise<StaticSitesListStaticSiteSecretsResponse>;
  /**
   * Description for Gets a private endpoint connection
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param privateEndpointConnectionName Name of the private endpoint connection.
   * @param options The options parameters.
   */
  getPrivateEndpointConnection(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    options?: StaticSitesGetPrivateEndpointConnectionOptionalParams
  ): Promise<StaticSitesGetPrivateEndpointConnectionResponse>;
  /**
   * 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 static site.
   * @param privateEndpointConnectionName Name of the private endpoint connection.
   * @param privateEndpointWrapper Request body.
   * @param options The options parameters.
   */
  beginApproveOrRejectPrivateEndpointConnection(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    privateEndpointWrapper: PrivateLinkConnectionApprovalRequestResource,
    options?: StaticSitesApproveOrRejectPrivateEndpointConnectionOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<
        StaticSitesApproveOrRejectPrivateEndpointConnectionResponse
      >,
      StaticSitesApproveOrRejectPrivateEndpointConnectionResponse
    >
  >;
  /**
   * 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 static site.
   * @param privateEndpointConnectionName Name of the private endpoint connection.
   * @param privateEndpointWrapper Request body.
   * @param options The options parameters.
   */
  beginApproveOrRejectPrivateEndpointConnectionAndWait(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    privateEndpointWrapper: PrivateLinkConnectionApprovalRequestResource,
    options?: StaticSitesApproveOrRejectPrivateEndpointConnectionOptionalParams
  ): Promise<StaticSitesApproveOrRejectPrivateEndpointConnectionResponse>;
  /**
   * Description for Deletes a private endpoint connection
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param privateEndpointConnectionName Name of the private endpoint connection.
   * @param options The options parameters.
   */
  beginDeletePrivateEndpointConnection(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    options?: StaticSitesDeletePrivateEndpointConnectionOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<StaticSitesDeletePrivateEndpointConnectionResponse>,
      StaticSitesDeletePrivateEndpointConnectionResponse
    >
  >;
  /**
   * Description for Deletes a private endpoint connection
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param privateEndpointConnectionName Name of the private endpoint connection.
   * @param options The options parameters.
   */
  beginDeletePrivateEndpointConnectionAndWait(
    resourceGroupName: string,
    name: string,
    privateEndpointConnectionName: string,
    options?: StaticSitesDeletePrivateEndpointConnectionOptionalParams
  ): Promise<StaticSitesDeletePrivateEndpointConnectionResponse>;
  /**
   * 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?: StaticSitesGetPrivateLinkResourcesOptionalParams
  ): Promise<StaticSitesGetPrivateLinkResourcesResponse>;
  /**
   * Description for Resets the api key for an existing static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param resetPropertiesEnvelope Static Site Reset Properties ARM resource.
   * @param options The options parameters.
   */
  resetStaticSiteApiKey(
    resourceGroupName: string,
    name: string,
    resetPropertiesEnvelope: StaticSiteResetPropertiesARMResource,
    options?: StaticSitesResetStaticSiteApiKeyOptionalParams
  ): Promise<void>;
  /**
   * Description for Gets the details of the user provided function app registered with a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param functionAppName Name of the function app registered with the static site.
   * @param options The options parameters.
   */
  getUserProvidedFunctionAppForStaticSite(
    resourceGroupName: string,
    name: string,
    functionAppName: string,
    options?: StaticSitesGetUserProvidedFunctionAppForStaticSiteOptionalParams
  ): Promise<StaticSitesGetUserProvidedFunctionAppForStaticSiteResponse>;
  /**
   * Description for Register a user provided function app with a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param functionAppName Name of the function app to register with the static site.
   * @param staticSiteUserProvidedFunctionEnvelope A JSON representation of the user provided function
   *                                               app properties. See example.
   * @param options The options parameters.
   */
  beginRegisterUserProvidedFunctionAppWithStaticSite(
    resourceGroupName: string,
    name: string,
    functionAppName: string,
    staticSiteUserProvidedFunctionEnvelope: StaticSiteUserProvidedFunctionAppARMResource,
    options?: StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<
        StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteResponse
      >,
      StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteResponse
    >
  >;
  /**
   * Description for Register a user provided function app with a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param functionAppName Name of the function app to register with the static site.
   * @param staticSiteUserProvidedFunctionEnvelope A JSON representation of the user provided function
   *                                               app properties. See example.
   * @param options The options parameters.
   */
  beginRegisterUserProvidedFunctionAppWithStaticSiteAndWait(
    resourceGroupName: string,
    name: string,
    functionAppName: string,
    staticSiteUserProvidedFunctionEnvelope: StaticSiteUserProvidedFunctionAppARMResource,
    options?: StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteOptionalParams
  ): Promise<StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteResponse>;
  /**
   * Description for Detach the user provided function app from the static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param functionAppName Name of the function app registered with the static site.
   * @param options The options parameters.
   */
  detachUserProvidedFunctionAppFromStaticSite(
    resourceGroupName: string,
    name: string,
    functionAppName: string,
    options?: StaticSitesDetachUserProvidedFunctionAppFromStaticSiteOptionalParams
  ): Promise<void>;
  /**
   * Description for Deploys zipped content to a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param staticSiteZipDeploymentEnvelope A JSON representation of the StaticSiteZipDeployment
   *                                        properties. See example.
   * @param options The options parameters.
   */
  beginCreateZipDeploymentForStaticSite(
    resourceGroupName: string,
    name: string,
    staticSiteZipDeploymentEnvelope: StaticSiteZipDeploymentARMResource,
    options?: StaticSitesCreateZipDeploymentForStaticSiteOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Description for Deploys zipped content to a static site.
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site.
   * @param staticSiteZipDeploymentEnvelope A JSON representation of the StaticSiteZipDeployment
   *                                        properties. See example.
   * @param options The options parameters.
   */
  beginCreateZipDeploymentForStaticSiteAndWait(
    resourceGroupName: string,
    name: string,
    staticSiteZipDeploymentEnvelope: StaticSiteZipDeploymentARMResource,
    options?: StaticSitesCreateZipDeploymentForStaticSiteOptionalParams
  ): Promise<void>;
  /**
   * Validates that a backend can be linked to a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param linkedBackendName Name of the linked backend that should be retrieved
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginValidateBackend(
    resourceGroupName: string,
    name: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesValidateBackendOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Validates that a backend can be linked to a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param linkedBackendName Name of the linked backend that should be retrieved
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginValidateBackendAndWait(
    resourceGroupName: string,
    name: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesValidateBackendOptionalParams
  ): Promise<void>;
  /**
   * Validates that a backend can be linked to a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier
   * @param linkedBackendName Name of the linked backend that should be retrieved
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginValidateBackendForBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesValidateBackendForBuildOptionalParams
  ): Promise<SimplePollerLike<OperationState<void>, void>>;
  /**
   * Validates that a backend can be linked to a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier
   * @param linkedBackendName Name of the linked backend that should be retrieved
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginValidateBackendForBuildAndWait(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesValidateBackendForBuildOptionalParams
  ): Promise<void>;
  /**
   * Returns the details of a linked backend linked to a static site by name
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param linkedBackendName Name of the linked backend that should be retrieved
   * @param options The options parameters.
   */
  getLinkedBackend(
    resourceGroupName: string,
    name: string,
    linkedBackendName: string,
    options?: StaticSitesGetLinkedBackendOptionalParams
  ): Promise<StaticSitesGetLinkedBackendResponse>;
  /**
   * Link backend to a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param linkedBackendName Name of the backend to link to the static site
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginLinkBackend(
    resourceGroupName: string,
    name: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesLinkBackendOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<StaticSitesLinkBackendResponse>,
      StaticSitesLinkBackendResponse
    >
  >;
  /**
   * Link backend to a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param linkedBackendName Name of the backend to link to the static site
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginLinkBackendAndWait(
    resourceGroupName: string,
    name: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesLinkBackendOptionalParams
  ): Promise<StaticSitesLinkBackendResponse>;
  /**
   * Unlink a backend from a static site
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param linkedBackendName Name of the backend linked to the static site
   * @param options The options parameters.
   */
  unlinkBackend(
    resourceGroupName: string,
    name: string,
    linkedBackendName: string,
    options?: StaticSitesUnlinkBackendOptionalParams
  ): Promise<void>;
  /**
   * Returns the details of a linked backend linked to a static site build by name
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier
   * @param linkedBackendName Name of the linked backend that should be retrieved
   * @param options The options parameters.
   */
  getLinkedBackendForBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    linkedBackendName: string,
    options?: StaticSitesGetLinkedBackendForBuildOptionalParams
  ): Promise<StaticSitesGetLinkedBackendForBuildResponse>;
  /**
   * Link backend to a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier
   * @param linkedBackendName Name of the backend to link to the static site
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginLinkBackendToBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesLinkBackendToBuildOptionalParams
  ): Promise<
    SimplePollerLike<
      OperationState<StaticSitesLinkBackendToBuildResponse>,
      StaticSitesLinkBackendToBuildResponse
    >
  >;
  /**
   * Link backend to a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier
   * @param linkedBackendName Name of the backend to link to the static site
   * @param staticSiteLinkedBackendEnvelope A JSON representation of the linked backend request
   *                                        properties
   * @param options The options parameters.
   */
  beginLinkBackendToBuildAndWait(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    linkedBackendName: string,
    staticSiteLinkedBackendEnvelope: StaticSiteLinkedBackendARMResource,
    options?: StaticSitesLinkBackendToBuildOptionalParams
  ): Promise<StaticSitesLinkBackendToBuildResponse>;
  /**
   * Unlink a backend from a static site build
   * @param resourceGroupName Name of the resource group to which the resource belongs.
   * @param name Name of the static site
   * @param environmentName The stage site identifier
   * @param linkedBackendName Name of the backend linked to the static site
   * @param options The options parameters.
   */
  unlinkBackendFromBuild(
    resourceGroupName: string,
    name: string,
    environmentName: string,
    linkedBackendName: string,
    options?: StaticSitesUnlinkBackendFromBuildOptionalParams
  ): Promise<void>;
}
