/*
 * 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 * as coreClient from "@azure/core-client";

/** Collection of certificate orders. */
export interface AppServiceCertificateOrderCollection {
  /** Collection of resources. */
  value: AppServiceCertificateOrder[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Key Vault container for a certificate that is purchased through Azure. */
export interface AppServiceCertificate {
  /** Key Vault resource Id. */
  keyVaultId?: string;
  /** Key Vault secret name. */
  keyVaultSecretName?: string;
  /**
   * Status of the Key Vault secret.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: KeyVaultSecretStatus;
}

/** SSL certificate details. */
export interface CertificateDetails {
  /**
   * Certificate Version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly version?: number;
  /**
   * Certificate Serial Number.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly serialNumber?: string;
  /**
   * Certificate Thumbprint.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly thumbprint?: string;
  /**
   * Certificate Subject.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly subject?: string;
  /**
   * Date Certificate is valid from.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly notBefore?: Date;
  /**
   * Date Certificate is valid to.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly notAfter?: Date;
  /**
   * Certificate Signature algorithm.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly signatureAlgorithm?: string;
  /**
   * Certificate Issuer.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly issuer?: string;
  /**
   * Raw certificate data.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly rawData?: string;
}

export interface CertificateOrderContact {
  email?: string;
  nameFirst?: string;
  nameLast?: string;
  phone?: string;
}

/** Azure resource. This resource is tracked in Azure Resource Manager */
export interface Resource {
  /**
   * Resource Id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly id?: string;
  /**
   * Resource Name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /** Kind of resource. */
  kind?: string;
  /** Resource Location. */
  location: string;
  /**
   * Resource type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /** Resource tags. */
  tags?: { [propertyName: string]: string };
}

/** App Service error response. */
export interface DefaultErrorResponse {
  /**
   * Error model.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly error?: DefaultErrorResponseError;
}

/** Error model. */
export interface DefaultErrorResponseError {
  /**
   * Standardized string to programmatically identify the error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly code?: string;
  /**
   * Detailed error description and debugging information.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly message?: string;
  /**
   * Detailed error description and debugging information.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly target?: string;
  details?: DefaultErrorResponseErrorDetailsItem[];
  /**
   * More information to debug error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly innererror?: string;
}

/** Detailed errors. */
export interface DefaultErrorResponseErrorDetailsItem {
  /**
   * Standardized string to programmatically identify the error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly code?: string;
  /**
   * Detailed error description and debugging information.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly message?: string;
  /**
   * Detailed error description and debugging information.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly target?: string;
}

/** Azure proxy only resource. This resource is not tracked by Azure Resource Manager. */
export interface ProxyOnlyResource {
  /**
   * Resource Id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly id?: string;
  /**
   * Resource Name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /** Kind of resource. */
  kind?: string;
  /**
   * Resource type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
}

/** Collection of certificate order certificates. */
export interface AppServiceCertificateCollection {
  /** Collection of resources. */
  value: AppServiceCertificateResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Identifies an object. */
export interface NameIdentifier {
  /** Name of the object. */
  name?: string;
}

/** Site seal request. */
export interface SiteSealRequest {
  /** If <code>true</code> use the light color theme for site seal; otherwise, use the default color theme. */
  lightTheme?: boolean;
  /** Locale of site seal. */
  locale?: string;
}

/** Site seal */
export interface SiteSeal {
  /** HTML snippet */
  html: string;
}

/** Certificate order action. */
export interface CertificateOrderAction {
  /**
   * Action type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly actionType?: CertificateOrderActionType;
  /**
   * Time at which the certificate action was performed.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdAt?: Date;
}

/** SSL certificate email. */
export interface CertificateEmail {
  /** Email id. */
  emailId?: string;
  /** Time stamp. */
  timeStamp?: Date;
}

/** Collection of detector responses */
export interface DetectorResponseCollection {
  /** Collection of resources. */
  value: DetectorResponse[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Definition of Detector */
export interface DetectorInfo {
  /**
   * Id of detector
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly id?: string;
  /**
   * Name of detector
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Short description of the detector and its purpose.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly description?: string;
  /**
   * Author of the detector.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly author?: string;
  /**
   * Problem category. This serves for organizing group for detectors.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly category?: string;
  /**
   * List of Support Topics for which this detector is enabled.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly supportTopicList?: SupportTopic[];
  /**
   * Analysis Types for which this detector should apply to.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly analysisType?: string[];
  /**
   * Whether this detector is an Analysis Detector or not.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: DetectorType;
  /**
   * Defines score of a detector to power ML based matching.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly score?: number;
}

/** Defines a unique Support Topic */
export interface SupportTopic {
  /**
   * Support Topic Id
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly id?: string;
  /**
   * Unique resource Id
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly pesId?: string;
}

/** Set of data with rendering instructions */
export interface DiagnosticData {
  /** Data in table form */
  table?: DataTableResponseObject;
  /** Properties that describe how the table should be rendered */
  renderingProperties?: Rendering;
}

/** Data Table which defines columns and raw row values */
export interface DataTableResponseObject {
  /** Name of the table */
  tableName?: string;
  /** List of columns with data types */
  columns?: DataTableResponseColumn[];
  /** Raw row values */
  rows?: string[][];
}

/** Column definition */
export interface DataTableResponseColumn {
  /** Name of the column */
  columnName?: string;
  /** Data type which looks like 'String' or 'Int32'. */
  dataType?: string;
  /** Column Type */
  columnType?: string;
}

/** Instructions for rendering the data */
export interface Rendering {
  /** Rendering Type */
  type?: RenderingType;
  /** Title of data */
  title?: string;
  /** Description of the data that will help it be interpreted */
  description?: string;
}

/** Identify the status of the most severe insight generated by the detector. */
export interface Status {
  /** Descriptive message. */
  message?: string;
  /** Level of the most severe insight generated by the detector. */
  statusId?: InsightStatus;
}

/** Additional configuration for a data providers */
export interface DataProviderMetadata {
  providerName?: string;
  /**
   * Settings for the data provider
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly propertyBag?: KeyValuePairStringObject[];
}

export interface KeyValuePairStringObject {
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly key?: string;
  /**
   * Any object
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: Record<string, unknown>;
}

/** Suggested utterances where the detector can be applicable */
export interface QueryUtterancesResults {
  /** Search Query. */
  query?: string;
  /** Array of utterance results for search query. */
  results?: QueryUtterancesResult[];
}

/** Result for utterances query. */
export interface QueryUtterancesResult {
  /** A sample utterance. */
  sampleUtterance?: SampleUtterance;
  /** Score of a sample utterance. */
  score?: number;
}

/** Sample utterance. */
export interface SampleUtterance {
  /** Text attribute of sample utterance. */
  text?: string;
  /** Links attribute of sample utterance. */
  links?: string[];
  /** Question id of sample utterance (for stackoverflow questions titles). */
  qid?: string;
}

/** Collection of Azure resource manager operation metadata. */
export interface CsmOperationCollection {
  /** Collection of resources. */
  value: CsmOperationDescription[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Description of an operation available for Microsoft.Web resource provider. */
export interface CsmOperationDescription {
  name?: string;
  isDataAction?: boolean;
  /** Meta data about operation used for display in portal. */
  display?: CsmOperationDisplay;
  origin?: string;
  /** Properties available for a Microsoft.Web resource provider operation. */
  properties?: CsmOperationDescriptionProperties;
}

/** Meta data about operation used for display in portal. */
export interface CsmOperationDisplay {
  provider?: string;
  resource?: string;
  operation?: string;
  description?: string;
}

/** Properties available for a Microsoft.Web resource provider operation. */
export interface CsmOperationDescriptionProperties {
  /** Resource metrics service provided by Microsoft.Insights resource provider. */
  serviceSpecification?: ServiceSpecification;
}

/** Resource metrics service provided by Microsoft.Insights resource provider. */
export interface ServiceSpecification {
  metricSpecifications?: MetricSpecification[];
  logSpecifications?: LogSpecification[];
}

/** Definition of a single resource metric. */
export interface MetricSpecification {
  name?: string;
  displayName?: string;
  displayDescription?: string;
  unit?: string;
  aggregationType?: string;
  supportsInstanceLevelAggregation?: boolean;
  enableRegionalMdmAccount?: boolean;
  sourceMdmAccount?: string;
  sourceMdmNamespace?: string;
  metricFilterPattern?: string;
  fillGapWithZero?: boolean;
  isInternal?: boolean;
  dimensions?: Dimension[];
  category?: string;
  availabilities?: MetricAvailability[];
  supportedTimeGrainTypes?: string[];
  supportedAggregationTypes?: string[];
}

/**
 * Dimension of a resource metric. For e.g. instance specific HTTP requests for a web app,
 * where instance name is dimension of the metric HTTP request
 */
export interface Dimension {
  name?: string;
  displayName?: string;
  internalName?: string;
  toBeExportedForShoebox?: boolean;
}

/** Retention policy of a resource metric. */
export interface MetricAvailability {
  timeGrain?: string;
  blobDuration?: string;
}

/** Log Definition of a single resource metric. */
export interface LogSpecification {
  name?: string;
  displayName?: string;
  blobDuration?: string;
  logFilterPattern?: string;
}

/** Domain availability check result. */
export interface DomainAvailabilityCheckResult {
  /** Name of the domain. */
  name?: string;
  /** <code>true</code> if domain can be purchased using CreateDomain API; otherwise, <code>false</code>. */
  available?: boolean;
  /** Valid values are Regular domain: Azure will charge the full price of domain registration, SoftDeleted: Purchasing this domain will simply restore it and this operation will not cost anything. */
  domainType?: DomainType;
}

/** Collection of domains. */
export interface DomainCollection {
  /** Collection of resources. */
  value: Domain[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/**
 * Contact information for domain registration. If 'Domain Privacy' option is not selected then the contact information is made publicly available through the Whois
 * directories as per ICANN requirements.
 */
export interface Contact {
  /** Mailing address. */
  addressMailing?: Address;
  /** Email address. */
  email: string;
  /** Fax number. */
  fax?: string;
  /** Job title. */
  jobTitle?: string;
  /** First name. */
  nameFirst: string;
  /** Last name. */
  nameLast: string;
  /** Middle name. */
  nameMiddle?: string;
  /** Organization contact belongs to. */
  organization?: string;
  /** Phone number. */
  phone: string;
}

/** Address information for domain registration. */
export interface Address {
  /** First line of an Address. */
  address1: string;
  /** The second line of the Address. Optional. */
  address2?: string;
  /** The city for the address. */
  city: string;
  /** The country for the address. */
  country: string;
  /** The postal code for the address. */
  postalCode: string;
  /** The state or province for the address. */
  state: string;
}

/** Details of a hostname derived from a domain. */
export interface HostName {
  /** Name of the hostname. */
  name?: string;
  /** List of apps the hostname is assigned to. This list will have more than one app only if the hostname is pointing to a Traffic Manager. */
  siteNames?: string[];
  /** Name of the Azure resource the hostname is assigned to. If it is assigned to a Traffic Manager then it will be the Traffic Manager name otherwise it will be the app name. */
  azureResourceName?: string;
  /** Type of the Azure resource the hostname is assigned to. */
  azureResourceType?: AzureResourceType;
  /** Type of the DNS record. */
  customHostNameDnsRecordType?: CustomHostNameDnsRecordType;
  /** Type of the hostname. */
  hostNameType?: HostNameType;
}

/** Domain purchase consent object, representing acceptance of applicable legal agreements. */
export interface DomainPurchaseConsent {
  /** List of applicable legal agreement keys. This list can be retrieved using ListLegalAgreements API under <code>TopLevelDomain</code> resource. */
  agreementKeys?: string[];
  /** Client IP address. */
  agreedBy?: string;
  /** Timestamp when the agreements were accepted. */
  agreedAt?: Date;
}

/** Single sign-on request information for domain management. */
export interface DomainControlCenterSsoRequest {
  /**
   * URL where the single sign-on request is to be made.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly url?: string;
  /**
   * Post parameter key.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly postParameterKey?: string;
  /**
   * Post parameter value. Client should use 'application/x-www-form-urlencoded' encoding for this value.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly postParameterValue?: string;
}

/** Domain recommendation search parameters. */
export interface DomainRecommendationSearchParameters {
  /** Keywords to be used for generating domain recommendations. */
  keywords?: string;
  /** Maximum number of recommendations. */
  maxDomainRecommendations?: number;
}

/** Collection of domain name identifiers. */
export interface NameIdentifierCollection {
  /** Collection of resources. */
  value: NameIdentifier[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of domain ownership identifiers. */
export interface DomainOwnershipIdentifierCollection {
  /** Collection of resources. */
  value: DomainOwnershipIdentifier[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Top-level domains. */
export interface TopLevelDomainCollection {
  /** Collection of resources. */
  value: TopLevelDomain[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Options for retrieving the list of top level domain legal agreements. */
export interface TopLevelDomainAgreementOption {
  /** If <code>true</code>, then the list of agreements will include agreements for domain privacy as well; otherwise, <code>false</code>. */
  includePrivacy?: boolean;
  /** If <code>true</code>, then the list of agreements will include agreements for domain transfer as well; otherwise, <code>false</code>. */
  forTransfer?: boolean;
}

/** Collection of top-level domain legal agreements. */
export interface TldLegalAgreementCollection {
  /** Collection of resources. */
  value: TldLegalAgreement[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Legal agreement for a top level domain. */
export interface TldLegalAgreement {
  /** Unique identifier for the agreement. */
  agreementKey: string;
  /** Agreement title. */
  title: string;
  /** Agreement details. */
  content: string;
  /** URL where a copy of the agreement details is hosted. */
  url?: string;
}

/** Collection of App Service Environments. */
export interface AppServiceEnvironmentCollection {
  /** Collection of resources. */
  value: AppServiceEnvironmentResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Description of an App Service Environment. */
export interface AppServiceEnvironment {
  /**
   * Provisioning state of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /**
   * Current status of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: HostingEnvironmentStatus;
  /** Description of the Virtual Network. */
  virtualNetwork: VirtualNetworkProfile;
  /** Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. */
  internalLoadBalancingMode?: LoadBalancingMode;
  /** Front-end VM size, e.g. "Medium", "Large". */
  multiSize?: string;
  /**
   * Number of front-end instances.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly multiRoleCount?: number;
  /** Number of IP SSL addresses reserved for the App Service Environment. */
  ipsslAddressCount?: number;
  /** DNS suffix of the App Service Environment. */
  dnsSuffix?: string;
  /**
   * Maximum number of VMs in the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maximumNumberOfMachines?: number;
  /** Scale factor for front-ends. */
  frontEndScaleFactor?: number;
  /**
   * <code>true</code> if the App Service Environment is suspended; otherwise, <code>false</code>. The environment can be suspended, e.g. when the management endpoint is no longer available
   *  (most likely because NSG blocked the incoming traffic).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly suspended?: boolean;
  /** Custom settings for changing the behavior of the App Service Environment. */
  clusterSettings?: NameValuePair[];
  /** User added ip ranges to whitelist on ASE db */
  userWhitelistedIpRanges?: string[];
  /**
   * Flag that displays whether an ASE has linux workers or not
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hasLinuxWorkers?: boolean;
  /** Upgrade Preference */
  upgradePreference?: UpgradePreference;
  /** Dedicated Host Count */
  dedicatedHostCount?: number;
  /** Whether or not this App Service Environment is zone-redundant. */
  zoneRedundant?: boolean;
  /** Full view of the custom domain suffix configuration for ASEv3. */
  customDnsSuffixConfiguration?: CustomDnsSuffixConfiguration;
  /** Full view of networking configuration for an ASE. */
  networkingConfiguration?: AseV3NetworkingConfiguration;
  /**
   * Whether an upgrade is available for this App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly upgradeAvailability?: UpgradeAvailability;
}

/** Specification for using a Virtual Network. */
export interface VirtualNetworkProfile {
  /** Resource id of the Virtual Network. */
  id: string;
  /**
   * Name of the Virtual Network (read-only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Resource type of the Virtual Network (read-only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /** Subnet within the Virtual Network. */
  subnet?: string;
}

/** Name value pair. */
export interface NameValuePair {
  /** Pair name. */
  name?: string;
  /** Pair value. */
  value?: string;
}

/** Collection of stamp capacities. */
export interface StampCapacityCollection {
  /** Collection of resources. */
  value: StampCapacity[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Stamp capacity information. */
export interface StampCapacity {
  /** Name of the stamp. */
  name?: string;
  /** Available capacity (# of machines, bytes of storage etc...). */
  availableCapacity?: number;
  /** Total capacity (# of machines, bytes of storage etc...). */
  totalCapacity?: number;
  /** Name of the unit. */
  unit?: string;
  /** Shared/dedicated workers. */
  computeMode?: ComputeModeOptions;
  /** Size of the machines. */
  workerSize?: WorkerSizeOptions;
  /**
   * Size ID of machines:
   * 0 - Small
   * 1 - Medium
   * 2 - Large
   */
  workerSizeId?: number;
  /**
   * If <code>true</code>, it includes basic apps.
   * Basic apps are not used for capacity allocation.
   */
  excludeFromCapacityAllocation?: boolean;
  /** <code>true</code> if capacity is applicable for all apps; otherwise, <code>false</code>. */
  isApplicableForAllComputeModes?: boolean;
  /** Shared or Dedicated. */
  siteMode?: string;
  /** Is this a linux stamp capacity */
  isLinux?: boolean;
}

/** Virtual IP mapping. */
export interface VirtualIPMapping {
  /** Virtual IP address. */
  virtualIP?: string;
  /** Internal HTTP port. */
  internalHttpPort?: number;
  /** Internal HTTPS port. */
  internalHttpsPort?: number;
  /** Is virtual IP mapping in use. */
  inUse?: boolean;
  /** name of the service that virtual IP is assigned to */
  serviceName?: string;
}

/** Collection of App Service apps. */
export interface WebAppCollection {
  /** Collection of resources. */
  value: Site[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** SSL-enabled hostname. */
export interface HostNameSslState {
  /** Hostname. */
  name?: string;
  /** SSL type. */
  sslState?: SslState;
  /** Virtual IP address assigned to the hostname if IP based SSL is enabled. */
  virtualIP?: string;
  /** SSL certificate thumbprint. */
  thumbprint?: string;
  /** Set to <code>true</code> to update existing hostname. */
  toUpdate?: boolean;
  /** Indicates whether the hostname is a standard or repository hostname. */
  hostType?: HostType;
}

/** Configuration of an App Service app. */
export interface SiteConfig {
  /** Number of workers. */
  numberOfWorkers?: number;
  /** Default documents. */
  defaultDocuments?: string[];
  /** .NET Framework version. */
  netFrameworkVersion?: string;
  /** Version of PHP. */
  phpVersion?: string;
  /** Version of Python. */
  pythonVersion?: string;
  /** Version of Node.js. */
  nodeVersion?: string;
  /** Version of PowerShell. */
  powerShellVersion?: string;
  /** Linux App Framework and version */
  linuxFxVersion?: string;
  /** Xenon App Framework and version */
  windowsFxVersion?: string;
  /** <code>true</code> if request tracing is enabled; otherwise, <code>false</code>. */
  requestTracingEnabled?: boolean;
  /** Request tracing expiration time. */
  requestTracingExpirationTime?: Date;
  /** <code>true</code> if remote debugging is enabled; otherwise, <code>false</code>. */
  remoteDebuggingEnabled?: boolean;
  /** Remote debugging version. */
  remoteDebuggingVersion?: string;
  /** <code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>. */
  httpLoggingEnabled?: boolean;
  /** Flag to use Managed Identity Creds for ACR pull */
  acrUseManagedIdentityCreds?: boolean;
  /** If using user managed identity, the user managed identity ClientId */
  acrUserManagedIdentityID?: string;
  /** HTTP logs directory size limit. */
  logsDirectorySizeLimit?: number;
  /** <code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>. */
  detailedErrorLoggingEnabled?: boolean;
  /** Publishing user name. */
  publishingUsername?: string;
  /** Application settings. */
  appSettings?: NameValuePair[];
  /** Application metadata. This property cannot be retrieved, since it may contain secrets. */
  metadata?: NameValuePair[];
  /** Connection strings. */
  connectionStrings?: ConnStringInfo[];
  /**
   * Site MachineKey.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly machineKey?: SiteMachineKey;
  /** Handler mappings. */
  handlerMappings?: HandlerMapping[];
  /** Document root. */
  documentRoot?: string;
  /** SCM type. */
  scmType?: ScmType;
  /** <code>true</code> to use 32-bit worker process; otherwise, <code>false</code>. */
  use32BitWorkerProcess?: boolean;
  /** <code>true</code> if WebSocket is enabled; otherwise, <code>false</code>. */
  webSocketsEnabled?: boolean;
  /** <code>true</code> if Always On is enabled; otherwise, <code>false</code>. */
  alwaysOn?: boolean;
  /** Java version. */
  javaVersion?: string;
  /** Java container. */
  javaContainer?: string;
  /** Java container version. */
  javaContainerVersion?: string;
  /** App command line to launch. */
  appCommandLine?: string;
  /** Managed pipeline mode. */
  managedPipelineMode?: ManagedPipelineMode;
  /** Virtual applications. */
  virtualApplications?: VirtualApplication[];
  /** Site load balancing. */
  loadBalancing?: SiteLoadBalancing;
  /** This is work around for polymorphic types. */
  experiments?: Experiments;
  /** Site limits. */
  limits?: SiteLimits;
  /** <code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>. */
  autoHealEnabled?: boolean;
  /** Auto Heal rules. */
  autoHealRules?: AutoHealRules;
  /** Tracing options. */
  tracingOptions?: string;
  /** Virtual Network name. */
  vnetName?: string;
  /** Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. */
  vnetRouteAllEnabled?: boolean;
  /** The number of private ports assigned to this app. These will be assigned dynamically on runtime. */
  vnetPrivatePortsCount?: number;
  /** Cross-Origin Resource Sharing (CORS) settings. */
  cors?: CorsSettings;
  /** Push endpoint settings. */
  push?: PushSettings;
  /** Information about the formal API definition for the app. */
  apiDefinition?: ApiDefinitionInfo;
  /** Azure API management settings linked to the app. */
  apiManagementConfig?: ApiManagementConfig;
  /** Auto-swap slot name. */
  autoSwapSlotName?: string;
  /** <code>true</code> to enable local MySQL; otherwise, <code>false</code>. */
  localMySqlEnabled?: boolean;
  /** Managed Service Identity Id */
  managedServiceIdentityId?: number;
  /** Explicit Managed Service Identity Id */
  xManagedServiceIdentityId?: number;
  /** Identity to use for Key Vault Reference authentication. */
  keyVaultReferenceIdentity?: string;
  /** IP security restrictions for main. */
  ipSecurityRestrictions?: IpSecurityRestriction[];
  /** Default action for main access restriction if no rules are matched. */
  ipSecurityRestrictionsDefaultAction?: DefaultAction;
  /** IP security restrictions for scm. */
  scmIpSecurityRestrictions?: IpSecurityRestriction[];
  /** Default action for scm access restriction if no rules are matched. */
  scmIpSecurityRestrictionsDefaultAction?: DefaultAction;
  /** IP security restrictions for scm to use main. */
  scmIpSecurityRestrictionsUseMain?: boolean;
  /** Http20Enabled: configures a web site to allow clients to connect over http2.0 */
  http20Enabled?: boolean;
  /** MinTlsVersion: configures the minimum version of TLS required for SSL requests */
  minTlsVersion?: SupportedTlsVersions;
  /** The minimum strength TLS cipher suite allowed for an application */
  minTlsCipherSuite?: TlsCipherSuites;
  /** ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site */
  scmMinTlsVersion?: SupportedTlsVersions;
  /** State of FTP / FTPS service */
  ftpsState?: FtpsState;
  /**
   * Number of preWarmed instances.
   * This setting only applies to the Consumption and Elastic Plans
   */
  preWarmedInstanceCount?: number;
  /**
   * Maximum number of workers that a site can scale out to.
   * This setting only applies to the Consumption and Elastic Premium Plans
   */
  functionAppScaleLimit?: number;
  /**
   * Maximum number of workers that a site can scale out to.
   * This setting only applies to apps in plans where ElasticScaleEnabled is <code>true</code>
   */
  elasticWebAppScaleLimit?: number;
  /** Health check path */
  healthCheckPath?: string;
  /**
   * Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled,
   * the ScaleController will not monitor event sources directly, but will instead call to the
   * runtime to get scale status.
   */
  functionsRuntimeScaleMonitoringEnabled?: boolean;
  /** Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones */
  websiteTimeZone?: string;
  /**
   * Number of minimum instance count for a site
   * This setting only applies to the Elastic Plans
   */
  minimumElasticInstanceCount?: number;
  /** List of Azure Storage Accounts. */
  azureStorageAccounts?: { [propertyName: string]: AzureStorageInfoValue };
  /** Property to allow or block all public traffic. */
  publicNetworkAccess?: string;
}

/** Database connection string information. */
export interface ConnStringInfo {
  /** Name of connection string. */
  name?: string;
  /** Connection string value. */
  connectionString?: string;
  /** Type of database. */
  type?: ConnectionStringType;
}

/** MachineKey of an app. */
export interface SiteMachineKey {
  /** MachineKey validation. */
  validation?: string;
  /** Validation key. */
  validationKey?: string;
  /** Algorithm used for decryption. */
  decryption?: string;
  /** Decryption key. */
  decryptionKey?: string;
}

/**
 * The IIS handler mappings used to define which handler processes HTTP requests with certain extension.
 * For example, it is used to configure php-cgi.exe process to handle all HTTP requests with *.php extension.
 */
export interface HandlerMapping {
  /** Requests with this extension will be handled using the specified FastCGI application. */
  extension?: string;
  /** The absolute path to the FastCGI application. */
  scriptProcessor?: string;
  /** Command-line arguments to be passed to the script processor. */
  arguments?: string;
}

/** Virtual application in an app. */
export interface VirtualApplication {
  /** Virtual path. */
  virtualPath?: string;
  /** Physical path. */
  physicalPath?: string;
  /** <code>true</code> if preloading is enabled; otherwise, <code>false</code>. */
  preloadEnabled?: boolean;
  /** Virtual directories for virtual application. */
  virtualDirectories?: VirtualDirectory[];
}

/** Directory for virtual application. */
export interface VirtualDirectory {
  /** Path to virtual application. */
  virtualPath?: string;
  /** Physical path. */
  physicalPath?: string;
}

/** Routing rules in production experiments. */
export interface Experiments {
  /** List of ramp-up rules. */
  rampUpRules?: RampUpRule[];
}

/** Routing rules for ramp up testing. This rule allows to redirect static traffic % to a slot or to gradually change routing % based on performance. */
export interface RampUpRule {
  /** Hostname of a slot to which the traffic will be redirected if decided to. E.g. myapp-stage.azurewebsites.net. */
  actionHostName?: string;
  /** Percentage of the traffic which will be redirected to <code>ActionHostName</code>. */
  reroutePercentage?: number;
  /**
   * In auto ramp up scenario this is the step to add/remove from <code>ReroutePercentage</code> until it reaches \n<code>MinReroutePercentage</code> or
   * <code>MaxReroutePercentage</code>. Site metrics are checked every N minutes specified in <code>ChangeIntervalInMinutes</code>.\nCustom decision algorithm
   * can be provided in TiPCallback site extension which URL can be specified in <code>ChangeDecisionCallbackUrl</code>.
   */
  changeStep?: number;
  /** Specifies interval in minutes to reevaluate ReroutePercentage. */
  changeIntervalInMinutes?: number;
  /** Specifies lower boundary above which ReroutePercentage will stay. */
  minReroutePercentage?: number;
  /** Specifies upper boundary below which ReroutePercentage will stay. */
  maxReroutePercentage?: number;
  /**
   * Custom decision algorithm can be provided in TiPCallback site extension which URL can be specified. See TiPCallback site extension for the scaffold and contracts.
   * https://www.siteextensions.net/packages/TiPCallback/
   */
  changeDecisionCallbackUrl?: string;
  /** Name of the routing rule. The recommended name would be to point to the slot which will receive the traffic in the experiment. */
  name?: string;
}

/** Metric limits set on an app. */
export interface SiteLimits {
  /** Maximum allowed CPU usage percentage. */
  maxPercentageCpu?: number;
  /** Maximum allowed memory usage in MB. */
  maxMemoryInMb?: number;
  /** Maximum allowed disk size usage in MB. */
  maxDiskSizeInMb?: number;
}

/** Rules that can be defined for auto-heal. */
export interface AutoHealRules {
  /** Conditions that describe when to execute the auto-heal actions. */
  triggers?: AutoHealTriggers;
  /** Actions to be executed when a rule is triggered. */
  actions?: AutoHealActions;
}

/** Triggers for auto-heal. */
export interface AutoHealTriggers {
  /** A rule based on total requests. */
  requests?: RequestsBasedTrigger;
  /** A rule based on private bytes. */
  privateBytesInKB?: number;
  /** A rule based on status codes. */
  statusCodes?: StatusCodesBasedTrigger[];
  /** A rule based on request execution time. */
  slowRequests?: SlowRequestsBasedTrigger;
  /** A rule based on multiple Slow Requests Rule with path */
  slowRequestsWithPath?: SlowRequestsBasedTrigger[];
  /** A rule based on status codes ranges. */
  statusCodesRange?: StatusCodesRangeBasedTrigger[];
}

/** Trigger based on total requests. */
export interface RequestsBasedTrigger {
  /** Request Count. */
  count?: number;
  /** Time interval. */
  timeInterval?: string;
}

/** Trigger based on status code. */
export interface StatusCodesBasedTrigger {
  /** HTTP status code. */
  status?: number;
  /** Request Sub Status. */
  subStatus?: number;
  /** Win32 error code. */
  win32Status?: number;
  /** Request Count. */
  count?: number;
  /** Time interval. */
  timeInterval?: string;
  /** Request Path */
  path?: string;
}

/** Trigger based on request execution time. */
export interface SlowRequestsBasedTrigger {
  /** Time taken. */
  timeTaken?: string;
  /** Request Path. */
  path?: string;
  /** Request Count. */
  count?: number;
  /** Time interval. */
  timeInterval?: string;
}

/** Trigger based on range of status codes. */
export interface StatusCodesRangeBasedTrigger {
  /** HTTP status code. */
  statusCodes?: string;
  path?: string;
  /** Request Count. */
  count?: number;
  /** Time interval. */
  timeInterval?: string;
}

/** Actions which to take by the auto-heal module when a rule is triggered. */
export interface AutoHealActions {
  /** Predefined action to be taken. */
  actionType?: AutoHealActionType;
  /** Custom action to be taken. */
  customAction?: AutoHealCustomAction;
  /**
   * Minimum time the process must execute
   * before taking the action
   */
  minProcessExecutionTime?: string;
}

/**
 * Custom action to be executed
 * when an auto heal rule is triggered.
 */
export interface AutoHealCustomAction {
  /** Executable to be run. */
  exe?: string;
  /** Parameters for the executable. */
  parameters?: string;
}

/** Cross-Origin Resource Sharing (CORS) settings for the app. */
export interface CorsSettings {
  /**
   * Gets or sets the list of origins that should be allowed to make cross-origin
   * calls (for example: http://example.com:12345). Use "*" to allow all.
   */
  allowedOrigins?: string[];
  /**
   * Gets or sets whether CORS requests with credentials are allowed. See
   * https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#Requests_with_credentials
   * for more details.
   */
  supportCredentials?: boolean;
}

/** Information about the formal API definition for the app. */
export interface ApiDefinitionInfo {
  /** The URL of the API definition. */
  url?: string;
}

/** Azure API management (APIM) configuration linked to the app. */
export interface ApiManagementConfig {
  /** APIM-Api Identifier. */
  id?: string;
}

/** IP security restriction on an app. */
export interface IpSecurityRestriction {
  /**
   * IP address the security restriction is valid for.
   * It can be in form of pure ipv4 address (required SubnetMask property) or
   * CIDR notation such as ipv4/mask (leading bit match). For CIDR,
   * SubnetMask property must not be specified.
   */
  ipAddress?: string;
  /** Subnet mask for the range of IP addresses the restriction is valid for. */
  subnetMask?: string;
  /** Virtual network resource id */
  vnetSubnetResourceId?: string;
  /** (internal) Vnet traffic tag */
  vnetTrafficTag?: number;
  /** (internal) Subnet traffic tag */
  subnetTrafficTag?: number;
  /** Allow or Deny access for this IP range. */
  action?: string;
  /** Defines what this IP filter will be used for. This is to support IP filtering on proxies. */
  tag?: IpFilterTag;
  /** Priority of IP restriction rule. */
  priority?: number;
  /** IP restriction rule name. */
  name?: string;
  /** IP restriction rule description. */
  description?: string;
  /**
   * IP restriction rule headers.
   * X-Forwarded-Host (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host#Examples).
   * The matching logic is ..
   * - If the property is null or empty (default), all hosts(or lack of) are allowed.
   * - A value is compared using ordinal-ignore-case (excluding port number).
   * - Subdomain wildcards are permitted but don't match the root domain. For example, *.contoso.com matches the subdomain foo.contoso.com
   *  but not the root domain contoso.com or multi-level foo.bar.contoso.com
   * - Unicode host names are allowed but are converted to Punycode for matching.
   *
   * X-Forwarded-For (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For#Examples).
   * The matching logic is ..
   * - If the property is null or empty (default), any forwarded-for chains (or lack of) are allowed.
   * - If any address (excluding port number) in the chain (comma separated) matches the CIDR defined by the property.
   *
   * X-Azure-FDID and X-FD-HealthProbe.
   * The matching logic is exact match.
   */
  headers?: { [propertyName: string]: string[] };
}

/** Azure Files or Blob Storage access information value for dictionary storage. */
export interface AzureStorageInfoValue {
  /** Type of storage. */
  type?: AzureStorageType;
  /** Name of the storage account. */
  accountName?: string;
  /** Name of the file share (container name, for Blob storage). */
  shareName?: string;
  /** Access key for the storage account. */
  accessKey?: string;
  /** Path to mount the storage within the site's runtime environment. */
  mountPath?: string;
  /**
   * State of the storage account.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly state?: AzureStorageState;
}

/** App Dapr configuration. */
export interface DaprConfig {
  /** Boolean indicating if the Dapr side car is enabled */
  enabled?: boolean;
  /** Dapr application identifier */
  appId?: string;
  /** Tells Dapr which port your application is listening on */
  appPort?: number;
  /** Dapr max size of http header read buffer in KB to handle when sending multi-KB headers. Default is 65KB. */
  httpReadBufferSize?: number;
  /** Increasing max size of request body http servers parameter in MB to handle uploading of big files. Default is 4 MB. */
  httpMaxRequestSize?: number;
  /** Sets the log level for the Dapr sidecar. Allowed values are debug, info, warn, error. Default is info. */
  logLevel?: DaprLogLevel;
  /** Enables API logging for the Dapr sidecar */
  enableApiLogging?: boolean;
}

/** Function app resource requirements. */
export interface ResourceConfig {
  /** Required CPU in cores, e.g. 0.5 */
  cpu?: number;
  /** Required memory, e.g. "1Gi" */
  memory?: string;
}

/** Specification for an App Service Environment to use for this resource. */
export interface HostingEnvironmentProfile {
  /** Resource ID of the App Service Environment. */
  id?: string;
  /**
   * Name of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Resource type of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
}

/** Information needed for cloning operation. */
export interface CloningInfo {
  /**
   * Correlation ID of cloning operation. This ID ties multiple cloning operations
   * together to use the same snapshot.
   */
  correlationId?: string;
  /** <code>true</code> to overwrite destination app; otherwise, <code>false</code>. */
  overwrite?: boolean;
  /** <code>true</code> to clone custom hostnames from source app; otherwise, <code>false</code>. */
  cloneCustomHostNames?: boolean;
  /** <code>true</code> to clone source control from source app; otherwise, <code>false</code>. */
  cloneSourceControl?: boolean;
  /**
   * ARM resource ID of the source app. App resource ID is of the form
   * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and
   * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots.
   */
  sourceWebAppId: string;
  /** Location of source app ex: West US or North Europe */
  sourceWebAppLocation?: string;
  /** App Service Environment. */
  hostingEnvironment?: string;
  /**
   * Application setting overrides for cloned app. If specified, these settings override the settings cloned
   * from source app. Otherwise, application settings from source app are retained.
   */
  appSettingsOverrides?: { [propertyName: string]: string };
  /** <code>true</code> to configure load balancing for source and destination app. */
  configureLoadBalancing?: boolean;
  /**
   * ARM resource ID of the Traffic Manager profile to use, if it exists. Traffic Manager resource ID is of the form
   * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficManagerProfiles/{profileName}.
   */
  trafficManagerProfileId?: string;
  /** Name of Traffic Manager profile to create. This is only needed if Traffic Manager profile does not already exist. */
  trafficManagerProfileName?: string;
}

/** The status of the last successful slot swap operation. */
export interface SlotSwapStatus {
  /**
   * The time the last successful slot swap completed.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly timestampUtc?: Date;
  /**
   * The source slot of the last swap operation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly sourceSlotName?: string;
  /**
   * The destination slot of the last swap operation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly destinationSlotName?: string;
}

/** Managed service identity. */
export interface ManagedServiceIdentity {
  /** Type of managed service identity. */
  type?: ManagedServiceIdentityType;
  /**
   * Tenant of managed service identity.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly tenantId?: string;
  /**
   * Principal Id of managed service identity.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly principalId?: string;
  /** The list of user assigned identities associated with the resource. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName} */
  userAssignedIdentities?: { [propertyName: string]: UserAssignedIdentity };
}

/** User Assigned identity. */
export interface UserAssignedIdentity {
  /**
   * Principal Id of user assigned identity
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly principalId?: string;
  /**
   * Client Id of user assigned identity
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly clientId?: string;
}

/** Extended Location. */
export interface ExtendedLocation {
  /** Name of extended location. */
  name?: string;
  /**
   * Type of extended location.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
}

/** Diagnostics for an App Service Environment. */
export interface HostingEnvironmentDiagnostics {
  /** Name/identifier of the diagnostics. */
  name?: string;
  /** Diagnostics output. */
  diagnosticsOutput?: string;
}

/** Collection of Inbound Environment Endpoints */
export interface InboundEnvironmentEndpointCollection {
  /** Collection of resources. */
  value: InboundEnvironmentEndpoint[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** The IP Addresses and Ports that require inbound network access to and within the subnet of the App Service Environment. */
export interface InboundEnvironmentEndpoint {
  /** Short text describing the purpose of the network traffic. */
  description?: string;
  /** The IP addresses that network traffic will originate from in cidr notation. */
  endpoints?: string[];
  /** The ports that network traffic will arrive to the App Service Environment at. */
  ports?: string[];
}

/** Collection of worker pools. */
export interface WorkerPoolCollection {
  /** Collection of resources. */
  value: WorkerPoolResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Description of a SKU for a scalable resource. */
export interface SkuDescription {
  /** Name of the resource SKU. */
  name?: string;
  /** Service tier of the resource SKU. */
  tier?: string;
  /** Size specifier of the resource SKU. */
  size?: string;
  /** Family code of the resource SKU. */
  family?: string;
  /** Current number of instances assigned to the resource. */
  capacity?: number;
  /** Min, max, and default scale values of the SKU. */
  skuCapacity?: SkuCapacity;
  /** Locations of the SKU. */
  locations?: string[];
  /** Capabilities of the SKU, e.g., is traffic manager enabled? */
  capabilities?: Capability[];
}

/** Description of the App Service plan scale options. */
export interface SkuCapacity {
  /** Minimum number of workers for this App Service plan SKU. */
  minimum?: number;
  /** Maximum number of workers for this App Service plan SKU. */
  maximum?: number;
  /** Maximum number of Elastic workers for this App Service plan SKU. */
  elasticMaximum?: number;
  /** Default number of workers for this App Service plan SKU. */
  default?: number;
  /** Available scale configurations for an App Service plan. */
  scaleType?: string;
}

/** Describes the capabilities/features allowed for a specific SKU. */
export interface Capability {
  /** Name of the SKU capability. */
  name?: string;
  /** Value of the SKU capability. */
  value?: string;
  /** Reason of the SKU capability. */
  reason?: string;
}

/** Collection of metric definitions. */
export interface ResourceMetricDefinitionCollection {
  /** Collection of resources. */
  value: ResourceMetricDefinition[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Metrics availability and retention. */
export interface ResourceMetricAvailability {
  /**
   * Time grain .
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly timeGrain?: string;
  /**
   * Retention period for the current time grain.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly retention?: string;
}

/** Collection of SKU information. */
export interface SkuInfoCollection {
  /** Collection of resources. */
  value: SkuInfo[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** SKU discovery information. */
export interface SkuInfo {
  /** Resource type that this SKU applies to. */
  resourceType?: string;
  /** Name and tier of the SKU. */
  sku?: SkuDescription;
  /** Min, max, and default scale values of the SKU. */
  capacity?: SkuCapacity;
}

/** Collection of usages. */
export interface UsageCollection {
  /** Collection of resources. */
  value: Usage[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** An operation on a resource. */
export interface Operation {
  /** Operation ID. */
  id?: string;
  /** Operation name. */
  name?: string;
  /** The current status of the operation. */
  status?: OperationStatus;
  /** Any errors associate with the operation. */
  errors?: ErrorEntity[];
  /** Time when operation has started. */
  createdTime?: Date;
  /** Time when operation has been updated. */
  modifiedTime?: Date;
  /** Time when operation will expire. */
  expirationTime?: Date;
  /** Applicable only for stamp operation ids. */
  geoMasterOperationId?: string;
}

/** Body of the error response returned from the API. */
export interface ErrorEntity {
  /** Type of error. */
  extendedCode?: string;
  /** Message template. */
  messageTemplate?: string;
  /** Parameters for the template. */
  parameters?: string[];
  /** Inner errors. */
  innerErrors?: ErrorEntity[];
  /** Error Details. */
  details?: ErrorEntity[];
  /** The error target. */
  target?: string;
  /** Basic error code. */
  code?: string;
  /** Any details of the error. */
  message?: string;
}

/** Collection of Outbound Environment Endpoints */
export interface OutboundEnvironmentEndpointCollection {
  /** Collection of resources. */
  value: OutboundEnvironmentEndpoint[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Endpoints accessed for a common purpose that the App Service Environment requires outbound network access to. */
export interface OutboundEnvironmentEndpoint {
  /** The type of service accessed by the App Service Environment, e.g., Azure Storage, Azure SQL Database, and Azure Active Directory. */
  category?: string;
  /** The endpoints that the App Service Environment reaches the service at. */
  endpoints?: EndpointDependency[];
}

/** A domain name that a service is reached at, including details of the current connection status. */
export interface EndpointDependency {
  /** The domain name of the dependency. */
  domainName?: string;
  /** The IP Addresses and Ports used when connecting to DomainName. */
  endpointDetails?: EndpointDetail[];
}

/** Current TCP connectivity information from the App Service Environment to a single endpoint. */
export interface EndpointDetail {
  /** An IP Address that Domain Name currently resolves to. */
  ipAddress?: string;
  /** The port an endpoint is connected to. */
  port?: number;
  /** The time in milliseconds it takes for a TCP connection to be created from the App Service Environment to this IpAddress at this Port. */
  latency?: number;
  /** Whether it is possible to create a TCP connection from the App Service Environment to this IpAddress at this Port. */
  isAccessible?: boolean;
}

export interface PrivateEndpointConnectionCollection {
  /** Collection of resources. */
  value: RemotePrivateEndpointConnectionARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** A wrapper for an ARM resource id */
export interface ArmIdWrapper {
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly id?: string;
}

/** The state of a private link connection */
export interface PrivateLinkConnectionState {
  /** Status of a private link connection */
  status?: string;
  /** Description of a private link connection */
  description?: string;
  /** ActionsRequired for a private link connection */
  actionsRequired?: string;
}

/** Wrapper for a collection of private link resources */
export interface PrivateLinkResourcesWrapper {
  value: PrivateLinkResource[];
}

/** A private link resource */
export interface PrivateLinkResource {
  id: string;
  /** Name of a private link resource */
  name: string;
  type: string;
  /** Properties of a private link resource */
  properties: PrivateLinkResourceProperties;
}

/** Properties of a private link resource */
export interface PrivateLinkResourceProperties {
  /**
   * GroupId of a private link resource
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly groupId?: string;
  /**
   * RequiredMembers of a private link resource
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly requiredMembers?: string[];
  /**
   * RequiredZoneNames of a private link resource
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly requiredZoneNames?: string[];
}

/** Collection of App Service plans. */
export interface AppServicePlanCollection {
  /** Collection of resources. */
  value: AppServicePlan[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Specification for a Kubernetes Environment to use for this resource. */
export interface KubeEnvironmentProfile {
  /** Resource ID of the Kubernetes Environment. */
  id?: string;
  /**
   * Name of the Kubernetes Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Resource type of the Kubernetes Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
}

/** Collection of CSM usage quotas. */
export interface CsmUsageQuotaCollection {
  /** Collection of resources. */
  value: CsmUsageQuota[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Usage of the quota resource. */
export interface CsmUsageQuota {
  /** Units of measurement for the quota resource. */
  unit?: string;
  /** Next reset time for the resource counter. */
  nextResetTime?: Date;
  /** The current value of the resource counter. */
  currentValue?: number;
  /** The resource limit. */
  limit?: number;
  /** Quota name. */
  name?: LocalizableString;
}

/** Localizable string object containing the name and a localized value. */
export interface LocalizableString {
  /** Non-localized name. */
  value?: string;
  /** Localized name. */
  localizedValue?: string;
}

/** Collection of resources. */
export interface ResourceCollection {
  /** Collection of resources. */
  value: string[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of hostname bindings. */
export interface HybridConnectionCollection {
  /** Collection of resources. */
  value: HybridConnection[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Virtual Network information contract. */
export interface VnetInfo {
  /** The Virtual Network's resource ID. */
  vnetResourceId?: string;
  /**
   * The client certificate thumbprint.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly certThumbprint?: string;
  /**
   * A certificate file (.cer) blob containing the public key of the private key used to authenticate a
   * Point-To-Site VPN connection.
   */
  certBlob?: string;
  /**
   * The routes that this Virtual Network connection uses.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly routes?: VnetRoute[];
  /**
   * <code>true</code> if a resync is required; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resyncRequired?: boolean;
  /** DNS servers to be used by this Virtual Network. This should be a comma-separated list of IP addresses. */
  dnsServers?: string;
  /** Flag that is used to denote if this is VNET injection */
  isSwift?: boolean;
}

/** Collection of certificates. */
export interface CertificateCollection {
  /** Collection of resources. */
  value: Certificate[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Container App collection ARM resource. */
export interface ContainerAppCollection {
  /** Collection of resources. */
  value: ContainerApp[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Non versioned Container App configuration properties that define the mutable settings of a Container app */
export interface Configuration {
  /** Collection of secrets used by a Container app */
  secrets?: Secret[];
  /**
   * ActiveRevisionsMode controls how active revisions are handled for the Container app:
   * <list><item>Multiple: multiple revisions can be active. If no value if provided, this is the default</item><item>Single: Only one revision can be active at a time. Revision weights can not be used in this mode</item></list>
   */
  activeRevisionsMode?: ActiveRevisionsMode;
  /** Ingress configurations. */
  ingress?: Ingress;
  /** Collection of private container registry credentials for containers used by the Container app */
  registries?: RegistryCredentials[];
}

/** Container App Secret. */
export interface Secret {
  /** Secret Name. */
  name?: string;
  /** Secret Value. */
  value?: string;
}

/** Container App Ingress configuration. */
export interface Ingress {
  /**
   * Hostname.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly fqdn?: string;
  /** Bool indicating if app exposes an external http endpoint */
  external?: boolean;
  /** Target Port in containers for traffic from ingress */
  targetPort?: number;
  /** Ingress transport protocol */
  transport?: IngressTransportMethod;
  traffic?: TrafficWeight[];
  /** Bool indicating if HTTP connections to is allowed. If set to false HTTP connections are automatically redirected to HTTPS connections */
  allowInsecure?: boolean;
}

/** Traffic weight assigned to a revision */
export interface TrafficWeight {
  /** Name of a revision */
  revisionName?: string;
  /** Traffic weight assigned to a revision */
  weight?: number;
  /** Indicates that the traffic weight belongs to a latest stable revision */
  latestRevision?: boolean;
}

/** Container App Private Registry */
export interface RegistryCredentials {
  /** Container Registry Server */
  server?: string;
  /** Container Registry Username */
  username?: string;
  /** The name of the Secret that contains the registry login password */
  passwordSecretRef?: string;
}

/**
 * Container App versioned application definition.
 * Defines the desired state of an immutable revision.
 * Any changes to this section Will result in a new revision being created
 */
export interface Template {
  /** User friendly suffix that is appended to the revision name */
  revisionSuffix?: string;
  /** List of container definitions for the Container App. */
  containers?: Container[];
  /** Scaling properties for the Container App. */
  scale?: Scale;
  /** Dapr configuration for the Container App. */
  dapr?: Dapr;
}

/** Container App container definition. */
export interface Container {
  /** Container image tag. */
  image?: string;
  /** Custom container name. */
  name?: string;
  /** Container start command. */
  command?: string[];
  /** Container start command arguments. */
  args?: string[];
  /** Container environment variables. */
  env?: EnvironmentVar[];
  /** Container resource requirements. */
  resources?: ContainerResources;
}

/** Container App container environment variable. */
export interface EnvironmentVar {
  /** Environment variable name. */
  name?: string;
  /** Non-secret environment variable value. */
  value?: string;
  /** Name of the Container App secret from which to pull the environment variable value. */
  secretRef?: string;
}

/** Container App container resource requirements. */
export interface ContainerResources {
  /** Required CPU in cores, e.g. 0.5 */
  cpu?: number;
  /** Required memory, e.g. "250Mb" */
  memory?: string;
}

/** Container App scaling configurations. */
export interface Scale {
  /** Optional. Minimum number of container replicas. */
  minReplicas?: number;
  /** Optional. Maximum number of container replicas. Defaults to 10 if not set. */
  maxReplicas?: number;
  /** Scaling rules. */
  rules?: ScaleRule[];
}

/** Container App container scaling rule. */
export interface ScaleRule {
  /** Scale Rule Name */
  name?: string;
  /** Azure Queue based scaling. */
  azureQueue?: QueueScaleRule;
  /** Custom scale rule. */
  custom?: CustomScaleRule;
  /** HTTP requests based scaling. */
  http?: HttpScaleRule;
}

/** Container App container Azure Queue based scaling rule. */
export interface QueueScaleRule {
  /** Queue name. */
  queueName?: string;
  /** Queue length. */
  queueLength?: number;
  /** Authentication secrets for the queue scale rule. */
  auth?: ScaleRuleAuth[];
}

/** Auth Secrets for Container App Scale Rule */
export interface ScaleRuleAuth {
  /** Name of the Container App secret from which to pull the auth params. */
  secretRef?: string;
  /** Trigger Parameter that uses the secret */
  triggerParameter?: string;
}

/** Container App container Custom scaling rule. */
export interface CustomScaleRule {
  /**
   * Type of the custom scale rule
   * eg: azure-servicebus, redis etc.
   */
  type?: string;
  /** Metadata properties to describe custom scale rule. */
  metadata?: { [propertyName: string]: string };
  /** Authentication secrets for the custom scale rule. */
  auth?: ScaleRuleAuth[];
}

/** Container App container Custom scaling rule. */
export interface HttpScaleRule {
  /** Metadata properties to describe http scale rule. */
  metadata?: { [propertyName: string]: string };
  /** Authentication secrets for the custom scale rule. */
  auth?: ScaleRuleAuth[];
}

/** Container App Dapr configuration. */
export interface Dapr {
  /** Boolean indicating if the Dapr side car is enabled */
  enabled?: boolean;
  /** Dapr application identifier */
  appId?: string;
  /** Port on which the Dapr side car */
  appPort?: number;
  /** Collection of Dapr components */
  components?: DaprComponent[];
}

/** Dapr component configuration */
export interface DaprComponent {
  /** Component name */
  name?: string;
  /** Component type */
  type?: string;
  /** Component version */
  version?: string;
  /** Component metadata */
  metadata?: DaprMetadata[];
}

/** Container App Dapr component metadata. */
export interface DaprMetadata {
  /** Metadata property name. */
  name?: string;
  /** Metadata property value. */
  value?: string;
  /** Name of the Container App secret from which to pull the metadata property value. */
  secretRef?: string;
}

/** Container App Secrets Collection ARM resource. */
export interface SecretsCollection {
  /** Collection of resources. */
  value: ContainerAppSecret[];
}

/** Container App Secret. */
export interface ContainerAppSecret {
  /**
   * Secret Name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Secret Value.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
}

/** Container App Revisions collection ARM resource. */
export interface RevisionCollection {
  /** Collection of resources. */
  value: Revision[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of deleted apps. */
export interface DeletedWebAppCollection {
  /** Collection of resources. */
  value: DeletedSite[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Diagnostic Categories */
export interface DiagnosticCategoryCollection {
  /** Collection of resources. */
  value: DiagnosticCategory[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Diagnostic Analyses */
export interface DiagnosticAnalysisCollection {
  /** Collection of resources. */
  value: AnalysisDefinition[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Class representing Abnormal Time Period identified in diagnosis */
export interface AbnormalTimePeriod {
  /** Start time of the downtime */
  startTime?: Date;
  /** End time of the downtime */
  endTime?: Date;
  /** List of Possible Cause of downtime */
  events?: DetectorAbnormalTimePeriod[];
  /** List of proposed solutions */
  solutions?: Solution[];
}

/** Class representing Abnormal Time Period detected. */
export interface DetectorAbnormalTimePeriod {
  /** Start time of the correlated event */
  startTime?: Date;
  /** End time of the correlated event */
  endTime?: Date;
  /** Message describing the event */
  message?: string;
  /** Represents the name of the Detector */
  source?: string;
  /** Represents the rank of the Detector */
  priority?: number;
  /** Downtime metadata */
  metaData?: NameValuePair[][];
  /** Represents the type of the Detector */
  type?: IssueType;
  /** List of proposed solutions */
  solutions?: Solution[];
}

/** Class Representing Solution for problems detected. */
export interface Solution {
  /** Solution Id. */
  id?: number;
  /** Display Name of the solution */
  displayName?: string;
  /** Order of the solution. */
  order?: number;
  /** Description of the solution */
  description?: string;
  /** Type of Solution */
  type?: SolutionType;
  /** Solution Data. */
  data?: NameValuePair[][];
  /** Solution Metadata. */
  metadata?: NameValuePair[][];
}

/** Class Representing Detector Evidence used for analysis */
export interface AnalysisData {
  /** Name of the Detector */
  source?: string;
  /** Detector Definition */
  detectorDefinition?: DetectorDefinition;
  /** Source Metrics */
  metrics?: DiagnosticMetricSet[];
  /** Additional Source Data */
  data?: NameValuePair[][];
  /** Detector Meta Data */
  detectorMetaData?: ResponseMetaData;
}

/** Class representing detector definition */
export interface DetectorDefinition {
  /**
   * Display name of the detector
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayName?: string;
  /**
   * Description of the detector
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly description?: string;
  /**
   * Detector Rank
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly rank?: number;
  /**
   * Flag representing whether detector is enabled or not.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isEnabled?: boolean;
}

/** Class representing Diagnostic Metric information */
export interface DiagnosticMetricSet {
  /** Name of the metric */
  name?: string;
  /** Metric's unit */
  unit?: string;
  /** Start time of the period */
  startTime?: Date;
  /** End time of the period */
  endTime?: Date;
  /** Presented time grain. Supported grains at the moment are PT1M, PT1H, P1D */
  timeGrain?: string;
  /** Collection of metric values for the selected period based on the {Microsoft.Web.Hosting.Administration.DiagnosticMetricSet.TimeGrain} */
  values?: DiagnosticMetricSample[];
}

/** Class representing Diagnostic Metric */
export interface DiagnosticMetricSample {
  /** Time at which metric is measured */
  timestamp?: Date;
  /**
   * Role Instance. Null if this counter is not per instance
   * This is returned and should be whichever instance name we desire to be returned
   * i.e. CPU and Memory return RDWORKERNAME (LargeDed..._IN_0)
   * where RDWORKERNAME is Machine name below and RoleInstance name in parenthesis
   */
  roleInstance?: string;
  /** Total value of the metric. If multiple measurements are made this will have sum of all. */
  total?: number;
  /** Maximum of the metric sampled during the time period */
  maximum?: number;
  /** Minimum of the metric sampled during the time period */
  minimum?: number;
  /** Whether the values are aggregates across all workers or not */
  isAggregated?: boolean;
}

export interface ResponseMetaData {
  /** Source of the Data */
  dataSource?: DataSource;
}

/** Class representing data source used by the detectors */
export interface DataSource {
  /** Instructions if any for the data source */
  instructions?: string[];
  /** Datasource Uri Links */
  dataSourceUri?: NameValuePair[];
}

/** Collection of Diagnostic Detectors */
export interface DiagnosticDetectorCollection {
  /** Collection of resources. */
  value: DetectorDefinitionResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Kubernetes Environments */
export interface KubeEnvironmentCollection {
  /** Collection of resources. */
  value: KubeEnvironment[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

export interface ArcConfiguration {
  artifactsStorageType?: StorageType;
  artifactStorageClassName?: string;
  artifactStorageMountPath?: string;
  artifactStorageNodeName?: string;
  artifactStorageAccessMode?: string;
  frontEndServiceConfiguration?: FrontEndConfiguration;
  kubeConfig?: string;
}

export interface FrontEndConfiguration {
  kind?: FrontEndServiceType;
}

export interface AppLogsConfiguration {
  destination?: string;
  logAnalyticsConfiguration?: LogAnalyticsConfiguration;
}

export interface LogAnalyticsConfiguration {
  customerId?: string;
  sharedKey?: string;
}

export interface ContainerAppsConfiguration {
  /** Azure Monitor instrumentation key used by Dapr to export Service to Service communication telemetry */
  daprAIInstrumentationKey?: string;
  /** IP range in CIDR notation that can be reserved for environment infrastructure IP addresses. It must not overlap with any other Subnet IP ranges. */
  platformReservedCidr?: string;
  /** An IP address from the IP range defined by platformReservedCidr that will be reserved for the internal DNS server */
  platformReservedDnsIP?: string;
  /** Resource ID of a subnet for control plane infrastructure components. This subnet must be in the same VNET as the subnet defined in appSubnetResourceId. Must not overlap with the IP range defined in platformReservedCidr, if defined. */
  controlPlaneSubnetResourceId?: string;
  /** Resource ID of a subnet for control plane infrastructure components. This subnet must be in the same VNET as the subnet defined in appSubnetResourceId. Must not overlap with the IP range defined in platformReservedCidr, if defined. */
  appSubnetResourceId?: string;
  /** CIDR notation IP range assigned to the Docker bridge network. It must not overlap with any Subnet IP ranges or the IP range defined in platformReservedCidr, if defined. */
  dockerBridgeCidr?: string;
}

/** Collection of Application Stacks */
export interface ApplicationStackCollection {
  /** Collection of resources. */
  value: ApplicationStackResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Application stack. */
export interface ApplicationStack {
  /** Application stack name. */
  name?: string;
  /** Application stack display name. */
  display?: string;
  /** Application stack dependency. */
  dependency?: string;
  /** List of major versions available. */
  majorVersions?: StackMajorVersion[];
  /** List of frameworks associated with application stack. */
  frameworks?: ApplicationStack[];
  /** <code>true</code> if this is the stack is deprecated; otherwise, <code>false</code>. */
  isDeprecated?: ApplicationStack[];
}

/** Application stack major version. */
export interface StackMajorVersion {
  /** Application stack major version (display only). */
  displayVersion?: string;
  /** Application stack major version (runtime only). */
  runtimeVersion?: string;
  /** <code>true</code> if this is the default major version; otherwise, <code>false</code>. */
  isDefault?: boolean;
  /** Minor versions associated with the major version. */
  minorVersions?: StackMinorVersion[];
  /** <code>true</code> if this supports Application Insights; otherwise, <code>false</code>. */
  applicationInsights?: boolean;
  /** <code>true</code> if this stack is in Preview, otherwise <code>false</code>. */
  isPreview?: boolean;
  /** <code>true</code> if this stack has been deprecated, otherwise <code>false</code>. */
  isDeprecated?: boolean;
  /** <code>true</code> if this stack should be hidden for new customers on portal, otherwise <code>false</code>. */
  isHidden?: boolean;
  /**
   * <appSettings>
   *  <appSetting name="FUNCTIONS_WORKER_RUNTIME" value="dotnet" />
   * </appSettings>
   *  Example: All the function apps need AppSetting: "FUNCTIONS_WORKER_RUNTIME" to be set stack name
   */
  appSettingsDictionary?: { [propertyName: string]: Record<string, unknown> };
  /**
   * <siteConfigProperties>
   *  <siteConfigProperty name="Use32BitWorkerProcess" value="false" />
   * </siteConfigProperties>
   *  Example: All Linux Function Apps, need Use32BitWorkerProcess to be set to 0
   */
  siteConfigPropertiesDictionary?: {
    [propertyName: string]: Record<string, unknown>;
  };
}

/** Application stack minor version. */
export interface StackMinorVersion {
  /** Application stack minor version (display only). */
  displayVersion?: string;
  /** Application stack minor version (runtime only). */
  runtimeVersion?: string;
  /** <code>true</code> if this is the default minor version; otherwise, <code>false</code>. */
  isDefault?: boolean;
  /** <code>true</code> if this supports Remote Debugging, otherwise <code>false</code>. */
  isRemoteDebuggingEnabled?: boolean;
}

/** Collection of Function app Stacks */
export interface FunctionAppStackCollection {
  /** Collection of resources. */
  value: FunctionAppStack[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Function App stack major version. */
export interface FunctionAppMajorVersion {
  /**
   * Function App stack major version (display only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayText?: string;
  /**
   * Function App stack major version name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
  /**
   * Minor versions associated with the major version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly minorVersions?: FunctionAppMinorVersion[];
}

/** Function App stack minor version. */
export interface FunctionAppMinorVersion {
  /**
   * Function App stack (display only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayText?: string;
  /**
   * Function App stack name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
  /**
   * Settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly stackSettings?: FunctionAppRuntimes;
}

/** Function App stack runtimes. */
export interface FunctionAppRuntimes {
  /**
   * Linux-specific settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly linuxRuntimeSettings?: FunctionAppRuntimeSettings;
  /**
   * Windows-specific settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly windowsRuntimeSettings?: FunctionAppRuntimeSettings;
}

/** Function App runtime settings. */
export interface FunctionAppRuntimeSettings {
  /**
   * Function App stack minor version (runtime only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly runtimeVersion?: string;
  /**
   * <code>true</code> if remote debugging is supported for the stack; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly remoteDebuggingSupported?: boolean;
  /**
   * Application Insights settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly appInsightsSettings?: AppInsightsWebAppStackSettings;
  /**
   * GitHub Actions settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly gitHubActionSettings?: GitHubActionWebAppStackSettings;
  /**
   * Application settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly appSettingsDictionary?: { [propertyName: string]: string };
  /**
   * Configuration settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly siteConfigPropertiesDictionary?: SiteConfigPropertiesDictionary;
  /**
   * List of supported Functions extension versions.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly supportedFunctionsExtensionVersions?: string[];
  /**
   * <code>true</code> if the stack is in preview; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isPreview?: boolean;
  /**
   * <code>true</code> if the stack is deprecated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDeprecated?: boolean;
  /**
   * <code>true</code> if the stack should be hidden; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isHidden?: boolean;
  /**
   * End-of-life date for the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endOfLifeDate?: Date;
  /**
   * <code>true</code> if the stack version is auto-updated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isAutoUpdate?: boolean;
  /**
   * <code>true</code> if the minor version is early-access; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isEarlyAccess?: boolean;
  /**
   * <code>true</code> if the minor version the default; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDefault?: boolean;
}

/** App Insights Web App stack settings. */
export interface AppInsightsWebAppStackSettings {
  /**
   * <code>true</code> if remote Application Insights is supported for the stack; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isSupported?: boolean;
  /**
   * <code>true</code> if Application Insights is disabled by default for the stack; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDefaultOff?: boolean;
}

/** GitHub Actions Web App stack settings. */
export interface GitHubActionWebAppStackSettings {
  /**
   * <code>true</code> if GitHub Actions is supported for the stack; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isSupported?: boolean;
  /**
   * The minor version that is supported for GitHub Actions.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly supportedVersion?: string;
}

/** Site config properties dictionary. */
export interface SiteConfigPropertiesDictionary {
  /**
   * <code>true</code> if use32BitWorkerProcess should be set to true for the stack; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly use32BitWorkerProcess?: boolean;
  /**
   * LinuxFxVersion configuration setting.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly linuxFxVersion?: string;
  /**
   * JavaVersion configuration setting.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly javaVersion?: string;
  /**
   * PowerShellVersion configuration setting.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly powerShellVersion?: string;
}

/** Collection of Web app Stacks */
export interface WebAppStackCollection {
  /** Collection of resources. */
  value: WebAppStack[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Web App stack major version. */
export interface WebAppMajorVersion {
  /**
   * Web App stack major version (display only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayText?: string;
  /**
   * Web App stack major version name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
  /**
   * Minor versions associated with the major version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly minorVersions?: WebAppMinorVersion[];
}

/** Web App stack minor version. */
export interface WebAppMinorVersion {
  /**
   * Web App stack minor version (display only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayText?: string;
  /**
   * Web App stack major version name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
  /**
   * Settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly stackSettings?: WebAppRuntimes;
}

/** Web App stack runtimes. */
export interface WebAppRuntimes {
  /**
   * Linux-specific settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly linuxRuntimeSettings?: WebAppRuntimeSettings;
  /**
   * Windows-specific settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly windowsRuntimeSettings?: WebAppRuntimeSettings;
  /**
   * Linux-specific settings associated with the Java container minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly linuxContainerSettings?: LinuxJavaContainerSettings;
  /**
   * Windows-specific settings associated with the Java container minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly windowsContainerSettings?: WindowsJavaContainerSettings;
}

/** Web App runtime settings. */
export interface WebAppRuntimeSettings {
  /**
   * Web App stack minor version (runtime only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly runtimeVersion?: string;
  /**
   * <code>true</code> if remote debugging is supported for the stack; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly remoteDebuggingSupported?: boolean;
  /**
   * Application Insights settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly appInsightsSettings?: AppInsightsWebAppStackSettings;
  /**
   * GitHub Actions settings associated with the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly gitHubActionSettings?: GitHubActionWebAppStackSettings;
  /**
   * <code>true</code> if the stack is in preview; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isPreview?: boolean;
  /**
   * <code>true</code> if the stack is deprecated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDeprecated?: boolean;
  /**
   * <code>true</code> if the stack should be hidden; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isHidden?: boolean;
  /**
   * End-of-life date for the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endOfLifeDate?: Date;
  /**
   * <code>true</code> if the stack version is auto-updated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isAutoUpdate?: boolean;
  /**
   * <code>true</code> if the minor version is early-access; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isEarlyAccess?: boolean;
}

/** Linux Java Container settings. */
export interface LinuxJavaContainerSettings {
  /**
   * Java 11 version (runtime only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly java11Runtime?: string;
  /**
   * Java 8 version (runtime only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly java8Runtime?: string;
  /**
   * <code>true</code> if the stack is in preview; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isPreview?: boolean;
  /**
   * <code>true</code> if the stack is deprecated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDeprecated?: boolean;
  /**
   * <code>true</code> if the stack should be hidden; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isHidden?: boolean;
  /**
   * End-of-life date for the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endOfLifeDate?: Date;
  /**
   * <code>true</code> if the stack version is auto-updated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isAutoUpdate?: boolean;
  /**
   * <code>true</code> if the minor version is early-access; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isEarlyAccess?: boolean;
}

/** Windows Java Container settings. */
export interface WindowsJavaContainerSettings {
  /**
   * Java container (runtime only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly javaContainer?: string;
  /**
   * Java container version (runtime only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly javaContainerVersion?: string;
  /**
   * <code>true</code> if the stack is in preview; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isPreview?: boolean;
  /**
   * <code>true</code> if the stack is deprecated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDeprecated?: boolean;
  /**
   * <code>true</code> if the stack should be hidden; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isHidden?: boolean;
  /**
   * End-of-life date for the minor version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endOfLifeDate?: Date;
  /**
   * <code>true</code> if the stack version is auto-updated; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isAutoUpdate?: boolean;
  /**
   * <code>true</code> if the minor version is early-access; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isEarlyAccess?: boolean;
}

/** Collection of recommendations. */
export interface RecommendationCollection {
  /** Collection of resources. */
  value: Recommendation[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of resource health metadata. */
export interface ResourceHealthMetadataCollection {
  /** Collection of resources. */
  value: ResourceHealthMetadata[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of source controls. */
export interface SourceControlCollection {
  /** Collection of resources. */
  value: SourceControl[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Billing Meters */
export interface BillingMeterCollection {
  /** Collection of resources. */
  value: BillingMeter[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Resource name availability request content. */
export interface ResourceNameAvailabilityRequest {
  /** Resource name to verify. */
  name: string;
  /** Resource type used for verification. */
  type: CheckNameResourceTypes;
  /** Is fully qualified domain name. */
  isFqdn?: boolean;
  /** Azure Resource Manager ID of the customer's selected Container Apps Environment on which to host the Function app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} */
  environmentId?: string;
}

/** Information regarding availability of a resource name. */
export interface ResourceNameAvailability {
  /** <code>true</code> indicates name is valid and available. <code>false</code> indicates the name is invalid, unavailable, or both. */
  nameAvailable?: boolean;
  /** <code>Invalid</code> indicates the name provided does not match Azure App Service naming requirements. <code>AlreadyExists</code> indicates that the name is already in use and is therefore unavailable. */
  reason?: InAvailabilityReasonType;
  /** If reason == invalid, provide the user with the reason why the given name is invalid, and provide the resource naming requirements so that the user can select a valid name. If reason == AlreadyExists, explain that resource name is already in use, and direct them to select a different name. */
  message?: string;
}

/** Collection of custom hostname sites */
export interface CustomHostnameSitesCollection {
  /** Collection of resources. */
  value: CustomHostnameSites[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/**
 * List of available locations (regions or App Service Environments) for
 * deployment of App Service resources.
 */
export interface DeploymentLocations {
  /** Available regions. */
  locations?: GeoRegion[];
  /** Available App Service Environments with full descriptions of the environments. */
  hostingEnvironments?: AppServiceEnvironment[];
  /** Available App Service Environments with basic information. */
  hostingEnvironmentDeploymentInfos?: HostingEnvironmentDeploymentInfo[];
}

/** Information needed to create resources on an App Service Environment. */
export interface HostingEnvironmentDeploymentInfo {
  /** Name of the App Service Environment. */
  name?: string;
  /** Location of the App Service Environment. */
  location?: string;
}

/** Collection of ASE regions. */
export interface AseRegionCollection {
  /** Collection of resources. */
  value: AseRegion[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of geographical regions. */
export interface GeoRegionCollection {
  /** Collection of resources. */
  value: GeoRegion[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of identifiers. */
export interface IdentifierCollection {
  /** Collection of resources. */
  value: Identifier[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of premier add-on offers. */
export interface PremierAddOnOfferCollection {
  /** Collection of resources. */
  value: PremierAddOnOffer[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of SKU information. */
export interface SkuInfos {
  /** Resource type that this SKU applies to. */
  resourceType?: string;
  /** List of SKUs the subscription is able to use. */
  skus?: GlobalCsmSkuDescription[];
}

/** A Global SKU Description. */
export interface GlobalCsmSkuDescription {
  /** Name of the resource SKU. */
  name?: string;
  /** Service Tier of the resource SKU. */
  tier?: string;
  /** Size specifier of the resource SKU. */
  size?: string;
  /** Family code of the resource SKU. */
  family?: string;
  /** Min, max, and default scale values of the SKU. */
  capacity?: SkuCapacity;
  /** Locations of the SKU. */
  locations?: string[];
  /** Capabilities of the SKU, e.g., is traffic manager enabled? */
  capabilities?: Capability[];
}

/** Object with a list of the resources that need to be moved and the resource group they should be moved to. */
export interface CsmMoveResourceEnvelope {
  targetResourceGroup?: string;
  resources?: string[];
}

/** Resource validation request content. */
export interface ValidateRequest {
  /** Resource name to verify. */
  name: string;
  /** Resource type used for verification. */
  type: ValidateResourceTypes;
  /** Expected location of the resource. */
  location: string;
  /** ARM resource ID of an App Service plan that would host the app. */
  serverFarmId?: string;
  /** Name of the target SKU for the App Service plan. */
  skuName?: string;
  /** <code>true</code> if App Service plan is for Linux workers; otherwise, <code>false</code>. */
  needLinuxWorkers?: boolean;
  /** <code>true</code> if App Service plan is for Spot instances; otherwise, <code>false</code>. */
  isSpot?: boolean;
  /** Target capacity of the App Service plan (number of VMs). */
  capacity?: number;
  /** Name of App Service Environment where app or App Service plan should be created. */
  hostingEnvironment?: string;
  /** <code>true</code> if App Service plan is running as a windows container */
  isXenon?: boolean;
  /** Base URL of the container registry */
  containerRegistryBaseUrl?: string;
  /** Username for to access the container registry */
  containerRegistryUsername?: string;
  /** Password for to access the container registry */
  containerRegistryPassword?: string;
  /** Repository name (image name) */
  containerImageRepository?: string;
  /** Image tag */
  containerImageTag?: string;
  /** Platform (windows or linux) */
  containerImagePlatform?: string;
  /** App Service Environment Properties */
  appServiceEnvironment?: AppServiceEnvironment;
}

/** Describes the result of resource validation. */
export interface ValidateResponse {
  /** Result of validation. */
  status?: string;
  /** Error details for the case when validation fails. */
  error?: ValidateResponseError;
}

/** Error details for when validation fails. */
export interface ValidateResponseError {
  /** Validation error code. */
  code?: string;
  /** Validation error message. */
  message?: string;
}

/** Build properties for the static site. */
export interface StaticSiteBuildProperties {
  /** The path to the app code within the repository. */
  appLocation?: string;
  /** The path to the api code within the repository. */
  apiLocation?: string;
  /** Deprecated: The path of the app artifacts after building (deprecated in favor of OutputLocation) */
  appArtifactLocation?: string;
  /** The output path of the app after building. */
  outputLocation?: string;
  /** A custom command to run during deployment of the static content application. */
  appBuildCommand?: string;
  /** A custom command to run during deployment of the Azure Functions API application. */
  apiBuildCommand?: string;
  /** Skip Github Action workflow generation. */
  skipGithubActionWorkflowGeneration?: boolean;
  /** Github Action secret name override. */
  githubActionSecretNameOverride?: string;
}

/** Collection of static sites. */
export interface StaticSiteCollection {
  /** Collection of resources. */
  value: StaticSiteARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Message envelope that contains the common Azure resource manager properties and the resource provider specific content. */
export interface ResponseMessageEnvelopeRemotePrivateEndpointConnection {
  /**
   * Resource Id. Typically ID is populated only for responses to GET requests. Caller is responsible for passing in this
   * value for GET requests only.
   * For example: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupId}/providers/Microsoft.Web/sites/{sitename}
   */
  id?: string;
  /** Name of resource. */
  name?: string;
  /** Type of resource e.g "Microsoft.Web/sites". */
  type?: string;
  /** Geographical region resource belongs to e.g. SouthCentralUS, SouthEastAsia. */
  location?: string;
  /** Tags associated with resource. */
  tags?: { [propertyName: string]: string };
  /** Azure resource manager plan. */
  plan?: ArmPlan;
  /** Resource specific properties. */
  properties?: RemotePrivateEndpointConnection;
  /** SKU description of the resource. */
  sku?: SkuDescription;
  /** Azure-AsyncOperation Status info. */
  status?: string;
  /** Azure-AsyncOperation Error info. */
  error?: ErrorEntity;
  /** MSI resource */
  identity?: ManagedServiceIdentity;
  /** Logical Availability Zones the service is hosted in */
  zones?: string[];
}

/** The plan object in Azure Resource Manager, represents a marketplace plan. */
export interface ArmPlan {
  /** The name. */
  name?: string;
  /** The publisher. */
  publisher?: string;
  /** The product. */
  product?: string;
  /** The promotion code. */
  promotionCode?: string;
  /** Version of product. */
  version?: string;
}

/** Template Options for the static site. */
export interface StaticSiteTemplateOptions {
  /** URL of the template repository. The newly generated repository will be based on this one. */
  templateRepositoryUrl?: string;
  /** Owner of the newly generated repository. */
  owner?: string;
  /** Name of the newly generated repository. */
  repositoryName?: string;
  /** Description of the newly generated repository. */
  description?: string;
  /** Whether or not the newly generated repository is a private repository. Defaults to false (i.e. public). */
  isPrivate?: boolean;
}

/** Static Site Linked Backend ARM resource. */
export interface StaticSiteLinkedBackend {
  /** The resource id of the backend linked to the static site */
  backendResourceId?: string;
  /** The region of the backend linked to the static site */
  region?: string;
  /**
   * The date and time on which the backend was linked to the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdOn?: Date;
  /**
   * The provisioning state of the linking process.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: string;
}

/** Static Site Database Connection overview. */
export interface DatabaseConnectionOverview {
  /**
   * The resource id of the database.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceId?: string;
  /**
   * If present, the identity is used in conjunction with connection string to connect to the database. Use of the system-assigned managed identity is indicated with the string 'SystemAssigned', while use of a user-assigned managed identity is indicated with the resource id of the managed identity resource.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly connectionIdentity?: string;
  /**
   * The region of the database resource.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly region?: string;
  /**
   * A list of configuration files associated with this database connection.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly configurationFiles?: StaticSiteDatabaseConnectionConfigurationFileOverview[];
  /**
   * If present, the name of this database connection resource.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
}

/** A database connection configuration file */
export interface StaticSiteDatabaseConnectionConfigurationFileOverview {
  /**
   * The name of the configuration file.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly fileName?: string;
  /**
   * The Base64 encoding of the file contents.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contents?: string;
  /**
   * The type of configuration file.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
}

/** Collection of static site custom users. */
export interface StaticSiteUserCollection {
  /** Collection of resources. */
  value: StaticSiteUserARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of static site builds. */
export interface StaticSiteBuildCollection {
  /** Collection of resources. */
  value: StaticSiteBuildARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of static site database connections. */
export interface DatabaseConnectionCollection {
  /** Collection of resources. */
  value: DatabaseConnection[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Static Site Database Connection Request Properties resource when patching */
export interface DatabaseConnectionPatchRequest {
  /** The resource id of the database. */
  resourceId?: string;
  /** If present, the identity is used in conjunction with connection string to connect to the database. Use of the system-assigned managed identity is indicated with the string 'SystemAssigned', while use of a user-assigned managed identity is indicated with the resource id of the managed identity resource. */
  connectionIdentity?: string;
  /** The connection string to use to connect to the database. */
  connectionString?: string;
  /** The region of the database resource. */
  region?: string;
}

/** Collection of static site functions. */
export interface StaticSiteFunctionOverviewCollection {
  /** Collection of resources. */
  value: StaticSiteFunctionOverviewARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of static site user provided function apps. */
export interface StaticSiteUserProvidedFunctionAppsCollection {
  /** Collection of resources. */
  value: StaticSiteUserProvidedFunctionAppARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of static site basic auth. */
export interface StaticSiteBasicAuthPropertiesCollection {
  /** Collection of resources. */
  value: StaticSiteBasicAuthPropertiesARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of static site custom domains. */
export interface StaticSiteCustomDomainOverviewCollection {
  /** Collection of resources. */
  value: StaticSiteCustomDomainOverviewARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of static site linked backends. */
export interface StaticSiteLinkedBackendsCollection {
  /** Collection of resources. */
  value: StaticSiteLinkedBackendARMResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Deployment slot parameters. */
export interface CsmSlotEntity {
  /** Destination deployment slot during swap operation. */
  targetSlot: string;
  /** <code>true</code> to preserve Virtual Network to the slot during swap; otherwise, <code>false</code>. */
  preserveVnet: boolean;
}

/** Description of a backup schedule. Describes how often should be the backup performed and what should be the retention policy. */
export interface BackupSchedule {
  /** How often the backup should be executed (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be set to Day) */
  frequencyInterval: number;
  /** The unit of time for how often the backup should be executed (e.g. for weekly backup, this should be set to Day and FrequencyInterval should be set to 7) */
  frequencyUnit: FrequencyUnit;
  /** True if the retention policy should always keep at least one backup in the storage account, regardless how old it is; false otherwise. */
  keepAtLeastOneBackup: boolean;
  /** After how many days backups should be deleted. */
  retentionPeriodInDays: number;
  /** When the schedule should start working. */
  startTime?: Date;
  /**
   * Last time when this schedule was triggered.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastExecutionTime?: Date;
}

/** Database backup settings. */
export interface DatabaseBackupSetting {
  /** Database type (e.g. SqlAzure / MySql). */
  databaseType: DatabaseType;
  name?: string;
  /**
   * Contains a connection string name that is linked to the SiteConfig.ConnectionStrings.
   * This is used during restore with overwrite connection strings options.
   */
  connectionStringName?: string;
  /** Contains a connection string to a database which is being backed up or restored. If the restore should happen to a new database, the database name inside is the new one. */
  connectionString?: string;
}

/** Collection of backup items. */
export interface BackupItemCollection {
  /** Collection of resources. */
  value: BackupItem[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Publishing Credentials Policies entity collection ARM resource. */
export interface PublishingCredentialsPoliciesCollection {
  /** Collection of resources. */
  value: CsmPublishingCredentialsPoliciesEntity[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of site configurations. */
export interface SiteConfigResourceCollection {
  /** Collection of resources. */
  value: SiteConfigResource[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** The configuration settings of the platform of App Service Authentication/Authorization. */
export interface AuthPlatform {
  /** <code>true</code> if the Authentication / Authorization feature is enabled for the current app; otherwise, <code>false</code>. */
  enabled?: boolean;
  /**
   * The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
   * The setting in this value can control the behavior of certain features in the Authentication / Authorization module.
   */
  runtimeVersion?: string;
  /**
   * The path of the config file containing auth settings if they come from a file.
   * If the path is relative, base will the site's root directory.
   */
  configFilePath?: string;
}

/** The configuration settings that determines the validation flow of users using App Service Authentication/Authorization. */
export interface GlobalValidation {
  /** <code>true</code> if the authentication flow is required any request is made; otherwise, <code>false</code>. */
  requireAuthentication?: boolean;
  /** The action to take when an unauthenticated client attempts to access the app. */
  unauthenticatedClientAction?: UnauthenticatedClientActionV2;
  /**
   * The default authentication provider to use when multiple providers are configured.
   * This setting is only needed if multiple providers are configured and the unauthenticated client
   * action is set to "RedirectToLoginPage".
   */
  redirectToProvider?: string;
  /** The paths for which unauthenticated flow would not be redirected to the login page. */
  excludedPaths?: string[];
}

/** The configuration settings of each of the identity providers used to configure App Service Authentication/Authorization. */
export interface IdentityProviders {
  /** The configuration settings of the Azure Active directory provider. */
  azureActiveDirectory?: AzureActiveDirectory;
  /** The configuration settings of the Facebook provider. */
  facebook?: Facebook;
  /** The configuration settings of the GitHub provider. */
  gitHub?: GitHub;
  /** The configuration settings of the Google provider. */
  google?: Google;
  /** The configuration settings of the legacy Microsoft Account provider. */
  legacyMicrosoftAccount?: LegacyMicrosoftAccount;
  /** The configuration settings of the Twitter provider. */
  twitter?: Twitter;
  /** The configuration settings of the Apple provider. */
  apple?: Apple;
  /** The configuration settings of the Azure Static Web Apps provider. */
  azureStaticWebApps?: AzureStaticWebApps;
  /**
   * The map of the name of the alias of each custom Open ID Connect provider to the
   * configuration settings of the custom Open ID Connect provider.
   */
  customOpenIdConnectProviders?: {
    [propertyName: string]: CustomOpenIdConnectProvider;
  };
}

/** The configuration settings of the Azure Active directory provider. */
export interface AzureActiveDirectory {
  /** <code>false</code> if the Azure Active Directory provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the Azure Active Directory app registration. */
  registration?: AzureActiveDirectoryRegistration;
  /** The configuration settings of the Azure Active Directory login flow. */
  login?: AzureActiveDirectoryLogin;
  /** The configuration settings of the Azure Active Directory token validation flow. */
  validation?: AzureActiveDirectoryValidation;
  /**
   * Gets a value indicating whether the Azure AD configuration was auto-provisioned using 1st party tooling.
   * This is an internal flag primarily intended to support the Azure Management Portal. Users should not
   * read or write to this property.
   */
  isAutoProvisioned?: boolean;
}

/** The configuration settings of the Azure Active Directory app registration. */
export interface AzureActiveDirectoryRegistration {
  /**
   * The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
   * When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://login.microsoftonline.com/v2.0/{tenant-guid}/.
   * This URI is a case-sensitive identifier for the token issuer.
   * More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
   */
  openIdIssuer?: string;
  /**
   * The Client ID of this relying party application, known as the client_id.
   * This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
   * other 3rd party OpenID Connect providers.
   * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
   */
  clientId?: string;
  /** The app setting name that contains the client secret of the relying party application. */
  clientSecretSettingName?: string;
  /**
   * An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
   * a replacement for the Client Secret. It is also optional.
   */
  clientSecretCertificateThumbprint?: string;
  /**
   * An alternative to the client secret thumbprint, that is the subject alternative name of a certificate used for signing purposes. This property acts as
   * a replacement for the Client Secret Certificate Thumbprint. It is also optional.
   */
  clientSecretCertificateSubjectAlternativeName?: string;
  /**
   * An alternative to the client secret thumbprint, that is the issuer of a certificate used for signing purposes. This property acts as
   * a replacement for the Client Secret Certificate Thumbprint. It is also optional.
   */
  clientSecretCertificateIssuer?: string;
}

/** The configuration settings of the Azure Active Directory login flow. */
export interface AzureActiveDirectoryLogin {
  /**
   * Login parameters to send to the OpenID Connect authorization endpoint when
   * a user logs in. Each parameter must be in the form "key=value".
   */
  loginParameters?: string[];
  /** <code>true</code> if the www-authenticate provider should be omitted from the request; otherwise, <code>false</code>. */
  disableWWWAuthenticate?: boolean;
}

/** The configuration settings of the Azure Active Directory token validation flow. */
export interface AzureActiveDirectoryValidation {
  /** The configuration settings of the checks that should be made while validating the JWT Claims. */
  jwtClaimChecks?: JwtClaimChecks;
  /** The list of audiences that can make successful authentication/authorization requests. */
  allowedAudiences?: string[];
  /** The configuration settings of the default authorization policy. */
  defaultAuthorizationPolicy?: DefaultAuthorizationPolicy;
}

/** The configuration settings of the checks that should be made while validating the JWT Claims. */
export interface JwtClaimChecks {
  /** The list of the allowed groups. */
  allowedGroups?: string[];
  /** The list of the allowed client applications. */
  allowedClientApplications?: string[];
}

/** The configuration settings of the Azure Active Directory default authorization policy. */
export interface DefaultAuthorizationPolicy {
  /** The configuration settings of the Azure Active Directory allowed principals. */
  allowedPrincipals?: AllowedPrincipals;
  /** The configuration settings of the Azure Active Directory allowed applications. */
  allowedApplications?: string[];
}

/** The configuration settings of the Azure Active Directory allowed principals. */
export interface AllowedPrincipals {
  /** The list of the allowed groups. */
  groups?: string[];
  /** The list of the allowed identities. */
  identities?: string[];
}

/** The configuration settings of the Facebook provider. */
export interface Facebook {
  /** <code>false</code> if the Facebook provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the app registration for the Facebook provider. */
  registration?: AppRegistration;
  /** The version of the Facebook api to be used while logging in. */
  graphApiVersion?: string;
  /** The configuration settings of the login flow. */
  login?: LoginScopes;
}

/** The configuration settings of the app registration for providers that have app ids and app secrets */
export interface AppRegistration {
  /** The App ID of the app used for login. */
  appId?: string;
  /** The app setting name that contains the app secret. */
  appSecretSettingName?: string;
}

/** The configuration settings of the login flow, including the scopes that should be requested. */
export interface LoginScopes {
  /** A list of the scopes that should be requested while authenticating. */
  scopes?: string[];
}

/** The configuration settings of the GitHub provider. */
export interface GitHub {
  /** <code>false</code> if the GitHub provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the app registration for the GitHub provider. */
  registration?: ClientRegistration;
  /** The configuration settings of the login flow. */
  login?: LoginScopes;
}

/** The configuration settings of the app registration for providers that have client ids and client secrets */
export interface ClientRegistration {
  /** The Client ID of the app used for login. */
  clientId?: string;
  /** The app setting name that contains the client secret. */
  clientSecretSettingName?: string;
}

/** The configuration settings of the Google provider. */
export interface Google {
  /** <code>false</code> if the Google provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the app registration for the Google provider. */
  registration?: ClientRegistration;
  /** The configuration settings of the login flow. */
  login?: LoginScopes;
  /** The configuration settings of the Azure Active Directory token validation flow. */
  validation?: AllowedAudiencesValidation;
}

/** The configuration settings of the Allowed Audiences validation flow. */
export interface AllowedAudiencesValidation {
  /** The configuration settings of the allowed list of audiences from which to validate the JWT token. */
  allowedAudiences?: string[];
}

/** The configuration settings of the legacy Microsoft Account provider. */
export interface LegacyMicrosoftAccount {
  /** <code>false</code> if the legacy Microsoft Account provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the app registration for the legacy Microsoft Account provider. */
  registration?: ClientRegistration;
  /** The configuration settings of the login flow. */
  login?: LoginScopes;
  /** The configuration settings of the legacy Microsoft Account provider token validation flow. */
  validation?: AllowedAudiencesValidation;
}

/** The configuration settings of the Twitter provider. */
export interface Twitter {
  /** <code>false</code> if the Twitter provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the app registration for the Twitter provider. */
  registration?: TwitterRegistration;
}

/** The configuration settings of the app registration for the Twitter provider. */
export interface TwitterRegistration {
  /**
   * The OAuth 1.0a consumer key of the Twitter application used for sign-in.
   * This setting is required for enabling Twitter Sign-In.
   * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
   */
  consumerKey?: string;
  /**
   * The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
   * application used for sign-in.
   */
  consumerSecretSettingName?: string;
}

/** The configuration settings of the Apple provider. */
export interface Apple {
  /** <code>false</code> if the Apple provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the Apple registration. */
  registration?: AppleRegistration;
  /** The configuration settings of the login flow. */
  login?: LoginScopes;
}

/** The configuration settings of the registration for the Apple provider */
export interface AppleRegistration {
  /** The Client ID of the app used for login. */
  clientId?: string;
  /** The app setting name that contains the client secret. */
  clientSecretSettingName?: string;
}

/** The configuration settings of the Azure Static Web Apps provider. */
export interface AzureStaticWebApps {
  /** <code>false</code> if the Azure Static Web Apps provider should not be enabled despite the set registration; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the Azure Static Web Apps registration. */
  registration?: AzureStaticWebAppsRegistration;
}

/** The configuration settings of the registration for the Azure Static Web Apps provider */
export interface AzureStaticWebAppsRegistration {
  /** The Client ID of the app used for login. */
  clientId?: string;
}

/** The configuration settings of the custom Open ID Connect provider. */
export interface CustomOpenIdConnectProvider {
  /** <code>false</code> if the custom Open ID provider provider should not be enabled; otherwise, <code>true</code>. */
  enabled?: boolean;
  /** The configuration settings of the app registration for the custom Open ID Connect provider. */
  registration?: OpenIdConnectRegistration;
  /** The configuration settings of the login flow of the custom Open ID Connect provider. */
  login?: OpenIdConnectLogin;
}

/** The configuration settings of the app registration for the custom Open ID Connect provider. */
export interface OpenIdConnectRegistration {
  /** The client id of the custom Open ID Connect provider. */
  clientId?: string;
  /** The authentication credentials of the custom Open ID Connect provider. */
  clientCredential?: OpenIdConnectClientCredential;
  /** The configuration settings of the endpoints used for the custom Open ID Connect provider. */
  openIdConnectConfiguration?: OpenIdConnectConfig;
}

/** The authentication client credentials of the custom Open ID Connect provider. */
export interface OpenIdConnectClientCredential {
  /** The method that should be used to authenticate the user. */
  method?: "ClientSecretPost";
  /** The app setting that contains the client secret for the custom Open ID Connect provider. */
  clientSecretSettingName?: string;
}

/** The configuration settings of the endpoints used for the custom Open ID Connect provider. */
export interface OpenIdConnectConfig {
  /** The endpoint to be used to make an authorization request. */
  authorizationEndpoint?: string;
  /** The endpoint to be used to request a token. */
  tokenEndpoint?: string;
  /** The endpoint that issues the token. */
  issuer?: string;
  /** The endpoint that provides the keys necessary to validate the token. */
  certificationUri?: string;
  /** The endpoint that contains all the configuration endpoints for the provider. */
  wellKnownOpenIdConfiguration?: string;
}

/** The configuration settings of the login flow of the custom Open ID Connect provider. */
export interface OpenIdConnectLogin {
  /** The name of the claim that contains the users name. */
  nameClaimType?: string;
  /** A list of the scopes that should be requested while authenticating. */
  scopes?: string[];
}

/** The configuration settings of the login flow of users using App Service Authentication/Authorization. */
export interface Login {
  /** The routes that specify the endpoints used for login and logout requests. */
  routes?: LoginRoutes;
  /** The configuration settings of the token store. */
  tokenStore?: TokenStore;
  /** <code>true</code> if the fragments from the request are preserved after the login request is made; otherwise, <code>false</code>. */
  preserveUrlFragmentsForLogins?: boolean;
  /**
   * External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
   * This is an advanced setting typically only needed by Windows Store application backends.
   * Note that URLs within the current domain are always implicitly allowed.
   */
  allowedExternalRedirectUrls?: string[];
  /** The configuration settings of the session cookie's expiration. */
  cookieExpiration?: CookieExpiration;
  /** The configuration settings of the nonce used in the login flow. */
  nonce?: Nonce;
}

/** The routes that specify the endpoints used for login and logout requests. */
export interface LoginRoutes {
  /** The endpoint at which a logout request should be made. */
  logoutEndpoint?: string;
}

/** The configuration settings of the token store. */
export interface TokenStore {
  /**
   * <code>true</code> to durably store platform-specific security tokens that are obtained during login flows; otherwise, <code>false</code>.
   *  The default is <code>false</code>.
   */
  enabled?: boolean;
  /**
   * The number of hours after session token expiration that a session token can be used to
   * call the token refresh API. The default is 72 hours.
   */
  tokenRefreshExtensionHours?: number;
  /** The configuration settings of the storage of the tokens if a file system is used. */
  fileSystem?: FileSystemTokenStore;
  /** The configuration settings of the storage of the tokens if blob storage is used. */
  azureBlobStorage?: BlobStorageTokenStore;
}

/** The configuration settings of the storage of the tokens if a file system is used. */
export interface FileSystemTokenStore {
  /** The directory in which the tokens will be stored. */
  directory?: string;
}

/** The configuration settings of the storage of the tokens if blob storage is used. */
export interface BlobStorageTokenStore {
  /** The name of the app setting containing the SAS URL of the blob storage containing the tokens. */
  sasUrlSettingName?: string;
}

/** The configuration settings of the session cookie's expiration. */
export interface CookieExpiration {
  /** The convention used when determining the session cookie's expiration. */
  convention?: CookieExpirationConvention;
  /** The time after the request is made when the session cookie should expire. */
  timeToExpiration?: string;
}

/** The configuration settings of the nonce used in the login flow. */
export interface Nonce {
  /** <code>false</code> if the nonce should not be validated while completing the login flow; otherwise, <code>true</code>. */
  validateNonce?: boolean;
  /** The time after the request is made when the nonce should expire. */
  nonceExpirationInterval?: string;
}

/** The configuration settings of the HTTP requests for authentication and authorization requests made against App Service Authentication/Authorization. */
export interface HttpSettings {
  /** <code>false</code> if the authentication/authorization responses not having the HTTPS scheme are permissible; otherwise, <code>true</code>. */
  requireHttps?: boolean;
  /** The configuration settings of the paths HTTP requests. */
  routes?: HttpSettingsRoutes;
  /** The configuration settings of a forward proxy used to make the requests. */
  forwardProxy?: ForwardProxy;
}

/** The configuration settings of the paths HTTP requests. */
export interface HttpSettingsRoutes {
  /** The prefix that should precede all the authentication/authorization paths. */
  apiPrefix?: string;
}

/** The configuration settings of a forward proxy used to make the requests. */
export interface ForwardProxy {
  /** The convention used to determine the url of the request made. */
  convention?: ForwardProxyConvention;
  /** The name of the header containing the host of the request. */
  customHostHeaderName?: string;
  /** The name of the header containing the scheme of the request. */
  customProtoHeaderName?: string;
}

export interface ApiKVReferenceCollection {
  /** Collection of resources. */
  value: ApiKVReference[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Database connection string value to type pair. */
export interface ConnStringValueTypePair {
  /** Value of pair. */
  value: string;
  /** Type of database. */
  type: ConnectionStringType;
}

/** Application logs configuration. */
export interface ApplicationLogsConfig {
  /** Application logs to file system configuration. */
  fileSystem?: FileSystemApplicationLogsConfig;
  /** Application logs to azure table storage configuration. */
  azureTableStorage?: AzureTableStorageApplicationLogsConfig;
  /** Application logs to blob storage configuration. */
  azureBlobStorage?: AzureBlobStorageApplicationLogsConfig;
}

/** Application logs to file system configuration. */
export interface FileSystemApplicationLogsConfig {
  /** Log level. */
  level?: LogLevel;
}

/** Application logs to Azure table storage configuration. */
export interface AzureTableStorageApplicationLogsConfig {
  /** Log level. */
  level?: LogLevel;
  /** SAS URL to an Azure table with add/query/delete permissions. */
  sasUrl: string;
}

/** Application logs azure blob storage configuration. */
export interface AzureBlobStorageApplicationLogsConfig {
  /** Log level. */
  level?: LogLevel;
  /** SAS url to a azure blob container with read/write/list/delete permissions. */
  sasUrl?: string;
  /**
   * Retention in days.
   * Remove blobs older than X days.
   * 0 or lower means no retention.
   */
  retentionInDays?: number;
}

/** Http logs configuration. */
export interface HttpLogsConfig {
  /** Http logs to file system configuration. */
  fileSystem?: FileSystemHttpLogsConfig;
  /** Http logs to azure blob storage configuration. */
  azureBlobStorage?: AzureBlobStorageHttpLogsConfig;
}

/** Http logs to file system configuration. */
export interface FileSystemHttpLogsConfig {
  /**
   * Maximum size in megabytes that http log files can use.
   * When reached old log files will be removed to make space for new ones.
   * Value can range between 25 and 100.
   */
  retentionInMb?: number;
  /**
   * Retention in days.
   * Remove files older than X days.
   * 0 or lower means no retention.
   */
  retentionInDays?: number;
  /** True if configuration is enabled, false if it is disabled and null if configuration is not set. */
  enabled?: boolean;
}

/** Http logs to azure blob storage configuration. */
export interface AzureBlobStorageHttpLogsConfig {
  /** SAS url to a azure blob container with read/write/list/delete permissions. */
  sasUrl?: string;
  /**
   * Retention in days.
   * Remove blobs older than X days.
   * 0 or lower means no retention.
   */
  retentionInDays?: number;
  /** True if configuration is enabled, false if it is disabled and null if configuration is not set. */
  enabled?: boolean;
}

/** Enabled configuration. */
export interface EnabledConfig {
  /** True if configuration is enabled, false if it is disabled and null if configuration is not set. */
  enabled?: boolean;
}

/** Collection of metadata for the app configuration snapshots that can be restored. */
export interface SiteConfigurationSnapshotInfoCollection {
  /** Collection of resources. */
  value: SiteConfigurationSnapshotInfo[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Kudu continuous web job information elements. */
export interface ContinuousWebJobCollection {
  /** Collection of resources. */
  value: ContinuousWebJob[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Deployment status collection ARM resource. */
export interface CsmDeploymentStatusCollection {
  /** Collection of resources. */
  value: CsmDeploymentStatus[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of app deployments. */
export interface DeploymentCollection {
  /** Collection of resources. */
  value: Deployment[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** MSDeploy log entry */
export interface MSDeployLogEntry {
  /**
   * Timestamp of log entry
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly time?: Date;
  /**
   * Log entry type
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: MSDeployLogEntryType;
  /**
   * Log entry message
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly message?: string;
}

/** Collection of Kudu function information elements. */
export interface FunctionEnvelopeCollection {
  /** Collection of resources. */
  value: FunctionEnvelope[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Function key info. */
export interface KeyInfo {
  /** Key name */
  name?: string;
  /** Key value */
  value?: string;
}

/** Function secrets. */
export interface FunctionSecrets {
  /** Secret key. */
  key?: string;
  /** Trigger URL. */
  triggerUrl?: string;
}

/** Functions host level keys. */
export interface HostKeys {
  /** Secret key. */
  masterKey?: string;
  /** Host level function keys. */
  functionKeys?: { [propertyName: string]: string };
  /** System keys. */
  systemKeys?: { [propertyName: string]: string };
}

/** Collection of hostname bindings. */
export interface HostNameBindingCollection {
  /** Collection of resources. */
  value: HostNameBinding[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of app instances. */
export interface WebAppInstanceStatusCollection {
  /** Collection of resources. */
  value: WebSiteInstanceStatus[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

export interface ContainerInfo {
  currentTimeStamp?: Date;
  previousTimeStamp?: Date;
  currentCpuStats?: ContainerCpuStatistics;
  previousCpuStats?: ContainerCpuStatistics;
  memoryStats?: ContainerMemoryStatistics;
  name?: string;
  id?: string;
  eth0?: ContainerNetworkInterfaceStatistics;
}

export interface ContainerCpuStatistics {
  cpuUsage?: ContainerCpuUsage;
  systemCpuUsage?: number;
  onlineCpuCount?: number;
  throttlingData?: ContainerThrottlingData;
}

export interface ContainerCpuUsage {
  totalUsage?: number;
  perCpuUsage?: number[];
  kernelModeUsage?: number;
  userModeUsage?: number;
}

export interface ContainerThrottlingData {
  periods?: number;
  throttledPeriods?: number;
  throttledTime?: number;
}

export interface ContainerMemoryStatistics {
  usage?: number;
  maxUsage?: number;
  limit?: number;
}

export interface ContainerNetworkInterfaceStatistics {
  rxBytes?: number;
  rxPackets?: number;
  rxErrors?: number;
  rxDropped?: number;
  txBytes?: number;
  txPackets?: number;
  txErrors?: number;
  txDropped?: number;
}

/** Collection of Kudu process information elements. */
export interface ProcessInfoCollection {
  /** Collection of resources. */
  value: ProcessInfo[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Kudu thread information elements. */
export interface ProcessModuleInfoCollection {
  /** Collection of resources. */
  value: ProcessModuleInfo[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Kudu thread information elements. */
export interface ProcessThreadInfoCollection {
  /** Collection of resources. */
  value: ProcessThreadInfo[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Represents whether or not an app is cloneable. */
export interface SiteCloneability {
  /** Name of app. */
  result?: CloneAbilityResult;
  /** List of features enabled on app that prevent cloning. */
  blockingFeatures?: SiteCloneabilityCriterion[];
  /**
   * List of features enabled on app that are non-blocking but cannot be cloned. The app can still be cloned
   * but the features in this list will not be set up on cloned app.
   */
  unsupportedFeatures?: SiteCloneabilityCriterion[];
  /** List of blocking application characteristics. */
  blockingCharacteristics?: SiteCloneabilityCriterion[];
}

/** An app cloneability criterion. */
export interface SiteCloneabilityCriterion {
  /** Name of criterion. */
  name?: string;
  /** Description of criterion. */
  description?: string;
}

/** Network trace */
export interface NetworkTrace {
  /** Local file path for the captured network trace file. */
  path?: string;
  /** Current status of the network trace operation, same as Operation.Status (InProgress/Succeeded/Failed). */
  status?: string;
  /** Detailed message of a network trace operation, e.g. error message in case of failure. */
  message?: string;
}

/** Collection of performance monitor counters. */
export interface PerfMonCounterCollection {
  /** Collection of resources. */
  value: PerfMonResponse[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Performance monitor API response. */
export interface PerfMonResponse {
  /** The response code. */
  code?: string;
  /** The message. */
  message?: string;
  /** The performance monitor counters. */
  data?: PerfMonSet;
}

/** Metric information. */
export interface PerfMonSet {
  /** Unique key name of the counter. */
  name?: string;
  /** Start time of the period. */
  startTime?: Date;
  /** End time of the period. */
  endTime?: Date;
  /** Presented time grain. */
  timeGrain?: string;
  /** Collection of workers that are active during this time. */
  values?: PerfMonSample[];
}

/** Performance monitor sample in a set. */
export interface PerfMonSample {
  /** Point in time for which counter was measured. */
  time?: Date;
  /** Name of the server on which the measurement is made. */
  instanceName?: string;
  /** Value of counter at a certain time. */
  value?: number;
}

/** Description of a Virtual Network that is useable for private site access. */
export interface PrivateAccessVirtualNetwork {
  /** The name of the Virtual Network. */
  name?: string;
  /** The key (ID) of the Virtual Network. */
  key?: number;
  /** The ARM uri of the Virtual Network */
  resourceId?: string;
  /** A List of subnets that access is allowed to on this Virtual Network. An empty array (but not null) is interpreted to mean that all subnets are allowed within this Virtual Network. */
  subnets?: PrivateAccessSubnet[];
}

/** Description of a Virtual Network subnet that is useable for private site access. */
export interface PrivateAccessSubnet {
  /** The name of the subnet. */
  name?: string;
  /** The key (ID) of the subnet. */
  key?: number;
}

/** Collection of public certificates */
export interface PublicCertificateCollection {
  /** Collection of resources. */
  value: PublicCertificate[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Publishing options for requested profile. */
export interface CsmPublishingProfileOptions {
  /**
   * Name of the format. Valid values are:
   * FileZilla3
   * WebDeploy -- default
   * Ftp
   */
  format?: PublishingProfileFormat;
  /** Include the DisasterRecover endpoint if true */
  includeDisasterRecoveryEndpoints?: boolean;
}

/** Specifies the web app that snapshot contents will be retrieved from. */
export interface SnapshotRecoverySource {
  /** Geographical location of the source web app, e.g. SouthEastAsia, SouthCentralUS */
  location?: string;
  /**
   * ARM resource ID of the source app.
   * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName} for production slots and
   * /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName} for other slots.
   */
  id?: string;
}

/** Collection of Kudu site extension information elements. */
export interface SiteExtensionInfoCollection {
  /** Collection of resources. */
  value: SiteExtensionInfo[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of slot differences. */
export interface SlotDifferenceCollection {
  /** Collection of resources. */
  value: SlotDifference[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of snapshots which can be used to revert an app to a previous time. */
export interface SnapshotCollection {
  /** Collection of resources. */
  value: Snapshot[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** The GitHub action configuration. */
export interface GitHubActionConfiguration {
  /** GitHub Action code configuration. */
  codeConfiguration?: GitHubActionCodeConfiguration;
  /** GitHub Action container configuration. */
  containerConfiguration?: GitHubActionContainerConfiguration;
  /** This will help determine the workflow configuration to select. */
  isLinux?: boolean;
  /** Workflow option to determine whether the workflow file should be generated and written to the repository. */
  generateWorkflowFile?: boolean;
}

/** The GitHub action code configuration. */
export interface GitHubActionCodeConfiguration {
  /** Runtime stack is used to determine the workflow file content for code base apps. */
  runtimeStack?: string;
  /** Runtime version is used to determine what build version to set in the workflow file. */
  runtimeVersion?: string;
}

/** The GitHub action container configuration. */
export interface GitHubActionContainerConfiguration {
  /** The server URL for the container registry where the build will be hosted. */
  serverUrl?: string;
  /** The image name for the build. */
  imageName?: string;
  /** The username used to upload the image to the container registry. */
  username?: string;
  /** The password used to upload the image to the container registry. */
  password?: string;
}

/** Collection of Kudu continuous web job information elements. */
export interface TriggeredWebJobCollection {
  /** Collection of resources. */
  value: TriggeredWebJob[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Triggered Web Job Run Information. */
export interface TriggeredJobRun {
  /** Job ID. */
  webJobId?: string;
  /** Job name. */
  webJobName?: string;
  /** Job status. */
  status?: TriggeredWebJobStatus;
  /** Start time. */
  startTime?: Date;
  /** End time. */
  endTime?: Date;
  /** Job duration. */
  duration?: string;
  /** Output URL. */
  outputUrl?: string;
  /** Error URL. */
  errorUrl?: string;
  /** Job URL. */
  url?: string;
  /** Job name. */
  jobName?: string;
  /** Job trigger. */
  trigger?: string;
}

/** Collection of Kudu continuous web job information elements. */
export interface TriggeredJobHistoryCollection {
  /** Collection of resources. */
  value: TriggeredJobHistory[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Collection of Kudu web job information elements. */
export interface WebJobCollection {
  /** Collection of resources. */
  value: WebJob[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** The workflow filter. */
export interface WorkflowArtifacts {
  /** Application settings of the workflow. */
  appSettings?: Record<string, unknown>;
  /** Files of the app. */
  files?: { [propertyName: string]: Record<string, unknown> };
  /** Files of the app to delete. */
  filesToDelete?: string[];
}

/** Collection of Kudu workflow information elements. */
export interface WorkflowEnvelopeCollection {
  /** Collection of resources. */
  value: WorkflowEnvelope[];
  /**
   * Link to next page of resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextLink?: string;
}

/** Workflow properties definition. */
export interface WorkflowEnvelope {
  /**
   * The resource id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly id?: string;
  /**
   * Gets the resource name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the resource type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /** The resource kind. */
  kind?: string;
  /** The resource location. */
  location?: string;
  /** Additional workflow properties. */
  properties?: WorkflowEnvelopeProperties;
}

/** Additional workflow properties. */
export interface WorkflowEnvelopeProperties {
  /** Gets or sets the files. */
  files?: { [propertyName: string]: Record<string, unknown> };
  /** Gets or sets the state of the workflow. */
  flowState?: WorkflowState;
  /** Gets or sets workflow health. */
  health?: WorkflowHealth;
}

/** Represents the workflow health. */
export interface WorkflowHealth {
  /** Gets or sets the workflow health state. */
  state: WorkflowHealthState;
  /** Gets or sets the workflow error. */
  error?: ErrorEntity;
}

/** The access key regenerate action content. */
export interface RegenerateActionParameter {
  /** The key type. */
  keyType?: KeyType;
}

/** Error response indicates Logic service is not able to process the incoming request. The error property contains the error details. */
export interface ErrorResponse {
  /** The error properties. */
  error?: ErrorProperties;
}

/** Error properties indicate why the Logic service was not able to process the incoming request. The reason is provided in the error message. */
export interface ErrorProperties {
  /** Error code. */
  code?: string;
  /** Error message indicating why the operation failed. */
  message?: string;
}

/** The list of workflow runs. */
export interface WorkflowRunListResult {
  /** A list of workflow runs. */
  value?: WorkflowRun[];
  /** The URL to get the next set of results. */
  nextLink?: string;
}

/** The correlation property. */
export interface Correlation {
  /** The client tracking id. */
  clientTrackingId?: string;
}

/** The resource reference. */
export interface ResourceReference {
  /** The resource id. */
  id?: string;
  /**
   * Gets the resource name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the resource type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
}

/** The workflow run trigger. */
export interface WorkflowRunTrigger {
  /**
   * Gets the name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the inputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputs?: Record<string, unknown>;
  /**
   * Gets the link to inputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputsLink?: ContentLink;
  /**
   * Gets the outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputs?: Record<string, unknown>;
  /**
   * Gets the link to outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputsLink?: ContentLink;
  /**
   * Gets the scheduled time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly scheduledTime?: Date;
  /**
   * Gets the start time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly startTime?: Date;
  /**
   * Gets the end time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endTime?: Date;
  /**
   * Gets the tracking id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackingId?: string;
  /** The run correlation. */
  correlation?: Correlation;
  /**
   * Gets the code.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly code?: string;
  /**
   * Gets the status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: WorkflowStatus;
  /**
   * Gets the error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly error?: Record<string, unknown>;
  /**
   * Gets the tracked properties.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackedProperties?: Record<string, unknown>;
}

/** The content link. */
export interface ContentLink {
  /** The content link URI. */
  uri?: string;
  /**
   * The content version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contentVersion?: string;
  /**
   * The content size.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contentSize?: number;
  /**
   * The content hash.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contentHash?: ContentHash;
  /**
   * The metadata.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly metadata?: Record<string, unknown>;
}

/** The content hash. */
export interface ContentHash {
  /** The algorithm of the content hash. */
  algorithm?: string;
  /** The value of the content hash. */
  value?: string;
}

/** The workflow parameters. */
export interface WorkflowParameter {
  /** The type. */
  type?: ParameterType;
  /** The value. */
  value?: Record<string, unknown>;
  /** The metadata. */
  metadata?: Record<string, unknown>;
  /** The description. */
  description?: string;
}

/** The sub resource type. */
export interface SubResource {
  /**
   * The resource id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly id?: string;
}

/** The list of workflow run actions. */
export interface WorkflowRunActionListResult {
  /** A list of workflow run actions. */
  value?: WorkflowRunAction[];
  /** The URL to get the next set of results. */
  nextLink?: string;
}

/** The correlation properties. */
export interface RunCorrelation {
  /** The client tracking identifier. */
  clientTrackingId?: string;
  /** The client keywords. */
  clientKeywords?: string[];
}

/** The retry history. */
export interface RetryHistory {
  /** Gets the start time. */
  startTime?: Date;
  /** Gets the end time. */
  endTime?: Date;
  /** Gets the status code. */
  code?: string;
  /** Gets the client request Id. */
  clientRequestId?: string;
  /** Gets the service request Id. */
  serviceRequestId?: string;
  /** Gets the error response. */
  error?: ErrorResponse;
}

/** The expression traces. */
export interface ExpressionTraces {
  /** Anything */
  value?: any;
  inputs?: ExpressionRoot[];
  /** The link used to get the next page of recommendations. */
  nextLink?: string;
}

/** The expression. */
export interface Expression {
  /** The text. */
  text?: string;
  /** Anything */
  value?: any;
  /** The sub expressions. */
  subexpressions?: Expression[];
  /** The azure resource error info. */
  error?: AzureResourceErrorInfo;
}

/** The error info. */
export interface ErrorInfo {
  /** The error code. */
  code: string;
}

/** A collection of workflow run action repetitions. */
export interface WorkflowRunActionRepetitionDefinitionCollection {
  /** The link used to get the next page of recommendations. */
  nextLink?: string;
  value?: WorkflowRunActionRepetitionDefinition[];
}

/** The workflow run action repetition index. */
export interface RepetitionIndex {
  /** The scope. */
  scopeName?: string;
  /** The index. */
  itemIndex: number;
}

/** The run operation result properties. */
export interface OperationResultProperties {
  /** The start time of the workflow scope repetition. */
  startTime?: Date;
  /** The end time of the workflow scope repetition. */
  endTime?: Date;
  /** The correlation properties. */
  correlation?: RunActionCorrelation;
  /** The status of the workflow scope repetition. */
  status?: WorkflowStatus;
  /** The workflow scope repetition code. */
  code?: string;
  /** Anything */
  error?: any;
}

/** The base resource type. */
export interface WorkflowResource {
  /**
   * The resource id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly id?: string;
  /**
   * Gets the resource name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the resource type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /** The resource location. */
  location?: string;
  /** The resource tags. */
  tags?: { [propertyName: string]: string };
}

/** The list of workflow request histories. */
export interface RequestHistoryListResult {
  /** A list of workflow request histories. */
  value?: RequestHistory[];
  /** The URL to get the next set of results. */
  nextLink?: string;
}

/** The request history. */
export interface RequestHistoryProperties {
  /** The time the request started. */
  startTime?: Date;
  /** The time the request ended. */
  endTime?: Date;
  /** The request. */
  request?: Request;
  /** The response. */
  response?: Response;
}

/** A request. */
export interface Request {
  /** A list of all the headers attached to the request. */
  headers?: Record<string, unknown>;
  /** The destination for the request. */
  uri?: string;
  /** The HTTP method used for the request. */
  method?: string;
}

/** A response. */
export interface Response {
  /** A list of all the headers attached to the response. */
  headers?: Record<string, unknown>;
  /** The status code of the response. */
  statusCode?: number;
  /** Details on the location of the body content. */
  bodyLink?: ContentLink;
}

/** The list of workflow triggers. */
export interface WorkflowTriggerListResult {
  /** A list of workflow triggers. */
  value?: WorkflowTrigger[];
  /** The URL to get the next set of results. */
  nextLink?: string;
}

/** The workflow trigger recurrence. */
export interface WorkflowTriggerRecurrence {
  /** The frequency. */
  frequency?: RecurrenceFrequency;
  /** The interval. */
  interval?: number;
  /** The start time. */
  startTime?: string;
  /** The end time. */
  endTime?: string;
  /** The time zone. */
  timeZone?: string;
  /** The recurrence schedule. */
  schedule?: RecurrenceSchedule;
}

/** The recurrence schedule. */
export interface RecurrenceSchedule {
  /** The minutes. */
  minutes?: number[];
  /** The hours. */
  hours?: number[];
  /** The days of the week. */
  weekDays?: DaysOfWeek[];
  /** The month days. */
  monthDays?: number[];
  /** The monthly occurrences. */
  monthlyOccurrences?: RecurrenceScheduleOccurrence[];
}

/** The recurrence schedule occurrence. */
export interface RecurrenceScheduleOccurrence {
  /** The day of the week. */
  day?: DayOfWeek;
  /** The occurrence. */
  occurrence?: number;
}

/** The list of workflow trigger histories. */
export interface WorkflowTriggerHistoryListResult {
  /** A list of workflow trigger histories. */
  value?: WorkflowTriggerHistory[];
  /** The URL to get the next set of results. */
  nextLink?: string;
}

/** The workflow trigger callback URL. */
export interface WorkflowTriggerCallbackUrl {
  /**
   * Gets the workflow trigger callback URL.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
  /**
   * Gets the workflow trigger callback URL HTTP method.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly method?: string;
  /**
   * Gets the workflow trigger callback URL base path.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly basePath?: string;
  /**
   * Gets the workflow trigger callback URL relative path.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly relativePath?: string;
  /** Gets the workflow trigger callback URL relative path parameters. */
  relativePathParameters?: string[];
  /** Gets the workflow trigger callback URL query parameters. */
  queries?: WorkflowTriggerListCallbackUrlQueries;
}

/** Gets the workflow trigger callback URL query parameters. */
export interface WorkflowTriggerListCallbackUrlQueries {
  /** The api version. */
  apiVersion?: string;
  /** The SAS permissions. */
  sp?: string;
  /** The SAS version. */
  sv?: string;
  /** The SAS signature. */
  sig?: string;
  /** The SAS timestamp. */
  se?: string;
}

/** The JSON schema. */
export interface JsonSchema {
  /** The JSON title. */
  title?: string;
  /** The JSON content. */
  content?: string;
}

/** The endpoints configuration. */
export interface FlowEndpointsConfiguration {
  /** The workflow endpoints. */
  workflow?: FlowEndpoints;
  /** The connector endpoints. */
  connector?: FlowEndpoints;
}

/** The flow endpoints configuration. */
export interface FlowEndpoints {
  /** The outgoing ip address. */
  outgoingIpAddresses?: IpAddress[];
  /** The access endpoint ip address. */
  accessEndpointIpAddresses?: IpAddress[];
}

/** The ip address. */
export interface IpAddress {
  /** The address. */
  address?: string;
}

/** The access control configuration. */
export interface FlowAccessControlConfiguration {
  /** The access control configuration for invoking workflow triggers. */
  triggers?: FlowAccessControlConfigurationPolicy;
  /** The access control configuration for accessing workflow run contents. */
  contents?: FlowAccessControlConfigurationPolicy;
  /** The access control configuration for workflow actions. */
  actions?: FlowAccessControlConfigurationPolicy;
  /** The access control configuration for workflow management. */
  workflowManagement?: FlowAccessControlConfigurationPolicy;
}

/** The access control configuration policy. */
export interface FlowAccessControlConfigurationPolicy {
  /** The allowed caller IP address ranges. */
  allowedCallerIpAddresses?: IpAddressRange[];
  /** The authentication policies for workflow. */
  openAuthenticationPolicies?: OpenAuthenticationAccessPolicies;
}

/** The ip address range. */
export interface IpAddressRange {
  /** The IP address range. */
  addressRange?: string;
}

/** AuthenticationPolicy of type Open. */
export interface OpenAuthenticationAccessPolicies {
  /** Open authentication policies. */
  policies?: { [propertyName: string]: OpenAuthenticationAccessPolicy };
}

/** Open authentication access policy defined by user. */
export interface OpenAuthenticationAccessPolicy {
  /** Type of provider for OAuth. */
  type?: OpenAuthenticationProviderType;
  /** The access policy claims. */
  claims?: OpenAuthenticationPolicyClaim[];
}

/** Open authentication policy claim. */
export interface OpenAuthenticationPolicyClaim {
  /** The name of the claim. */
  name?: string;
  /** The value of the claim. */
  value?: string;
}

/** The sku type. */
export interface WorkflowSku {
  /** The name. */
  name: WorkflowSkuName;
  /** The reference to plan. */
  plan?: ResourceReference;
}

/** The list of workflow versions. */
export interface WorkflowVersionListResult {
  /** A list of workflow versions. */
  value?: WorkflowVersion[];
  /** The URL to get the next set of results. */
  nextLink?: string;
}

/** Github access token for Appservice CLI github integration. */
export interface AppserviceGithubToken {
  /** Github access token for Appservice CLI github integration */
  accessToken?: string;
  /** Scope of the github access token */
  scope?: string;
  /** token type */
  tokenType?: string;
  /** True if valid github token received, False otherwise */
  gotToken?: boolean;
  /** Error message if unable to get token */
  errorMessage?: string;
}

/** Appservice Github token request content. */
export interface AppserviceGithubTokenRequest {
  /** Code string to exchange for Github Access token */
  code: string;
  /** State string used for verification. */
  state: string;
}

/** The workflow filter. */
export interface WorkflowFilter {
  /** The state of workflows. */
  state?: WorkflowState;
}

/** The list of workflows. */
export interface WorkflowListResult {
  /** The list of workflows. */
  value?: Workflow[];
  /** The URL to get the next set of results. */
  nextLink?: string;
}

/** The workflow run action filter. */
export interface WorkflowRunActionFilter {
  /** The status of workflow run action. */
  status?: WorkflowStatus;
}

/** The workflow run filter. */
export interface WorkflowRunFilter {
  /** The status of workflow run. */
  status?: WorkflowStatus;
}

/** The workflow trigger filter. */
export interface WorkflowTriggerFilter {
  /** The state of workflow trigger. */
  state?: WorkflowState;
}

/** The workflow trigger history filter. */
export interface WorkflowTriggerHistoryFilter {
  /** The status of workflow trigger history. */
  status?: WorkflowStatus;
}

/** SSL certificate purchase order. */
export interface AppServiceCertificateOrder extends Resource {
  /** State of the Key Vault secret. */
  certificates?: { [propertyName: string]: AppServiceCertificate };
  /** Certificate distinguished name. */
  distinguishedName?: string;
  /**
   * Domain verification token.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly domainVerificationToken?: string;
  /** Duration in years (must be 1). */
  validityInYears?: number;
  /** Certificate key size. */
  keySize?: number;
  /** Certificate product type. */
  productType?: CertificateProductType;
  /** <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>. */
  autoRenew?: boolean;
  /**
   * Status of certificate order.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /**
   * Current order status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: CertificateOrderStatus;
  /**
   * Signed certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly signedCertificate?: CertificateDetails;
  /** Last CSR that was created for this order. */
  csr?: string;
  /**
   * Intermediate certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly intermediate?: CertificateDetails;
  /**
   * Root certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly root?: CertificateDetails;
  /**
   * Current serial number of the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly serialNumber?: string;
  /**
   * Certificate last issuance time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastCertificateIssuanceTime?: Date;
  /**
   * Certificate expiration time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly expirationTime?: Date;
  /**
   * <code>true</code> if private key is external; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isPrivateKeyExternal?: boolean;
  /**
   * Reasons why App Service Certificate is not renewable at the current moment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly appServiceCertificateNotRenewableReasons?: ResourceNotRenewableReason[];
  /**
   * Time stamp when the certificate would be auto renewed next
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextAutoRenewalTimeStamp?: Date;
  /**
   * Contact info
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contact?: CertificateOrderContact;
}

/** Key Vault container ARM resource for a certificate that is purchased through Azure. */
export interface AppServiceCertificateResource extends Resource {
  /** Key Vault resource Id. */
  keyVaultId?: string;
  /** Key Vault secret name. */
  keyVaultSecretName?: string;
  /**
   * Status of the Key Vault secret.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: KeyVaultSecretStatus;
}

/** Information about a domain. */
export interface Domain extends Resource {
  /** Administrative contact. */
  contactAdmin?: Contact;
  /** Billing contact. */
  contactBilling?: Contact;
  /** Registrant contact. */
  contactRegistrant?: Contact;
  /** Technical contact. */
  contactTech?: Contact;
  /**
   * Domain registration status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly registrationStatus?: DomainStatus;
  /**
   * Domain provisioning state.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /**
   * Name servers.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nameServers?: string[];
  /** <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>. */
  privacy?: boolean;
  /**
   * Domain creation timestamp.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdTime?: Date;
  /**
   * Domain expiration timestamp.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly expirationTime?: Date;
  /**
   * Timestamp when the domain was renewed last time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastRenewedTime?: Date;
  /** <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>. */
  autoRenew?: boolean;
  /**
   * <code>true</code> if Azure can assign this domain to App Service apps; otherwise, <code>false</code>. This value will be <code>true</code> if domain registration status is active and
   *  it is hosted on name servers Azure has programmatic access to.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly readyForDnsRecordManagement?: boolean;
  /**
   * All hostnames derived from the domain and assigned to Azure resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly managedHostNames?: HostName[];
  /** Legal agreement consent. */
  consent?: DomainPurchaseConsent;
  /**
   * Reasons why domain is not renewable.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly domainNotRenewableReasons?: ResourceNotRenewableReason[];
  /** Current DNS type */
  dnsType?: DnsType;
  /** Azure DNS Zone to use */
  dnsZoneId?: string;
  /** Target DNS type (would be used for migration) */
  targetDnsType?: DnsType;
  authCode?: string;
}

/** App Service Environment ARM resource. */
export interface AppServiceEnvironmentResource extends Resource {
  /**
   * Provisioning state of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /**
   * Current status of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: HostingEnvironmentStatus;
  /** Description of the Virtual Network. */
  virtualNetwork?: VirtualNetworkProfile;
  /** Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. */
  internalLoadBalancingMode?: LoadBalancingMode;
  /** Front-end VM size, e.g. "Medium", "Large". */
  multiSize?: string;
  /**
   * Number of front-end instances.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly multiRoleCount?: number;
  /** Number of IP SSL addresses reserved for the App Service Environment. */
  ipsslAddressCount?: number;
  /** DNS suffix of the App Service Environment. */
  dnsSuffix?: string;
  /**
   * Maximum number of VMs in the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maximumNumberOfMachines?: number;
  /** Scale factor for front-ends. */
  frontEndScaleFactor?: number;
  /**
   * <code>true</code> if the App Service Environment is suspended; otherwise, <code>false</code>. The environment can be suspended, e.g. when the management endpoint is no longer available
   *  (most likely because NSG blocked the incoming traffic).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly suspended?: boolean;
  /** Custom settings for changing the behavior of the App Service Environment. */
  clusterSettings?: NameValuePair[];
  /** User added ip ranges to whitelist on ASE db */
  userWhitelistedIpRanges?: string[];
  /**
   * Flag that displays whether an ASE has linux workers or not
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hasLinuxWorkers?: boolean;
  /** Upgrade Preference */
  upgradePreference?: UpgradePreference;
  /** Dedicated Host Count */
  dedicatedHostCount?: number;
  /** Whether or not this App Service Environment is zone-redundant. */
  zoneRedundant?: boolean;
  /** Full view of the custom domain suffix configuration for ASEv3. */
  customDnsSuffixConfiguration?: CustomDnsSuffixConfiguration;
  /** Full view of networking configuration for an ASE. */
  networkingConfiguration?: AseV3NetworkingConfiguration;
  /**
   * Whether an upgrade is available for this App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly upgradeAvailability?: UpgradeAvailability;
}

/** A web app, a mobile app backend, or an API app. */
export interface Site extends Resource {
  /** Managed service identity. */
  identity?: ManagedServiceIdentity;
  /** Extended Location. */
  extendedLocation?: ExtendedLocation;
  /**
   * Current state of the app.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly state?: string;
  /**
   * Hostnames associated with the app.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hostNames?: string[];
  /**
   * Name of the repository site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly repositorySiteName?: string;
  /**
   * State indicating whether the app has exceeded its quota usage. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly usageState?: UsageState;
  /** <code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables the app (takes the app offline). */
  enabled?: boolean;
  /**
   * Enabled hostnames for the app.Hostnames need to be assigned (see HostNames) AND enabled. Otherwise,
   * the app is not served on those hostnames.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly enabledHostNames?: string[];
  /**
   * Management information availability state for the app.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly availabilityState?: SiteAvailabilityState;
  /** Hostname SSL states are used to manage the SSL bindings for app's hostnames. */
  hostNameSslStates?: HostNameSslState[];
  /** Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". */
  serverFarmId?: string;
  /** <code>true</code> if reserved; otherwise, <code>false</code>. */
  reserved?: boolean;
  /** Obsolete: Hyper-V sandbox. */
  isXenon?: boolean;
  /** Hyper-V sandbox. */
  hyperV?: boolean;
  /**
   * Last time the app was modified, in UTC. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastModifiedTimeUtc?: Date;
  /** Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. */
  vnetRouteAllEnabled?: boolean;
  /** To enable pulling image over Virtual Network */
  vnetImagePullEnabled?: boolean;
  /** To enable accessing content over virtual network */
  vnetContentShareEnabled?: boolean;
  /** Configuration of the app. */
  siteConfig?: SiteConfig;
  /** Dapr configuration of the app. */
  daprConfig?: DaprConfig;
  /** Workload profile name for function app to execute on. */
  workloadProfileName?: string;
  /** Function app resource requirements. */
  resourceConfig?: ResourceConfig;
  /**
   * Azure Traffic Manager hostnames associated with the app. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trafficManagerHostNames?: string[];
  /** <code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>. The default is <code>false</code>. */
  scmSiteAlsoStopped?: boolean;
  /**
   * Specifies which deployment slot this app will swap into. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly targetSwapSlot?: string;
  /** App Service Environment to use for the app. */
  hostingEnvironmentProfile?: HostingEnvironmentProfile;
  /** <code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is <code>true</code>. */
  clientAffinityEnabled?: boolean;
  /** <code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise, <code>false</code>. Default is <code>false</code>. */
  clientCertEnabled?: boolean;
  /**
   * This composes with ClientCertEnabled setting.
   * - ClientCertEnabled: false means ClientCert is ignored.
   * - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.
   * - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted.
   */
  clientCertMode?: ClientCertMode;
  /** client certificate authentication comma-separated exclusion paths */
  clientCertExclusionPaths?: string;
  /**
   * <code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>.
   *  If <code>true</code>, the app is only accessible via API management process.
   */
  hostNamesDisabled?: boolean;
  /** Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. */
  customDomainVerificationId?: string;
  /**
   * List of IP addresses that the app uses for outbound connections (e.g. database access). Includes VIPs from tenants that site can be hosted with current settings. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outboundIpAddresses?: string;
  /**
   * List of IP addresses that the app uses for outbound connections (e.g. database access). Includes VIPs from all tenants except dataComponent. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly possibleOutboundIpAddresses?: string;
  /** Size of the function container. */
  containerSize?: number;
  /** Maximum allowed daily memory-time quota (applicable on dynamic apps only). */
  dailyMemoryTimeQuota?: number;
  /**
   * App suspended till in case memory-time quota is exceeded.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly suspendedTill?: Date;
  /**
   * Maximum number of workers.
   * This only applies to Functions container.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maxNumberOfWorkers?: number;
  /** If specified during app creation, the app is cloned from a source app. */
  cloningInfo?: CloningInfo;
  /**
   * Name of the resource group the app belongs to. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceGroup?: string;
  /**
   * <code>true</code> if the app is a default container; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDefaultContainer?: boolean;
  /**
   * Default hostname of the app. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly defaultHostName?: string;
  /**
   * Status of the last deployment slot swap operation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly slotSwapStatus?: SlotSwapStatus;
  /**
   * HttpsOnly: configures a web site to accept only https requests. Issues redirect for
   * http requests
   */
  httpsOnly?: boolean;
  /** Site redundancy mode */
  redundancyMode?: RedundancyMode;
  /**
   * Specifies an operation id if this site has a pending operation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inProgressOperationId?: string;
  /** Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. */
  publicNetworkAccess?: string;
  /** Checks if Customer provided storage account is required */
  storageAccountRequired?: boolean;
  /** Identity to use for Key Vault Reference authentication. */
  keyVaultReferenceIdentity?: string;
  /**
   * Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.
   * This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}
   */
  virtualNetworkSubnetId?: string;
  /** Azure Resource Manager ID of the customer's selected Managed Environment on which to host this app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} */
  managedEnvironmentId?: string;
}

/** App Service plan. */
export interface AppServicePlan extends Resource {
  /** Description of a SKU for a scalable resource. */
  sku?: SkuDescription;
  /** Extended Location. */
  extendedLocation?: ExtendedLocation;
  /** Target worker tier assigned to the App Service plan. */
  workerTierName?: string;
  /**
   * App Service plan status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: StatusOptions;
  /**
   * App Service plan subscription.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly subscription?: string;
  /** Specification for the App Service Environment to use for the App Service plan. */
  hostingEnvironmentProfile?: HostingEnvironmentProfile;
  /**
   * Maximum number of instances that can be assigned to this App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maximumNumberOfWorkers?: number;
  /**
   * The number of instances that are assigned to this App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly numberOfWorkers?: number;
  /**
   * Geographical location for the App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly geoRegion?: string;
  /**
   * If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
   * If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
   */
  perSiteScaling?: boolean;
  /** ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku */
  elasticScaleEnabled?: boolean;
  /** Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan */
  maximumElasticWorkerCount?: number;
  /**
   * Number of apps assigned to this App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly numberOfSites?: number;
  /** If <code>true</code>, this App Service Plan owns spot instances. */
  isSpot?: boolean;
  /** The time when the server farm expires. Valid only if it is a spot server farm. */
  spotExpirationTime?: Date;
  /** The time when the server farm free offer expires. */
  freeOfferExpirationTime?: Date;
  /**
   * Resource group of the App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceGroup?: string;
  /** If Linux app service plan <code>true</code>, <code>false</code> otherwise. */
  reserved?: boolean;
  /** Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise. */
  isXenon?: boolean;
  /** If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise. */
  hyperV?: boolean;
  /** Scaling worker count. */
  targetWorkerCount?: number;
  /** Scaling worker size ID. */
  targetWorkerSizeId?: number;
  /**
   * Provisioning state of the App Service Plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /** Specification for the Kubernetes Environment to use for the App Service plan. */
  kubeEnvironmentProfile?: KubeEnvironmentProfile;
  /**
   * If <code>true</code>, this App Service Plan will perform availability zone balancing.
   * If <code>false</code>, this App Service Plan will not perform availability zone balancing.
   */
  zoneRedundant?: boolean;
}

/** SSL certificate for an app. */
export interface Certificate extends Resource {
  /** Certificate password. */
  password?: string;
  /**
   * Friendly name of the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly friendlyName?: string;
  /**
   * Subject name of the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly subjectName?: string;
  /** Host names the certificate applies to. */
  hostNames?: string[];
  /** Pfx blob. */
  pfxBlob?: Uint8Array;
  /**
   * App name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly siteName?: string;
  /**
   * Self link.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly selfLink?: string;
  /**
   * Certificate issuer.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly issuer?: string;
  /**
   * Certificate issue Date.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly issueDate?: Date;
  /**
   * Certificate expiration date.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly expirationDate?: Date;
  /**
   * Certificate thumbprint.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly thumbprint?: string;
  /**
   * Is the certificate valid?.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly valid?: boolean;
  /**
   * Raw bytes of .cer file
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly cerBlob?: Uint8Array;
  /**
   * Public key hash.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly publicKeyHash?: string;
  /**
   * Specification for the App Service Environment to use for the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hostingEnvironmentProfile?: HostingEnvironmentProfile;
  /** Key Vault Csm resource Id. */
  keyVaultId?: string;
  /** Key Vault secret name. */
  keyVaultSecretName?: string;
  /**
   * Status of the Key Vault secret.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly keyVaultSecretStatus?: KeyVaultSecretStatus;
  /** Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". */
  serverFarmId?: string;
  /** CNAME of the certificate to be issued via free certificate */
  canonicalName?: string;
  /** Method of domain validation for free cert */
  domainValidationMethod?: string;
}

/** Container App. */
export interface ContainerApp extends Resource {
  /**
   * Provisioning state of the Container App.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ContainerAppProvisioningState;
  /** Resource ID of the Container App's KubeEnvironment. */
  kubeEnvironmentId?: string;
  /**
   * Name of the latest revision of the Container App.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly latestRevisionName?: string;
  /**
   * Fully Qualified Domain Name of the latest revision of the Container App.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly latestRevisionFqdn?: string;
  /** Non versioned Container App configuration properties. */
  configuration?: Configuration;
  /** Container App versioned application definition. */
  template?: Template;
}

/** Container App Revision. */
export interface Revision extends Resource {
  /**
   * Timestamp describing when the revision was created
   * by controller
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdTime?: Date;
  /**
   * Fully qualified domain name of the revision
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly fqdn?: string;
  /**
   * Container App Revision Template with all possible settings and the
   * defaults if user did not provide them. The defaults are populated
   * as they were at the creation time
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly template?: Template;
  /**
   * Boolean describing if the Revision is Active
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly active?: boolean;
  /**
   * Number of pods currently running for this revision
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly replicas?: number;
  /**
   * Traffic weight assigned to this revision
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trafficWeight?: number;
  /**
   * Optional Field - Platform Error Message
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningError?: string;
  /**
   * Current health State of the revision
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly healthState?: RevisionHealthState;
  /**
   * Current provisioning State of the revision
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: RevisionProvisioningState;
}

/** A Kubernetes cluster specialized for web workloads by Azure App Service */
export interface KubeEnvironment extends Resource {
  /** Extended Location. */
  extendedLocation?: ExtendedLocation;
  /**
   * Provisioning state of the Kubernetes Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: KubeEnvironmentProvisioningState;
  /**
   * Any errors that occurred during deployment or deployment validation
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly deploymentErrors?: string;
  /** Only visible within Vnet/Subnet */
  internalLoadBalancerEnabled?: boolean;
  /**
   * Default Domain Name for the cluster
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly defaultDomain?: string;
  /** Static IP of the KubeEnvironment */
  staticIp?: string;
  /** Type of Kubernetes Environment. Only supported for Container App Environments with value as Managed */
  environmentType?: string;
  /**
   * Cluster configuration which determines the ARC cluster
   * components types. Eg: Choosing between BuildService kind,
   * FrontEnd Service ArtifactsStorageType etc.
   */
  arcConfiguration?: ArcConfiguration;
  /**
   * Cluster configuration which enables the log daemon to export
   * app logs to a destination. Currently only "log-analytics" is
   * supported
   */
  appLogsConfiguration?: AppLogsConfiguration;
  /** Cluster configuration for Container Apps Environments to configure Dapr Instrumentation Key and VNET Configuration */
  containerAppsConfiguration?: ContainerAppsConfiguration;
  aksResourceID?: string;
}

/** Static Site ARM resource. */
export interface StaticSiteARMResource extends Resource {
  /** Description of a SKU for a scalable resource. */
  sku?: SkuDescription;
  /** Managed service identity. */
  identity?: ManagedServiceIdentity;
  /**
   * The default autogenerated hostname for the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly defaultHostname?: string;
  /** URL for the repository of the static site. */
  repositoryUrl?: string;
  /** The target branch in the repository. */
  branch?: string;
  /**
   * The custom domains associated with this static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly customDomains?: string[];
  /** A user's github repository token. This is used to setup the Github Actions workflow file and API secrets. */
  repositoryToken?: string;
  /** Build properties to configure on the repository. */
  buildProperties?: StaticSiteBuildProperties;
  /**
   * Private endpoint connections
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly privateEndpointConnections?: ResponseMessageEnvelopeRemotePrivateEndpointConnection[];
  /** State indicating whether staging environments are allowed or not allowed for a static web app. */
  stagingEnvironmentPolicy?: StagingEnvironmentPolicy;
  /** <code>false</code> if config file is locked for this static web app; otherwise, <code>true</code>. */
  allowConfigFileUpdates?: boolean;
  /** Template options for generating a new repository. */
  templateProperties?: StaticSiteTemplateOptions;
  /**
   * The content distribution endpoint for the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contentDistributionEndpoint?: string;
  /**
   * Identity to use for Key Vault Reference authentication.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly keyVaultReferenceIdentity?: string;
  /**
   * User provided function apps registered with the static site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly userProvidedFunctionApps?: StaticSiteUserProvidedFunctionApp[];
  /**
   * Backends linked to the static side
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly linkedBackends?: StaticSiteLinkedBackend[];
  /** The provider that submitted the last deployment to the primary environment of the static site. */
  provider?: string;
  /** State indicating the status of the enterprise grade CDN serving traffic to the static web app. */
  enterpriseGradeCdnStatus?: EnterpriseGradeCdnStatus;
  /** State indicating whether public traffic are allowed or not for a static web app. Allowed Values: 'Enabled', 'Disabled' or an empty string. */
  publicNetworkAccess?: string;
  /**
   * Database connections for the static site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly databaseConnections?: DatabaseConnectionOverview[];
}

/** Premier add-on. */
export interface PremierAddOn extends Resource {
  /** Premier add on SKU. */
  sku?: string;
  /** Premier add on Product. */
  product?: string;
  /** Premier add on Vendor. */
  vendor?: string;
  /** Premier add on Marketplace publisher. */
  marketplacePublisher?: string;
  /** Premier add on Marketplace offer. */
  marketplaceOffer?: string;
}

/** ARM resource for a certificate order that is purchased through Azure. */
export interface AppServiceCertificateOrderPatchResource
  extends ProxyOnlyResource {
  /** State of the Key Vault secret. */
  certificates?: { [propertyName: string]: AppServiceCertificate };
  /** Certificate distinguished name. */
  distinguishedName?: string;
  /**
   * Domain verification token.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly domainVerificationToken?: string;
  /** Duration in years (must be 1). */
  validityInYears?: number;
  /** Certificate key size. */
  keySize?: number;
  /** Certificate product type. */
  productType?: CertificateProductType;
  /** <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>. */
  autoRenew?: boolean;
  /**
   * Status of certificate order.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /**
   * Current order status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: CertificateOrderStatus;
  /**
   * Signed certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly signedCertificate?: CertificateDetails;
  /** Last CSR that was created for this order. */
  csr?: string;
  /**
   * Intermediate certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly intermediate?: CertificateDetails;
  /**
   * Root certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly root?: CertificateDetails;
  /**
   * Current serial number of the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly serialNumber?: string;
  /**
   * Certificate last issuance time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastCertificateIssuanceTime?: Date;
  /**
   * Certificate expiration time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly expirationTime?: Date;
  /**
   * <code>true</code> if private key is external; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isPrivateKeyExternal?: boolean;
  /**
   * Reasons why App Service Certificate is not renewable at the current moment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly appServiceCertificateNotRenewableReasons?: ResourceNotRenewableReason[];
  /**
   * Time stamp when the certificate would be auto renewed next
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextAutoRenewalTimeStamp?: Date;
  /**
   * Contact info
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contact?: CertificateOrderContact;
}

/** Key Vault container ARM resource for a certificate that is purchased through Azure. */
export interface AppServiceCertificatePatchResource extends ProxyOnlyResource {
  /** Key Vault resource Id. */
  keyVaultId?: string;
  /** Key Vault secret name. */
  keyVaultSecretName?: string;
  /**
   * Status of the Key Vault secret.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: KeyVaultSecretStatus;
}

/** Class representing certificate reissue request. */
export interface ReissueCertificateOrderRequest extends ProxyOnlyResource {
  /** Certificate Key Size. */
  keySize?: number;
  /** Delay in hours to revoke existing certificate after the new certificate is issued. */
  delayExistingRevokeInHours?: number;
  /** Csr to be used for re-key operation. */
  csr?: string;
  /** Should we change the ASC type (from managed private key to external private key and vice versa). */
  isPrivateKeyExternal?: boolean;
}

/** Class representing certificate renew request. */
export interface RenewCertificateOrderRequest extends ProxyOnlyResource {
  /** Certificate Key Size. */
  keySize?: number;
  /** Csr to be used for re-key operation. */
  csr?: string;
  /** Should we change the ASC type (from managed private key to external private key and vice versa). */
  isPrivateKeyExternal?: boolean;
}

/** Class representing Response from Detector */
export interface DetectorResponse extends ProxyOnlyResource {
  /** metadata for the detector */
  metadata?: DetectorInfo;
  /** Data Set */
  dataset?: DiagnosticData[];
  /** Indicates status of the most severe insight. */
  status?: Status;
  /** Additional configuration for different data providers to be used by the UI */
  dataProvidersMetadata?: DataProviderMetadata[];
  /** Suggested utterances where the detector can be applicable. */
  suggestedUtterances?: QueryUtterancesResults;
}

/** ARM resource for a domain. */
export interface DomainPatchResource extends ProxyOnlyResource {
  /** Administrative contact. */
  contactAdmin?: Contact;
  /** Billing contact. */
  contactBilling?: Contact;
  /** Registrant contact. */
  contactRegistrant?: Contact;
  /** Technical contact. */
  contactTech?: Contact;
  /**
   * Domain registration status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly registrationStatus?: DomainStatus;
  /**
   * Domain provisioning state.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /**
   * Name servers.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nameServers?: string[];
  /** <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>. */
  privacy?: boolean;
  /**
   * Domain creation timestamp.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdTime?: Date;
  /**
   * Domain expiration timestamp.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly expirationTime?: Date;
  /**
   * Timestamp when the domain was renewed last time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastRenewedTime?: Date;
  /** <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>. */
  autoRenew?: boolean;
  /**
   * <code>true</code> if Azure can assign this domain to App Service apps; otherwise, <code>false</code>. This value will be <code>true</code> if domain registration status is active and
   *  it is hosted on name servers Azure has programmatic access to.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly readyForDnsRecordManagement?: boolean;
  /**
   * All hostnames derived from the domain and assigned to Azure resources.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly managedHostNames?: HostName[];
  /** Legal agreement consent. */
  consent?: DomainPurchaseConsent;
  /**
   * Reasons why domain is not renewable.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly domainNotRenewableReasons?: ResourceNotRenewableReason[];
  /** Current DNS type */
  dnsType?: DnsType;
  /** Azure DNS Zone to use */
  dnsZoneId?: string;
  /** Target DNS type (would be used for migration) */
  targetDnsType?: DnsType;
  authCode?: string;
}

/** Domain ownership Identifier. */
export interface DomainOwnershipIdentifier extends ProxyOnlyResource {
  /** Ownership Id. */
  ownershipId?: string;
}

/** A top level domain object. */
export interface TopLevelDomain extends ProxyOnlyResource {
  /** If <code>true</code>, then the top level domain supports domain privacy; otherwise, <code>false</code>. */
  privacy?: boolean;
}

/** Full view of the custom domain suffix configuration for ASEv3. */
export interface CustomDnsSuffixConfiguration extends ProxyOnlyResource {
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly provisioningState?: CustomDnsSuffixProvisioningState;
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly provisioningDetails?: string;
  /** The default custom domain suffix to use for all sites deployed on the ASE. */
  dnsSuffix?: string;
  /** The URL referencing the Azure Key Vault certificate secret that should be used as the default SSL/TLS certificate for sites with the custom domain suffix. */
  certificateUrl?: string;
  /** The user-assigned identity to use for resolving the key vault certificate reference. If not specified, the system-assigned ASE identity will be used if available. */
  keyVaultReferenceIdentity?: string;
}

/** Full view of networking configuration for an ASE. */
export interface AseV3NetworkingConfiguration extends ProxyOnlyResource {
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly windowsOutboundIpAddresses?: string[];
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly linuxOutboundIpAddresses?: string[];
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly externalInboundIpAddresses?: string[];
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly internalInboundIpAddresses?: string[];
  /** Property to enable and disable new private endpoint connection creation on ASE */
  allowNewPrivateEndpointConnections?: boolean;
  /** Property to enable and disable FTP on ASEV3 */
  ftpEnabled?: boolean;
  /** Property to enable and disable Remote Debug on ASEV3 */
  remoteDebugEnabled?: boolean;
  /** Customer provided Inbound IP Address. Only able to be set on Ase create. */
  inboundIpAddressOverride?: string;
}

/** ARM resource for a app service environment. */
export interface AppServiceEnvironmentPatchResource extends ProxyOnlyResource {
  /**
   * Provisioning state of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /**
   * Current status of the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: HostingEnvironmentStatus;
  /** Description of the Virtual Network. */
  virtualNetwork?: VirtualNetworkProfile;
  /** Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. */
  internalLoadBalancingMode?: LoadBalancingMode;
  /** Front-end VM size, e.g. "Medium", "Large". */
  multiSize?: string;
  /**
   * Number of front-end instances.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly multiRoleCount?: number;
  /** Number of IP SSL addresses reserved for the App Service Environment. */
  ipsslAddressCount?: number;
  /** DNS suffix of the App Service Environment. */
  dnsSuffix?: string;
  /**
   * Maximum number of VMs in the App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maximumNumberOfMachines?: number;
  /** Scale factor for front-ends. */
  frontEndScaleFactor?: number;
  /**
   * <code>true</code> if the App Service Environment is suspended; otherwise, <code>false</code>. The environment can be suspended, e.g. when the management endpoint is no longer available
   *  (most likely because NSG blocked the incoming traffic).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly suspended?: boolean;
  /** Custom settings for changing the behavior of the App Service Environment. */
  clusterSettings?: NameValuePair[];
  /** User added ip ranges to whitelist on ASE db */
  userWhitelistedIpRanges?: string[];
  /**
   * Flag that displays whether an ASE has linux workers or not
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hasLinuxWorkers?: boolean;
  /** Upgrade Preference */
  upgradePreference?: UpgradePreference;
  /** Dedicated Host Count */
  dedicatedHostCount?: number;
  /** Whether or not this App Service Environment is zone-redundant. */
  zoneRedundant?: boolean;
  /** Full view of the custom domain suffix configuration for ASEv3. */
  customDnsSuffixConfiguration?: CustomDnsSuffixConfiguration;
  /** Full view of networking configuration for an ASE. */
  networkingConfiguration?: AseV3NetworkingConfiguration;
  /**
   * Whether an upgrade is available for this App Service Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly upgradeAvailability?: UpgradeAvailability;
}

/** Describes main public IP address and any extra virtual IPs. */
export interface AddressResponse extends ProxyOnlyResource {
  /** Main public virtual IP. */
  serviceIpAddress?: string;
  /** Virtual Network internal IP address of the App Service Environment if it is in internal load-balancing mode. */
  internalIpAddress?: string;
  /** IP addresses appearing on outbound connections. */
  outboundIpAddresses?: string[];
  /** Additional virtual IPs. */
  vipMappings?: VirtualIPMapping[];
}

/** Push settings for the App. */
export interface PushSettings extends ProxyOnlyResource {
  /** Gets or sets a flag indicating whether the Push endpoint is enabled. */
  isPushEnabled?: boolean;
  /** Gets or sets a JSON string containing a list of tags that are whitelisted for use by the push registration endpoint. */
  tagWhitelistJson?: string;
  /**
   * Gets or sets a JSON string containing a list of tags that require user authentication to be used in the push registration endpoint.
   * Tags can consist of alphanumeric characters and the following:
   * '_', '@', '#', '.', ':', '-'.
   * Validation should be performed at the PushRequestHandler.
   */
  tagsRequiringAuth?: string;
  /** Gets or sets a JSON string containing a list of dynamic tags that will be evaluated from user claims in the push registration endpoint. */
  dynamicTagsJson?: string;
}

/** Worker pool of an App Service Environment ARM resource. */
export interface WorkerPoolResource extends ProxyOnlyResource {
  /** Description of a SKU for a scalable resource. */
  sku?: SkuDescription;
  /** Worker size ID for referencing this worker pool. */
  workerSizeId?: number;
  /** Shared or dedicated app hosting. */
  computeMode?: ComputeModeOptions;
  /** VM size of the worker pool instances. */
  workerSize?: string;
  /** Number of instances in the worker pool. */
  workerCount?: number;
  /**
   * Names of all instances in the worker pool (read only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly instanceNames?: string[];
}

/** Metadata for the metrics. */
export interface ResourceMetricDefinition extends ProxyOnlyResource {
  /**
   * Unit of the metric.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly unit?: string;
  /**
   * Primary aggregation type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly primaryAggregationType?: string;
  /**
   * List of time grains supported for the metric together with retention period.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly metricAvailabilities?: ResourceMetricAvailability[];
  /**
   * Resource URI.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceUri?: string;
  /**
   * Resource metric definition properties.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly properties?: { [propertyName: string]: string };
}

/** Usage of the quota resource. */
export interface Usage extends ProxyOnlyResource {
  /**
   * Friendly name shown in the UI.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayName?: string;
  /**
   * Name of the quota resource.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceName?: string;
  /**
   * Units of measurement for the quota resource.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly unit?: string;
  /**
   * The current value of the resource counter.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly currentValue?: number;
  /**
   * The resource limit.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly limit?: number;
  /**
   * Next reset time for the resource counter.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextResetTime?: Date;
  /**
   * Compute mode used for this usage.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly computeMode?: ComputeModeOptions;
  /**
   * Site mode used for this usage.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly siteMode?: string;
}

/** Remote Private Endpoint Connection ARM resource. */
export interface RemotePrivateEndpointConnectionARMResource
  extends ProxyOnlyResource {
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly provisioningState?: string;
  /** PrivateEndpoint of a remote private endpoint connection */
  privateEndpoint?: ArmIdWrapper;
  /** The state of a private link connection */
  privateLinkServiceConnectionState?: PrivateLinkConnectionState;
  /** Private IPAddresses mapped to the remote private endpoint */
  ipAddresses?: string[];
}

/** Private Endpoint Connection Approval ARM resource. */
export interface PrivateLinkConnectionApprovalRequestResource
  extends ProxyOnlyResource {
  /** The state of a private link connection */
  privateLinkServiceConnectionState?: PrivateLinkConnectionState;
}

/** ARM resource for a app service plan. */
export interface AppServicePlanPatchResource extends ProxyOnlyResource {
  /** Target worker tier assigned to the App Service plan. */
  workerTierName?: string;
  /**
   * App Service plan status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: StatusOptions;
  /**
   * App Service plan subscription.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly subscription?: string;
  /** Specification for the App Service Environment to use for the App Service plan. */
  hostingEnvironmentProfile?: HostingEnvironmentProfile;
  /**
   * Maximum number of instances that can be assigned to this App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maximumNumberOfWorkers?: number;
  /**
   * The number of instances that are assigned to this App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly numberOfWorkers?: number;
  /**
   * Geographical location for the App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly geoRegion?: string;
  /**
   * If <code>true</code>, apps assigned to this App Service plan can be scaled independently.
   * If <code>false</code>, apps assigned to this App Service plan will scale to all instances of the plan.
   */
  perSiteScaling?: boolean;
  /** ServerFarm supports ElasticScale. Apps in this plan will scale as if the ServerFarm was ElasticPremium sku */
  elasticScaleEnabled?: boolean;
  /** Maximum number of total workers allowed for this ElasticScaleEnabled App Service Plan */
  maximumElasticWorkerCount?: number;
  /**
   * Number of apps assigned to this App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly numberOfSites?: number;
  /** If <code>true</code>, this App Service Plan owns spot instances. */
  isSpot?: boolean;
  /** The time when the server farm expires. Valid only if it is a spot server farm. */
  spotExpirationTime?: Date;
  /** The time when the server farm free offer expires. */
  freeOfferExpirationTime?: Date;
  /**
   * Resource group of the App Service plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceGroup?: string;
  /** If Linux app service plan <code>true</code>, <code>false</code> otherwise. */
  reserved?: boolean;
  /** Obsolete: If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise. */
  isXenon?: boolean;
  /** If Hyper-V container app service plan <code>true</code>, <code>false</code> otherwise. */
  hyperV?: boolean;
  /** Scaling worker count. */
  targetWorkerCount?: number;
  /** Scaling worker size ID. */
  targetWorkerSizeId?: number;
  /**
   * Provisioning state of the App Service Plan.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: ProvisioningState;
  /** Specification for the Kubernetes Environment to use for the App Service plan. */
  kubeEnvironmentProfile?: KubeEnvironmentProfile;
  /**
   * If <code>true</code>, this App Service Plan will perform availability zone balancing.
   * If <code>false</code>, this App Service Plan will not perform availability zone balancing.
   */
  zoneRedundant?: boolean;
}

/** Hybrid Connection contract. This is used to configure a Hybrid Connection. */
export interface HybridConnection extends ProxyOnlyResource {
  /** The name of the Service Bus namespace. */
  serviceBusNamespace?: string;
  /** The name of the Service Bus relay. */
  relayName?: string;
  /** The ARM URI to the Service Bus relay. */
  relayArmUri?: string;
  /** The hostname of the endpoint. */
  hostname?: string;
  /** The port of the endpoint. */
  port?: number;
  /** The name of the Service Bus key which has Send permissions. This is used to authenticate to Service Bus. */
  sendKeyName?: string;
  /**
   * The value of the Service Bus key. This is used to authenticate to Service Bus. In ARM this key will not be returned
   * normally, use the POST /listKeys API instead.
   */
  sendKeyValue?: string;
  /** The suffix for the service bus endpoint. By default this is .servicebus.windows.net */
  serviceBusSuffix?: string;
}

/** Hybrid Connection key contract. This has the send key name and value for a Hybrid Connection. */
export interface HybridConnectionKey extends ProxyOnlyResource {
  /**
   * The name of the send key.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly sendKeyName?: string;
  /**
   * The value of the send key.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly sendKeyValue?: string;
}

/** Hybrid Connection limits contract. This is used to return the plan limits of Hybrid Connections. */
export interface HybridConnectionLimits extends ProxyOnlyResource {
  /**
   * The current number of Hybrid Connections.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly current?: number;
  /**
   * The maximum number of Hybrid Connections allowed.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maximum?: number;
}

/** Virtual Network route contract used to pass routing information for a Virtual Network. */
export interface VnetRoute extends ProxyOnlyResource {
  /** The starting address for this route. This may also include a CIDR notation, in which case the end address must not be specified. */
  startAddress?: string;
  /** The ending address for this route. If the start address is specified in CIDR notation, this must be omitted. */
  endAddress?: string;
  /**
   * The type of route this is:
   * DEFAULT - By default, every app has routes to the local address ranges specified by RFC1918
   * INHERITED - Routes inherited from the real Virtual Network routes
   * STATIC - Static route set on the app only
   *
   * These values will be used for syncing an app's routes with those from a Virtual Network.
   */
  routeType?: RouteType;
}

/** Virtual Network information ARM resource. */
export interface VnetInfoResource extends ProxyOnlyResource {
  /** The Virtual Network's resource ID. */
  vnetResourceId?: string;
  /**
   * The client certificate thumbprint.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly certThumbprint?: string;
  /**
   * A certificate file (.cer) blob containing the public key of the private key used to authenticate a
   * Point-To-Site VPN connection.
   */
  certBlob?: string;
  /**
   * The routes that this Virtual Network connection uses.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly routes?: VnetRoute[];
  /**
   * <code>true</code> if a resync is required; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resyncRequired?: boolean;
  /** DNS servers to be used by this Virtual Network. This should be a comma-separated list of IP addresses. */
  dnsServers?: string;
  /** Flag that is used to denote if this is VNET injection */
  isSwift?: boolean;
}

/** The Virtual Network gateway contract. This is used to give the Virtual Network gateway access to the VPN package. */
export interface VnetGateway extends ProxyOnlyResource {
  /** The Virtual Network name. */
  vnetName?: string;
  /** The URI where the VPN package can be downloaded. */
  vpnPackageUri?: string;
}

/** ARM resource for a certificate. */
export interface CertificatePatchResource extends ProxyOnlyResource {
  /** Certificate password. */
  password?: string;
  /**
   * Friendly name of the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly friendlyName?: string;
  /**
   * Subject name of the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly subjectName?: string;
  /** Host names the certificate applies to. */
  hostNames?: string[];
  /** Pfx blob. */
  pfxBlob?: Uint8Array;
  /**
   * App name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly siteName?: string;
  /**
   * Self link.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly selfLink?: string;
  /**
   * Certificate issuer.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly issuer?: string;
  /**
   * Certificate issue Date.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly issueDate?: Date;
  /**
   * Certificate expiration date.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly expirationDate?: Date;
  /**
   * Certificate thumbprint.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly thumbprint?: string;
  /**
   * Is the certificate valid?.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly valid?: boolean;
  /**
   * Raw bytes of .cer file
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly cerBlob?: Uint8Array;
  /**
   * Public key hash.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly publicKeyHash?: string;
  /**
   * Specification for the App Service Environment to use for the certificate.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hostingEnvironmentProfile?: HostingEnvironmentProfile;
  /** Key Vault Csm resource Id. */
  keyVaultId?: string;
  /** Key Vault secret name. */
  keyVaultSecretName?: string;
  /**
   * Status of the Key Vault secret.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly keyVaultSecretStatus?: KeyVaultSecretStatus;
  /** Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". */
  serverFarmId?: string;
  /** CNAME of the certificate to be issued via free certificate */
  canonicalName?: string;
  /** Method of domain validation for free cert */
  domainValidationMethod?: string;
}

/** A deleted app. */
export interface DeletedSite extends ProxyOnlyResource {
  /**
   * Numeric id for the deleted site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly deletedSiteId?: number;
  /**
   * Time in UTC when the app was deleted.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly deletedTimestamp?: string;
  /**
   * Subscription containing the deleted site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly subscription?: string;
  /**
   * ResourceGroup that contained the deleted site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceGroup?: string;
  /**
   * Name of the deleted site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly deletedSiteName?: string;
  /**
   * Slot of the deleted site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly slot?: string;
  /**
   * Kind of site that was deleted
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly kindPropertiesKind?: string;
  /**
   * Geo Region of the deleted site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly geoRegionName?: string;
}

/** Class representing detector definition */
export interface DiagnosticCategory extends ProxyOnlyResource {
  /**
   * Description of the diagnostic category
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly description?: string;
}

/** Definition of Analysis */
export interface AnalysisDefinition extends ProxyOnlyResource {
  /**
   * Description of the Analysis
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly description?: string;
}

/** Class representing a diagnostic analysis done on an application */
export interface DiagnosticAnalysis extends ProxyOnlyResource {
  /** Start time of the period */
  startTime?: Date;
  /** End time of the period */
  endTime?: Date;
  /** List of time periods. */
  abnormalTimePeriods?: AbnormalTimePeriod[];
  /** Data by each detector */
  payload?: AnalysisData[];
  /** Data by each detector for detectors that did not corelate */
  nonCorrelatedDetectors?: DetectorDefinition[];
}

/** ARM resource for a detector definition */
export interface DetectorDefinitionResource extends ProxyOnlyResource {
  /**
   * Display name of the detector
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayName?: string;
  /**
   * Description of the detector
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly description?: string;
  /**
   * Detector Rank
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly rank?: number;
  /**
   * Flag representing whether detector is enabled or not.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isEnabled?: boolean;
}

/** Class representing Response from Diagnostic Detectors */
export interface DiagnosticDetectorResponse extends ProxyOnlyResource {
  /** Start time of the period */
  startTime?: Date;
  /** End time of the period */
  endTime?: Date;
  /** Flag representing Issue was detected. */
  issueDetected?: boolean;
  /** Detector's definition */
  detectorDefinition?: DetectorDefinition;
  /** Metrics provided by the detector */
  metrics?: DiagnosticMetricSet[];
  /** List of Correlated events found by the detector */
  abnormalTimePeriods?: DetectorAbnormalTimePeriod[];
  /** Additional Data that detector wants to send. */
  data?: NameValuePair[][];
  /** Meta Data */
  responseMetaData?: ResponseMetaData;
}

/** A snapshot of an app. */
export interface Snapshot extends ProxyOnlyResource {
  /**
   * The time the snapshot was taken.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly time?: string;
}

/** ARM resource for a KubeEnvironment when patching */
export interface KubeEnvironmentPatchResource extends ProxyOnlyResource {
  /**
   * Provisioning state of the Kubernetes Environment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: KubeEnvironmentProvisioningState;
  /**
   * Any errors that occurred during deployment or deployment validation
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly deploymentErrors?: string;
  /** Only visible within Vnet/Subnet */
  internalLoadBalancerEnabled?: boolean;
  /**
   * Default Domain Name for the cluster
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly defaultDomain?: string;
  /** Static IP of the KubeEnvironment */
  staticIp?: string;
  /**
   * Cluster configuration which determines the ARC cluster
   * components types. Eg: Choosing between BuildService kind,
   * FrontEnd Service ArtifactsStorageType etc.
   */
  arcConfiguration?: ArcConfiguration;
  /**
   * Cluster configuration which enables the log daemon to export
   * app logs to a destination. Currently only "log-analytics" is
   * supported
   */
  appLogsConfiguration?: AppLogsConfiguration;
  /** Cluster configuration for Container Apps Environments to configure Dapr Instrumentation Key and VNET Configuration */
  containerAppsConfiguration?: ContainerAppsConfiguration;
  aksResourceID?: string;
}

/** ARM resource for a ApplicationStack. */
export interface ApplicationStackResource extends ProxyOnlyResource {
  /** Application stack name. */
  namePropertiesName?: string;
  /** Application stack display name. */
  display?: string;
  /** Application stack dependency. */
  dependency?: string;
  /** List of major versions available. */
  majorVersions?: StackMajorVersion[];
  /** List of frameworks associated with application stack. */
  frameworks?: ApplicationStack[];
  /** <code>true</code> if this is the stack is deprecated; otherwise, <code>false</code>. */
  isDeprecated?: ApplicationStack[];
}

/** Function App Stack. */
export interface FunctionAppStack extends ProxyOnlyResource {
  /**
   * Function App stack location.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly location?: string;
  /**
   * Function App stack (display only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayText?: string;
  /**
   * Function App stack name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
  /**
   * List of major versions available.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly majorVersions?: FunctionAppMajorVersion[];
  /**
   * Function App stack preferred OS.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly preferredOs?: StackPreferredOs;
}

/** Web App stack. */
export interface WebAppStack extends ProxyOnlyResource {
  /**
   * Web App stack location.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly location?: string;
  /**
   * Web App stack (display only).
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayText?: string;
  /**
   * Web App stack name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly value?: string;
  /**
   * List of major versions available.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly majorVersions?: WebAppMajorVersion[];
  /**
   * Web App stack preferred OS.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly preferredOs?: StackPreferredOs;
}

/** Represents a recommendation result generated by the recommendation engine. */
export interface Recommendation extends ProxyOnlyResource {
  /** Timestamp when this instance was created. */
  creationTime?: Date;
  /** A GUID value that each recommendation object is associated with. */
  recommendationId?: string;
  /** Full ARM resource ID string that this recommendation object is associated with. */
  resourceId?: string;
  /** Name of a resource type this recommendation applies, e.g. Subscription, ServerFarm, Site. */
  resourceScope?: ResourceScopeType;
  /** Unique name of the rule. */
  ruleName?: string;
  /** UI friendly name of the rule (may not be unique). */
  displayName?: string;
  /** Recommendation text. */
  message?: string;
  /** Level indicating how critical this recommendation can impact. */
  level?: NotificationLevel;
  /** List of channels that this recommendation can apply. */
  channels?: Channels;
  /**
   * The list of category tags that this recommendation belongs to.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly categoryTags?: string[];
  /** Name of action recommended by this object. */
  actionName?: string;
  /** True if this recommendation is still valid (i.e. "actionable"). False if it is invalid. */
  enabled?: number;
  /** The list of states of this recommendation. If it's null then it should be considered "Active". */
  states?: string[];
  /** The beginning time in UTC of a range that the recommendation refers to. */
  startTime?: Date;
  /** The end time in UTC of a range that the recommendation refers to. */
  endTime?: Date;
  /** When to notify this recommendation next in UTC. Null means that this will never be notified anymore. */
  nextNotificationTime?: Date;
  /** Date and time in UTC when this notification expires. */
  notificationExpirationTime?: Date;
  /** Last timestamp in UTC this instance was actually notified. Null means that this recommendation hasn't been notified yet. */
  notifiedTime?: Date;
  /** A metric value measured by the rule. */
  score?: number;
  /** True if this is associated with a dynamically added rule */
  isDynamic?: boolean;
  /** Extension name of the portal if exists. */
  extensionName?: string;
  /** Deep link to a blade on the portal. */
  bladeName?: string;
  /** Forward link to an external document associated with the rule. */
  forwardLink?: string;
}

/** Represents a recommendation rule that the recommendation engine can perform. */
export interface RecommendationRule extends ProxyOnlyResource {
  /** Unique name of the rule. */
  recommendationName?: string;
  /** UI friendly name of the rule. */
  displayName?: string;
  /** Localized name of the rule (Good for UI). */
  message?: string;
  /**
   * Recommendation ID of an associated recommendation object tied to the rule, if exists.
   * If such an object doesn't exist, it is set to null.
   */
  recommendationId?: string;
  /** Localized detailed description of the rule. */
  description?: string;
  /** Name of action that is recommended by this rule in string. */
  actionName?: string;
  /** Level of impact indicating how critical this rule is. */
  level?: NotificationLevel;
  /** List of available channels that this rule applies. */
  channels?: Channels;
  /**
   * The list of category tags that this recommendation rule belongs to.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly categoryTags?: string[];
  /** True if this is associated with a dynamically added rule */
  isDynamic?: boolean;
  /** Extension name of the portal if exists. Applicable to dynamic rule only. */
  extensionName?: string;
  /** Deep link to a blade on the portal. Applicable to dynamic rule only. */
  bladeName?: string;
  /** Forward link to an external document associated with the rule. Applicable to dynamic rule only. */
  forwardLink?: string;
}

/** Used for getting ResourceHealthCheck settings. */
export interface ResourceHealthMetadata extends ProxyOnlyResource {
  /** The category that the resource matches in the RHC Policy File */
  category?: string;
  /** Is there a health signal for the resource */
  signalAvailability?: boolean;
}

/** User credentials used for publishing activity. */
export interface User extends ProxyOnlyResource {
  /** Username used for publishing. */
  publishingUserName?: string;
  /**
   * Password used for publishing.
   * This value contains a credential. Consider obscuring before showing to users
   */
  publishingPassword?: string;
  /**
   * Password hash used for publishing.
   * This value contains a credential. Consider obscuring before showing to users
   */
  publishingPasswordHash?: string;
  /**
   * Password hash salt used for publishing.
   * This value contains a credential. Consider obscuring before showing to users
   */
  publishingPasswordHashSalt?: string;
  /** Url of SCM site. */
  scmUri?: string;
}

/** The source control OAuth token. */
export interface SourceControl extends ProxyOnlyResource {
  /** OAuth access token. */
  token?: string;
  /** OAuth access token secret. */
  tokenSecret?: string;
  /** OAuth refresh token. */
  refreshToken?: string;
  /** OAuth token expiration. */
  expirationTime?: Date;
}

/** App Service billing entity that contains information about meter which the Azure billing system utilizes to charge users for services. */
export interface BillingMeter extends ProxyOnlyResource {
  /** Meter GUID onboarded in Commerce */
  meterId?: string;
  /** Azure Location of billable resource */
  billingLocation?: string;
  /** Short Name from App Service Azure pricing Page */
  shortName?: string;
  /** Friendly name of the meter */
  friendlyName?: string;
  /** App Service ResourceType meter used for */
  resourceType?: string;
  /** App Service OS type meter used for */
  osType?: string;
  /** Meter Multiplier */
  multiplier?: number;
}

/** A domain specific resource identifier. */
export interface Identifier extends ProxyOnlyResource {
  /** String representation of the identity. */
  value?: string;
}

/** A hostname and its assigned sites */
export interface CustomHostnameSites extends ProxyOnlyResource {
  customHostname?: string;
  region?: string;
  siteResourceIds?: Identifier[];
}

/** Geographical region. */
export interface GeoRegion extends ProxyOnlyResource {
  /**
   * Region description.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly description?: string;
  /**
   * Display name for region.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayName?: string;
  /**
   * Display name for region.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly orgDomain?: string;
}

/** ASE region. */
export interface AseRegion extends ProxyOnlyResource {
  /**
   * Display name for region.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayName?: string;
  /**
   * Is region standard.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly standard?: boolean;
  /**
   * Dedicated host enabled.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly dedicatedHost?: boolean;
  /**
   * Zone redundant deployment enabled.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly zoneRedundant?: boolean;
  /** Available Skus in region. */
  availableSku?: string[];
  /** Available OSs in region. */
  availableOS?: string[];
}

/** Premier add-on offer. */
export interface PremierAddOnOffer extends ProxyOnlyResource {
  /** Premier add on SKU. */
  sku?: string;
  /** Premier add on offer Product. */
  product?: string;
  /** Premier add on offer Vendor. */
  vendor?: string;
  /** <code>true</code> if promotion code is required; otherwise, <code>false</code>. */
  promoCodeRequired?: boolean;
  /** Premier add on offer Quota. */
  quota?: number;
  /** App Service plans this offer is restricted to. */
  webHostingPlanRestrictions?: AppServicePlanRestrictions;
  /** Privacy policy URL. */
  privacyPolicyUrl?: string;
  /** Legal terms URL. */
  legalTermsUrl?: string;
  /** Marketplace publisher. */
  marketplacePublisher?: string;
  /** Marketplace offer. */
  marketplaceOffer?: string;
}

/** The required set of inputs to validate a VNET */
export interface VnetParameters extends ProxyOnlyResource {
  /** The Resource Group of the VNET to be validated */
  vnetResourceGroup?: string;
  /** The name of the VNET to be validated */
  vnetName?: string;
  /** The subnet name to be validated */
  vnetSubnetName?: string;
  /** The ARM Resource ID of the subnet to validate */
  subnetResourceId?: string;
}

/** A class that describes a test that failed during NSG and UDR validation. */
export interface VnetValidationTestFailure extends ProxyOnlyResource {
  /** The name of the test that failed. */
  testName?: string;
  /** The details of what caused the failure, e.g. the blocking rule name, etc. */
  details?: string;
}

/** A class that describes the reason for a validation failure. */
export interface VnetValidationFailureDetails extends ProxyOnlyResource {
  /** Text describing the validation outcome. */
  message?: string;
  /** A flag describing whether or not validation failed. */
  failed?: boolean;
  /** A list of tests that failed in the validation. */
  failedTests?: VnetValidationTestFailure[];
  /** A list of warnings generated during validation. */
  warnings?: VnetValidationTestFailure[];
}

/** Request entity for previewing the Static Site workflow */
export interface StaticSitesWorkflowPreviewRequest extends ProxyOnlyResource {
  /** URL for the repository of the static site. */
  repositoryUrl?: string;
  /** The target branch in the repository. */
  branch?: string;
  /** Build properties to configure on the repository. */
  buildProperties?: StaticSiteBuildProperties;
}

/** Preview for the Static Site Workflow to be generated */
export interface StaticSitesWorkflowPreview extends ProxyOnlyResource {
  /**
   * The path for the workflow file to be generated
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly path?: string;
  /**
   * The contents for the workflow file to be generated
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contents?: string;
}

/** A remote private endpoint connection */
export interface RemotePrivateEndpointConnection extends ProxyOnlyResource {
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly provisioningState?: string;
  /** PrivateEndpoint of a remote private endpoint connection */
  privateEndpoint?: ArmIdWrapper;
  /** The state of a private link connection */
  privateLinkServiceConnectionState?: PrivateLinkConnectionState;
  /** Private IPAddresses mapped to the remote private endpoint */
  ipAddresses?: string[];
}

/** A static site user provided function. */
export interface StaticSiteUserProvidedFunctionApp extends ProxyOnlyResource {
  /** The resource id of the function app registered with the static site */
  functionAppResourceId?: string;
  /** The region of the function app registered with the static site */
  functionAppRegion?: string;
  /**
   * The date and time on which the function app was registered with the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdOn?: Date;
}

/** ARM resource for a static site when patching */
export interface StaticSitePatchResource extends ProxyOnlyResource {
  /**
   * The default autogenerated hostname for the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly defaultHostname?: string;
  /** URL for the repository of the static site. */
  repositoryUrl?: string;
  /** The target branch in the repository. */
  branch?: string;
  /**
   * The custom domains associated with this static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly customDomains?: string[];
  /** A user's github repository token. This is used to setup the Github Actions workflow file and API secrets. */
  repositoryToken?: string;
  /** Build properties to configure on the repository. */
  buildProperties?: StaticSiteBuildProperties;
  /**
   * Private endpoint connections
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly privateEndpointConnections?: ResponseMessageEnvelopeRemotePrivateEndpointConnection[];
  /** State indicating whether staging environments are allowed or not allowed for a static web app. */
  stagingEnvironmentPolicy?: StagingEnvironmentPolicy;
  /** <code>false</code> if config file is locked for this static web app; otherwise, <code>true</code>. */
  allowConfigFileUpdates?: boolean;
  /** Template options for generating a new repository. */
  templateProperties?: StaticSiteTemplateOptions;
  /**
   * The content distribution endpoint for the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly contentDistributionEndpoint?: string;
  /**
   * Identity to use for Key Vault Reference authentication.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly keyVaultReferenceIdentity?: string;
  /**
   * User provided function apps registered with the static site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly userProvidedFunctionApps?: StaticSiteUserProvidedFunctionApp[];
  /**
   * Backends linked to the static side
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly linkedBackends?: StaticSiteLinkedBackend[];
  /** The provider that submitted the last deployment to the primary environment of the static site. */
  provider?: string;
  /** State indicating the status of the enterprise grade CDN serving traffic to the static web app. */
  enterpriseGradeCdnStatus?: EnterpriseGradeCdnStatus;
  /** State indicating whether public traffic are allowed or not for a static web app. Allowed Values: 'Enabled', 'Disabled' or an empty string. */
  publicNetworkAccess?: string;
  /**
   * Database connections for the static site
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly databaseConnections?: DatabaseConnectionOverview[];
}

/** Static Site User ARM resource. */
export interface StaticSiteUserARMResource extends ProxyOnlyResource {
  /**
   * The identity provider for the static site user.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provider?: string;
  /**
   * The user id for the static site user.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly userId?: string;
  /**
   * The display name for the static site user.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly displayName?: string;
  /** The roles for the static site user, in free-form string format */
  roles?: string;
}

/** Static Site Build ARM resource. */
export interface StaticSiteBuildARMResource extends ProxyOnlyResource {
  /**
   * An identifier for the static site build.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly buildId?: string;
  /**
   * The source branch.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly sourceBranch?: string;
  /**
   * The title of a pull request that a static site build is related to.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly pullRequestTitle?: string;
  /**
   * The hostname for a static site build.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hostname?: string;
  /**
   * When this build was created.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdTimeUtc?: Date;
  /**
   * When this build was updated.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastUpdatedOn?: Date;
  /**
   * The status of the static site build.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: BuildStatus;
  /**
   * User provided function apps registered with the static site build
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly userProvidedFunctionApps?: StaticSiteUserProvidedFunctionApp[];
  /**
   * Backends linked to the static side build
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly linkedBackends?: StaticSiteLinkedBackend[];
  /**
   * Database connections for the static site build
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly databaseConnections?: DatabaseConnectionOverview[];
}

/** String dictionary resource. */
export interface StringDictionary extends ProxyOnlyResource {
  /** Settings. */
  properties?: { [propertyName: string]: string };
}

/** Static Site Database Connection resource. */
export interface DatabaseConnection extends ProxyOnlyResource {
  /** The resource id of the database. */
  resourceId?: string;
  /** If present, the identity is used in conjunction with connection string to connect to the database. Use of the system-assigned managed identity is indicated with the string 'SystemAssigned', while use of a user-assigned managed identity is indicated with the resource id of the managed identity resource. */
  connectionIdentity?: string;
  /** The connection string to use to connect to the database. */
  connectionString?: string;
  /** The region of the database resource. */
  region?: string;
  /**
   * A list of configuration files associated with this database connection.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly configurationFiles?: StaticSiteDatabaseConnectionConfigurationFileOverview[];
}

/** Static Site Function Overview ARM resource. */
export interface StaticSiteFunctionOverviewARMResource
  extends ProxyOnlyResource {
  /**
   * The name for the function
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly functionName?: string;
  /**
   * The trigger type of the function
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly triggerType?: TriggerTypes;
}

/** Static Site User Provided Function App ARM resource. */
export interface StaticSiteUserProvidedFunctionAppARMResource
  extends ProxyOnlyResource {
  /** The resource id of the function app registered with the static site */
  functionAppResourceId?: string;
  /** The region of the function app registered with the static site */
  functionAppRegion?: string;
  /**
   * The date and time on which the function app was registered with the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdOn?: Date;
}

/** Static site zip deployment ARM resource. */
export interface StaticSiteZipDeploymentARMResource extends ProxyOnlyResource {
  /** URL for the zipped app content */
  appZipUrl?: string;
  /** URL for the zipped api content */
  apiZipUrl?: string;
  /** A title to label the deployment */
  deploymentTitle?: string;
  /** The provider submitting this deployment */
  provider?: string;
  /** The language of the api content, if it exists */
  functionLanguage?: string;
}

/** Static site basic auth properties ARM resource. */
export interface StaticSiteBasicAuthPropertiesARMResource
  extends ProxyOnlyResource {
  /** The password for basic auth. */
  password?: string;
  /** Url to the secret in Key Vault. */
  secretUrl?: string;
  /** State indicating if basic auth is enabled and for what environments it is active. */
  applicableEnvironmentsMode?: string;
  /** The list of enabled environments for Basic Auth if ApplicableEnvironmentsMode is set to SpecifiedEnvironments. */
  environments?: string[];
  /**
   * State indicating if basic auth has a secret and what type it is.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly secretState?: string;
}

/** Static sites user roles invitation resource. */
export interface StaticSiteUserInvitationRequestResource
  extends ProxyOnlyResource {
  /** The domain name for the static site custom domain. */
  domain?: string;
  /** The identity provider for the static site user. */
  provider?: string;
  /** The user id for the static site user. */
  userDetails?: string;
  /** The roles for the static site user, in free-form string format */
  roles?: string;
  /** The number of hours the sas token stays valid */
  numHoursToExpiration?: number;
}

/** Static sites user roles invitation link resource. */
export interface StaticSiteUserInvitationResponseResource
  extends ProxyOnlyResource {
  /**
   * The expiration time of the invitation
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly expiresOn?: Date;
  /**
   * The url for the invitation link
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly invitationUrl?: string;
}

/** Static Site Custom Domain Overview ARM resource. */
export interface StaticSiteCustomDomainOverviewARMResource
  extends ProxyOnlyResource {
  /**
   * The domain name for the static site custom domain.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly domainName?: string;
  /**
   * The date and time on which the custom domain was created for the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdOn?: Date;
  /**
   * The status of the custom domain
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: CustomDomainStatus;
  /**
   * The TXT record validation token
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly validationToken?: string;
  /** NOTE: This property will not be serialized. It can only be populated by the server. */
  readonly errorMessage?: string;
}

/** Static Site Custom Domain Request Properties ARM resource. */
export interface StaticSiteCustomDomainRequestPropertiesARMResource
  extends ProxyOnlyResource {
  /** Validation method for adding a custom domain */
  validationMethod?: string;
}

/** String list resource. */
export interface StringList extends ProxyOnlyResource {
  /** List of string resources. */
  properties?: string[];
}

/** Static Site Reset Properties ARM resource. */
export interface StaticSiteResetPropertiesARMResource
  extends ProxyOnlyResource {
  /** The token which proves admin privileges to the repository. */
  repositoryToken?: string;
  /** Determines whether the repository should be updated with the new properties. */
  shouldUpdateRepository?: boolean;
}

/** Static Site Linked Backend ARM resource. */
export interface StaticSiteLinkedBackendARMResource extends ProxyOnlyResource {
  /** The resource id of the backend linked to the static site */
  backendResourceId?: string;
  /** The region of the backend linked to the static site */
  region?: string;
  /**
   * The date and time on which the backend was linked to the static site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdOn?: Date;
  /**
   * The provisioning state of the linking process.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: string;
}

/** ARM resource for a site. */
export interface SitePatchResource extends ProxyOnlyResource {
  /** Managed service identity. */
  identity?: ManagedServiceIdentity;
  /**
   * Current state of the app.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly state?: string;
  /**
   * Hostnames associated with the app.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hostNames?: string[];
  /**
   * Name of the repository site.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly repositorySiteName?: string;
  /**
   * State indicating whether the app has exceeded its quota usage. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly usageState?: UsageState;
  /** <code>true</code> if the app is enabled; otherwise, <code>false</code>. Setting this value to false disables the app (takes the app offline). */
  enabled?: boolean;
  /**
   * Enabled hostnames for the app.Hostnames need to be assigned (see HostNames) AND enabled. Otherwise,
   * the app is not served on those hostnames.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly enabledHostNames?: string[];
  /**
   * Management information availability state for the app.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly availabilityState?: SiteAvailabilityState;
  /** Hostname SSL states are used to manage the SSL bindings for app's hostnames. */
  hostNameSslStates?: HostNameSslState[];
  /** Resource ID of the associated App Service plan, formatted as: "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}". */
  serverFarmId?: string;
  /** <code>true</code> if reserved; otherwise, <code>false</code>. */
  reserved?: boolean;
  /** Obsolete: Hyper-V sandbox. */
  isXenon?: boolean;
  /** Hyper-V sandbox. */
  hyperV?: boolean;
  /**
   * Last time the app was modified, in UTC. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastModifiedTimeUtc?: Date;
  /** Configuration of the app. */
  siteConfig?: SiteConfig;
  /**
   * Azure Traffic Manager hostnames associated with the app. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trafficManagerHostNames?: string[];
  /** <code>true</code> to stop SCM (KUDU) site when the app is stopped; otherwise, <code>false</code>. The default is <code>false</code>. */
  scmSiteAlsoStopped?: boolean;
  /**
   * Specifies which deployment slot this app will swap into. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly targetSwapSlot?: string;
  /** App Service Environment to use for the app. */
  hostingEnvironmentProfile?: HostingEnvironmentProfile;
  /** <code>true</code> to enable client affinity; <code>false</code> to stop sending session affinity cookies, which route client requests in the same session to the same instance. Default is <code>true</code>. */
  clientAffinityEnabled?: boolean;
  /** <code>true</code> to enable client certificate authentication (TLS mutual authentication); otherwise, <code>false</code>. Default is <code>false</code>. */
  clientCertEnabled?: boolean;
  /**
   * This composes with ClientCertEnabled setting.
   * - ClientCertEnabled: false means ClientCert is ignored.
   * - ClientCertEnabled: true and ClientCertMode: Required means ClientCert is required.
   * - ClientCertEnabled: true and ClientCertMode: Optional means ClientCert is optional or accepted.
   */
  clientCertMode?: ClientCertMode;
  /** client certificate authentication comma-separated exclusion paths */
  clientCertExclusionPaths?: string;
  /**
   * <code>true</code> to disable the public hostnames of the app; otherwise, <code>false</code>.
   *  If <code>true</code>, the app is only accessible via API management process.
   */
  hostNamesDisabled?: boolean;
  /** Unique identifier that verifies the custom domains assigned to the app. Customer will add this id to a txt record for verification. */
  customDomainVerificationId?: string;
  /**
   * List of IP addresses that the app uses for outbound connections (e.g. database access). Includes VIPs from tenants that site can be hosted with current settings. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outboundIpAddresses?: string;
  /**
   * List of IP addresses that the app uses for outbound connections (e.g. database access). Includes VIPs from all tenants except dataComponent. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly possibleOutboundIpAddresses?: string;
  /** Size of the function container. */
  containerSize?: number;
  /** Maximum allowed daily memory-time quota (applicable on dynamic apps only). */
  dailyMemoryTimeQuota?: number;
  /**
   * App suspended till in case memory-time quota is exceeded.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly suspendedTill?: Date;
  /**
   * Maximum number of workers.
   * This only applies to Functions container.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly maxNumberOfWorkers?: number;
  /** If specified during app creation, the app is cloned from a source app. */
  cloningInfo?: CloningInfo;
  /**
   * Name of the resource group the app belongs to. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly resourceGroup?: string;
  /**
   * <code>true</code> if the app is a default container; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isDefaultContainer?: boolean;
  /**
   * Default hostname of the app. Read-only.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly defaultHostName?: string;
  /**
   * Status of the last deployment slot swap operation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly slotSwapStatus?: SlotSwapStatus;
  /**
   * HttpsOnly: configures a web site to accept only https requests. Issues redirect for
   * http requests
   */
  httpsOnly?: boolean;
  /** Site redundancy mode */
  redundancyMode?: RedundancyMode;
  /**
   * Specifies an operation id if this site has a pending operation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inProgressOperationId?: string;
  /** Checks if Customer provided storage account is required */
  storageAccountRequired?: boolean;
  /** Identity to use for Key Vault Reference authentication. */
  keyVaultReferenceIdentity?: string;
  /**
   * Azure Resource Manager ID of the Virtual network and subnet to be joined by Regional VNET Integration.
   * This must be of the form /subscriptions/{subscriptionName}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{vnetName}/subnets/{subnetName}
   */
  virtualNetworkSubnetId?: string;
}

/** Custom domain analysis. */
export interface CustomHostnameAnalysisResult extends ProxyOnlyResource {
  /**
   * <code>true</code> if hostname is already verified; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly isHostnameAlreadyVerified?: boolean;
  /**
   * DNS verification test result.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly customDomainVerificationTest?: DnsVerificationTestResult;
  /**
   * Raw failure information if DNS verification fails.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly customDomainVerificationFailureInfo?: ErrorEntity;
  /**
   * <code>true</code> if there is a conflict on a scale unit; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hasConflictOnScaleUnit?: boolean;
  /**
   * <code>true</code> if there is a conflict across subscriptions; otherwise, <code>false</code>.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hasConflictAcrossSubscription?: boolean;
  /**
   * Name of the conflicting app on scale unit if it's within the same subscription.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly conflictingAppResourceId?: string;
  /** CName records controller can see for this hostname. */
  cNameRecords?: string[];
  /** TXT records controller can see for this hostname. */
  txtRecords?: string[];
  /** A records controller can see for this hostname. */
  aRecords?: string[];
  /** Alternate CName records controller can see for this hostname. */
  alternateCNameRecords?: string[];
  /** Alternate TXT records controller can see for this hostname. */
  alternateTxtRecords?: string[];
}

/** Description of a backup which will be performed. */
export interface BackupRequest extends ProxyOnlyResource {
  /** Name of the backup. */
  backupName?: string;
  /** True if the backup schedule is enabled (must be included in that case), false if the backup schedule should be disabled. */
  enabled?: boolean;
  /** SAS URL to the container. */
  storageAccountUrl?: string;
  /** Schedule for the backup if it is executed periodically. */
  backupSchedule?: BackupSchedule;
  /** Databases included in the backup. */
  databases?: DatabaseBackupSetting[];
}

/** Backup description. */
export interface BackupItem extends ProxyOnlyResource {
  /**
   * Id of the backup.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly backupId?: number;
  /**
   * SAS URL for the storage account container which contains this backup.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly storageAccountUrl?: string;
  /**
   * Name of the blob which contains data for this backup.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly blobName?: string;
  /**
   * Name of this backup.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly namePropertiesName?: string;
  /**
   * Backup status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: BackupItemStatus;
  /**
   * Size of the backup in bytes.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly sizeInBytes?: number;
  /**
   * Timestamp of the backup creation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly created?: Date;
  /**
   * Details regarding this backup. Might contain an error message.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly log?: string;
  /**
   * List of databases included in the backup.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly databases?: DatabaseBackupSetting[];
  /**
   * True if this backup has been created due to a schedule being triggered.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly scheduled?: boolean;
  /**
   * Timestamp of a last restore operation which used this backup.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastRestoreTimeStamp?: Date;
  /**
   * Timestamp when this backup finished.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly finishedTimeStamp?: Date;
  /**
   * Unique correlation identifier. Please use this along with the timestamp while communicating with Azure support.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly correlationId?: string;
  /**
   * Size of the original web app which has been backed up.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly websiteSizeInBytes?: number;
}

/** Description of a restore request. */
export interface RestoreRequest extends ProxyOnlyResource {
  /** SAS URL to the container. */
  storageAccountUrl?: string;
  /** Name of a blob which contains the backup. */
  blobName?: string;
  /** <code>true</code> if the restore operation can overwrite target app; otherwise, <code>false</code>. <code>true</code> is needed if trying to restore over an existing app. */
  overwrite?: boolean;
  /** Name of an app. */
  siteName?: string;
  /** Collection of databases which should be restored. This list has to match the list of databases included in the backup. */
  databases?: DatabaseBackupSetting[];
  /**
   * Changes a logic when restoring an app with custom domains. <code>true</code> to remove custom domains automatically. If <code>false</code>, custom domains are added to
   * the app's object when it is being restored, but that might fail due to conflicts during the operation.
   */
  ignoreConflictingHostNames?: boolean;
  /** Ignore the databases and only restore the site content */
  ignoreDatabases?: boolean;
  /** Specify app service plan that will own restored site. */
  appServicePlan?: string;
  /** Operation type. */
  operationType?: BackupRestoreOperationType;
  /** <code>true</code> if SiteConfig.ConnectionStrings should be set in new app; otherwise, <code>false</code>. */
  adjustConnectionStrings?: boolean;
  /** App Service Environment name, if needed (only when restoring an app to an App Service Environment). */
  hostingEnvironment?: string;
}

/** Publishing Credentials Policies parameters. */
export interface CsmPublishingCredentialsPoliciesEntity
  extends ProxyOnlyResource {
  /** <code>true</code> to allow access to a publishing method; otherwise, <code>false</code>. */
  allow?: boolean;
}

/** Web app configuration ARM resource. */
export interface SiteConfigResource extends ProxyOnlyResource {
  /** Number of workers. */
  numberOfWorkers?: number;
  /** Default documents. */
  defaultDocuments?: string[];
  /** .NET Framework version. */
  netFrameworkVersion?: string;
  /** Version of PHP. */
  phpVersion?: string;
  /** Version of Python. */
  pythonVersion?: string;
  /** Version of Node.js. */
  nodeVersion?: string;
  /** Version of PowerShell. */
  powerShellVersion?: string;
  /** Linux App Framework and version */
  linuxFxVersion?: string;
  /** Xenon App Framework and version */
  windowsFxVersion?: string;
  /** <code>true</code> if request tracing is enabled; otherwise, <code>false</code>. */
  requestTracingEnabled?: boolean;
  /** Request tracing expiration time. */
  requestTracingExpirationTime?: Date;
  /** <code>true</code> if remote debugging is enabled; otherwise, <code>false</code>. */
  remoteDebuggingEnabled?: boolean;
  /** Remote debugging version. */
  remoteDebuggingVersion?: string;
  /** <code>true</code> if HTTP logging is enabled; otherwise, <code>false</code>. */
  httpLoggingEnabled?: boolean;
  /** Flag to use Managed Identity Creds for ACR pull */
  acrUseManagedIdentityCreds?: boolean;
  /** If using user managed identity, the user managed identity ClientId */
  acrUserManagedIdentityID?: string;
  /** HTTP logs directory size limit. */
  logsDirectorySizeLimit?: number;
  /** <code>true</code> if detailed error logging is enabled; otherwise, <code>false</code>. */
  detailedErrorLoggingEnabled?: boolean;
  /** Publishing user name. */
  publishingUsername?: string;
  /** Application settings. */
  appSettings?: NameValuePair[];
  /** Application metadata. This property cannot be retrieved, since it may contain secrets. */
  metadata?: NameValuePair[];
  /** Connection strings. */
  connectionStrings?: ConnStringInfo[];
  /**
   * Site MachineKey.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly machineKey?: SiteMachineKey;
  /** Handler mappings. */
  handlerMappings?: HandlerMapping[];
  /** Document root. */
  documentRoot?: string;
  /** SCM type. */
  scmType?: ScmType;
  /** <code>true</code> to use 32-bit worker process; otherwise, <code>false</code>. */
  use32BitWorkerProcess?: boolean;
  /** <code>true</code> if WebSocket is enabled; otherwise, <code>false</code>. */
  webSocketsEnabled?: boolean;
  /** <code>true</code> if Always On is enabled; otherwise, <code>false</code>. */
  alwaysOn?: boolean;
  /** Java version. */
  javaVersion?: string;
  /** Java container. */
  javaContainer?: string;
  /** Java container version. */
  javaContainerVersion?: string;
  /** App command line to launch. */
  appCommandLine?: string;
  /** Managed pipeline mode. */
  managedPipelineMode?: ManagedPipelineMode;
  /** Virtual applications. */
  virtualApplications?: VirtualApplication[];
  /** Site load balancing. */
  loadBalancing?: SiteLoadBalancing;
  /** This is work around for polymorphic types. */
  experiments?: Experiments;
  /** Site limits. */
  limits?: SiteLimits;
  /** <code>true</code> if Auto Heal is enabled; otherwise, <code>false</code>. */
  autoHealEnabled?: boolean;
  /** Auto Heal rules. */
  autoHealRules?: AutoHealRules;
  /** Tracing options. */
  tracingOptions?: string;
  /** Virtual Network name. */
  vnetName?: string;
  /** Virtual Network Route All enabled. This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. */
  vnetRouteAllEnabled?: boolean;
  /** The number of private ports assigned to this app. These will be assigned dynamically on runtime. */
  vnetPrivatePortsCount?: number;
  /** Cross-Origin Resource Sharing (CORS) settings. */
  cors?: CorsSettings;
  /** Push endpoint settings. */
  push?: PushSettings;
  /** Information about the formal API definition for the app. */
  apiDefinition?: ApiDefinitionInfo;
  /** Azure API management settings linked to the app. */
  apiManagementConfig?: ApiManagementConfig;
  /** Auto-swap slot name. */
  autoSwapSlotName?: string;
  /** <code>true</code> to enable local MySQL; otherwise, <code>false</code>. */
  localMySqlEnabled?: boolean;
  /** Managed Service Identity Id */
  managedServiceIdentityId?: number;
  /** Explicit Managed Service Identity Id */
  xManagedServiceIdentityId?: number;
  /** Identity to use for Key Vault Reference authentication. */
  keyVaultReferenceIdentity?: string;
  /** IP security restrictions for main. */
  ipSecurityRestrictions?: IpSecurityRestriction[];
  /** Default action for main access restriction if no rules are matched. */
  ipSecurityRestrictionsDefaultAction?: DefaultAction;
  /** IP security restrictions for scm. */
  scmIpSecurityRestrictions?: IpSecurityRestriction[];
  /** Default action for scm access restriction if no rules are matched. */
  scmIpSecurityRestrictionsDefaultAction?: DefaultAction;
  /** IP security restrictions for scm to use main. */
  scmIpSecurityRestrictionsUseMain?: boolean;
  /** Http20Enabled: configures a web site to allow clients to connect over http2.0 */
  http20Enabled?: boolean;
  /** MinTlsVersion: configures the minimum version of TLS required for SSL requests */
  minTlsVersion?: SupportedTlsVersions;
  /** The minimum strength TLS cipher suite allowed for an application */
  minTlsCipherSuite?: TlsCipherSuites;
  /** ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site */
  scmMinTlsVersion?: SupportedTlsVersions;
  /** State of FTP / FTPS service */
  ftpsState?: FtpsState;
  /**
   * Number of preWarmed instances.
   * This setting only applies to the Consumption and Elastic Plans
   */
  preWarmedInstanceCount?: number;
  /**
   * Maximum number of workers that a site can scale out to.
   * This setting only applies to the Consumption and Elastic Premium Plans
   */
  functionAppScaleLimit?: number;
  /**
   * Maximum number of workers that a site can scale out to.
   * This setting only applies to apps in plans where ElasticScaleEnabled is <code>true</code>
   */
  elasticWebAppScaleLimit?: number;
  /** Health check path */
  healthCheckPath?: string;
  /**
   * Gets or sets a value indicating whether functions runtime scale monitoring is enabled. When enabled,
   * the ScaleController will not monitor event sources directly, but will instead call to the
   * runtime to get scale status.
   */
  functionsRuntimeScaleMonitoringEnabled?: boolean;
  /** Sets the time zone a site uses for generating timestamps. Compatible with Linux and Windows App Service. Setting the WEBSITE_TIME_ZONE app setting takes precedence over this config. For Linux, expects tz database values https://www.iana.org/time-zones (for a quick reference see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). For Windows, expects one of the time zones listed under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones */
  websiteTimeZone?: string;
  /**
   * Number of minimum instance count for a site
   * This setting only applies to the Elastic Plans
   */
  minimumElasticInstanceCount?: number;
  /** List of Azure Storage Accounts. */
  azureStorageAccounts?: { [propertyName: string]: AzureStorageInfoValue };
  /** Property to allow or block all public traffic. */
  publicNetworkAccess?: string;
}

/** Configuration settings for the Azure App Service Authentication / Authorization feature. */
export interface SiteAuthSettings extends ProxyOnlyResource {
  /** <code>true</code> if the Authentication / Authorization feature is enabled for the current app; otherwise, <code>false</code>. */
  enabled?: boolean;
  /**
   * The RuntimeVersion of the Authentication / Authorization feature in use for the current app.
   * The setting in this value can control the behavior of certain features in the Authentication / Authorization module.
   */
  runtimeVersion?: string;
  /** The action to take when an unauthenticated client attempts to access the app. */
  unauthenticatedClientAction?: UnauthenticatedClientAction;
  /**
   * <code>true</code> to durably store platform-specific security tokens that are obtained during login flows; otherwise, <code>false</code>.
   *  The default is <code>false</code>.
   */
  tokenStoreEnabled?: boolean;
  /**
   * External URLs that can be redirected to as part of logging in or logging out of the app. Note that the query string part of the URL is ignored.
   * This is an advanced setting typically only needed by Windows Store application backends.
   * Note that URLs within the current domain are always implicitly allowed.
   */
  allowedExternalRedirectUrls?: string[];
  /**
   * The default authentication provider to use when multiple providers are configured.
   * This setting is only needed if multiple providers are configured and the unauthenticated client
   * action is set to "RedirectToLoginPage".
   */
  defaultProvider?: BuiltInAuthenticationProvider;
  /**
   * The number of hours after session token expiration that a session token can be used to
   * call the token refresh API. The default is 72 hours.
   */
  tokenRefreshExtensionHours?: number;
  /**
   * The Client ID of this relying party application, known as the client_id.
   * This setting is required for enabling OpenID Connection authentication with Azure Active Directory or
   * other 3rd party OpenID Connect providers.
   * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
   */
  clientId?: string;
  /**
   * The Client Secret of this relying party application (in Azure Active Directory, this is also referred to as the Key).
   * This setting is optional. If no client secret is configured, the OpenID Connect implicit auth flow is used to authenticate end users.
   * Otherwise, the OpenID Connect Authorization Code Flow is used to authenticate end users.
   * More information on OpenID Connect: http://openid.net/specs/openid-connect-core-1_0.html
   */
  clientSecret?: string;
  /** The app setting name that contains the client secret of the relying party application. */
  clientSecretSettingName?: string;
  /**
   * An alternative to the client secret, that is the thumbprint of a certificate used for signing purposes. This property acts as
   * a replacement for the Client Secret. It is also optional.
   */
  clientSecretCertificateThumbprint?: string;
  /**
   * The OpenID Connect Issuer URI that represents the entity which issues access tokens for this application.
   * When using Azure Active Directory, this value is the URI of the directory tenant, e.g. https://sts.windows.net/{tenant-guid}/.
   * This URI is a case-sensitive identifier for the token issuer.
   * More information on OpenID Connect Discovery: http://openid.net/specs/openid-connect-discovery-1_0.html
   */
  issuer?: string;
  /** Gets a value indicating whether the issuer should be a valid HTTPS url and be validated as such. */
  validateIssuer?: boolean;
  /**
   * Allowed audience values to consider when validating JSON Web Tokens issued by
   * Azure Active Directory. Note that the <code>ClientID</code> value is always considered an
   * allowed audience, regardless of this setting.
   */
  allowedAudiences?: string[];
  /**
   * Login parameters to send to the OpenID Connect authorization endpoint when
   * a user logs in. Each parameter must be in the form "key=value".
   */
  additionalLoginParams?: string[];
  /** Gets a JSON string containing the Azure AD Acl settings. */
  aadClaimsAuthorization?: string;
  /**
   * The OpenID Connect Client ID for the Google web application.
   * This setting is required for enabling Google Sign-In.
   * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
   */
  googleClientId?: string;
  /**
   * The client secret associated with the Google web application.
   * This setting is required for enabling Google Sign-In.
   * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
   */
  googleClientSecret?: string;
  /**
   * The app setting name that contains the client secret associated with
   * the Google web application.
   */
  googleClientSecretSettingName?: string;
  /**
   * The OAuth 2.0 scopes that will be requested as part of Google Sign-In authentication.
   * This setting is optional. If not specified, "openid", "profile", and "email" are used as default scopes.
   * Google Sign-In documentation: https://developers.google.com/identity/sign-in/web/
   */
  googleOAuthScopes?: string[];
  /**
   * The App ID of the Facebook app used for login.
   * This setting is required for enabling Facebook Login.
   * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
   */
  facebookAppId?: string;
  /**
   * The App Secret of the Facebook app used for Facebook Login.
   * This setting is required for enabling Facebook Login.
   * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
   */
  facebookAppSecret?: string;
  /** The app setting name that contains the app secret used for Facebook Login. */
  facebookAppSecretSettingName?: string;
  /**
   * The OAuth 2.0 scopes that will be requested as part of Facebook Login authentication.
   * This setting is optional.
   * Facebook Login documentation: https://developers.facebook.com/docs/facebook-login
   */
  facebookOAuthScopes?: string[];
  /**
   * The Client Id of the GitHub app used for login.
   * This setting is required for enabling Github login
   */
  gitHubClientId?: string;
  /**
   * The Client Secret of the GitHub app used for Github Login.
   * This setting is required for enabling Github login.
   */
  gitHubClientSecret?: string;
  /**
   * The app setting name that contains the client secret of the Github
   * app used for GitHub Login.
   */
  gitHubClientSecretSettingName?: string;
  /**
   * The OAuth 2.0 scopes that will be requested as part of GitHub Login authentication.
   * This setting is optional
   */
  gitHubOAuthScopes?: string[];
  /**
   * The OAuth 1.0a consumer key of the Twitter application used for sign-in.
   * This setting is required for enabling Twitter Sign-In.
   * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
   */
  twitterConsumerKey?: string;
  /**
   * The OAuth 1.0a consumer secret of the Twitter application used for sign-in.
   * This setting is required for enabling Twitter Sign-In.
   * Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
   */
  twitterConsumerSecret?: string;
  /**
   * The app setting name that contains the OAuth 1.0a consumer secret of the Twitter
   * application used for sign-in.
   */
  twitterConsumerSecretSettingName?: string;
  /**
   * The OAuth 2.0 client ID that was created for the app used for authentication.
   * This setting is required for enabling Microsoft Account authentication.
   * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
   */
  microsoftAccountClientId?: string;
  /**
   * The OAuth 2.0 client secret that was created for the app used for authentication.
   * This setting is required for enabling Microsoft Account authentication.
   * Microsoft Account OAuth documentation: https://dev.onedrive.com/auth/msa_oauth.htm
   */
  microsoftAccountClientSecret?: string;
  /**
   * The app setting name containing the OAuth 2.0 client secret that was created for the
   * app used for authentication.
   */
  microsoftAccountClientSecretSettingName?: string;
  /**
   * The OAuth 2.0 scopes that will be requested as part of Microsoft Account authentication.
   * This setting is optional. If not specified, "wl.basic" is used as the default scope.
   * Microsoft Account Scopes and permissions documentation: https://msdn.microsoft.com/en-us/library/dn631845.aspx
   */
  microsoftAccountOAuthScopes?: string[];
  /**
   * "true" if the auth config settings should be read from a file,
   * "false" otherwise
   */
  isAuthFromFile?: string;
  /**
   * The path of the config file containing auth settings.
   * If the path is relative, base will the site's root directory.
   */
  authFilePath?: string;
  /**
   * The ConfigVersion of the Authentication / Authorization feature in use for the current app.
   * The setting in this value can control the behavior of the control plane for Authentication / Authorization.
   */
  configVersion?: string;
}

/** Configuration settings for the Azure App Service Authentication / Authorization V2 feature. */
export interface SiteAuthSettingsV2 extends ProxyOnlyResource {
  /** The configuration settings of the platform of App Service Authentication/Authorization. */
  platform?: AuthPlatform;
  /** The configuration settings that determines the validation flow of users using App Service Authentication/Authorization. */
  globalValidation?: GlobalValidation;
  /** The configuration settings of each of the identity providers used to configure App Service Authentication/Authorization. */
  identityProviders?: IdentityProviders;
  /** The configuration settings of the login flow of users using App Service Authentication/Authorization. */
  login?: Login;
  /** The configuration settings of the HTTP requests for authentication and authorization requests made against App Service Authentication/Authorization. */
  httpSettings?: HttpSettings;
}

/** AzureStorageInfo dictionary resource. */
export interface AzureStoragePropertyDictionaryResource
  extends ProxyOnlyResource {
  /** Azure storage accounts. */
  properties?: { [propertyName: string]: AzureStorageInfoValue };
}

/** Description of site key vault references. */
export interface ApiKVReference extends ProxyOnlyResource {
  reference?: string;
  status?: ResolveStatus;
  vaultName?: string;
  secretName?: string;
  secretVersion?: string;
  /** Managed service identity. */
  identityType?: ManagedServiceIdentity;
  details?: string;
  source?: "KeyVault";
  activeVersion?: string;
}

/** String dictionary resource. */
export interface ConnectionStringDictionary extends ProxyOnlyResource {
  /** Connection strings. */
  properties?: { [propertyName: string]: ConnStringValueTypePair };
}

/** Configuration of App Service site logs. */
export interface SiteLogsConfig extends ProxyOnlyResource {
  /** Application logs configuration. */
  applicationLogs?: ApplicationLogsConfig;
  /** HTTP logs configuration. */
  httpLogs?: HttpLogsConfig;
  /** Failed requests tracing configuration. */
  failedRequestsTracing?: EnabledConfig;
  /** Detailed error messages configuration. */
  detailedErrorMessages?: EnabledConfig;
}

/** Slot Config names azure resource. */
export interface SlotConfigNamesResource extends ProxyOnlyResource {
  /** List of connection string names. */
  connectionStringNames?: string[];
  /** List of application settings names. */
  appSettingNames?: string[];
  /** List of external Azure storage account identifiers. */
  azureStorageConfigNames?: string[];
}

/** A snapshot of a web app configuration. */
export interface SiteConfigurationSnapshotInfo extends ProxyOnlyResource {
  /**
   * The time the snapshot was taken.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly time?: Date;
  /**
   * The id of the snapshot
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly snapshotId?: number;
}

/** Continuous Web Job Information. */
export interface ContinuousWebJob extends ProxyOnlyResource {
  /** Job status. */
  status?: ContinuousWebJobStatus;
  /** Detailed status. */
  detailedStatus?: string;
  /** Log URL. */
  logUrl?: string;
  /** Run command. */
  runCommand?: string;
  /** Job URL. */
  url?: string;
  /** Extra Info URL. */
  extraInfoUrl?: string;
  /** Job type. */
  webJobType?: WebJobType;
  /** Error information. */
  error?: string;
  /** Using SDK? */
  usingSdk?: boolean;
  /** Job settings. */
  settings?: { [propertyName: string]: Record<string, unknown> };
}

/** Deployment status response payload. */
export interface CsmDeploymentStatus extends ProxyOnlyResource {
  /** Deployment operation id. */
  deploymentId?: string;
  /** Deployment build status. */
  status?: DeploymentBuildStatus;
  /** Number of site instances currently being provisioned. */
  numberOfInstancesInProgress?: number;
  /** Number of site instances provisioned successfully. */
  numberOfInstancesSuccessful?: number;
  /** Number of site instances failed to provision. */
  numberOfInstancesFailed?: number;
  /** List of URLs pointing to logs for instances which failed to provision. */
  failedInstancesLogs?: string[];
  /** List of errors. */
  errors?: ErrorEntity[];
}

/** User credentials used for publishing activity. */
export interface Deployment extends ProxyOnlyResource {
  /** Deployment status. */
  status?: number;
  /** Details about deployment status. */
  message?: string;
  /** Who authored the deployment. */
  author?: string;
  /** Who performed the deployment. */
  deployer?: string;
  /** Author email. */
  authorEmail?: string;
  /** Start time. */
  startTime?: Date;
  /** End time. */
  endTime?: Date;
  /** True if deployment is currently active, false if completed and null if not started. */
  active?: boolean;
  /** Details on deployment. */
  details?: string;
}

/** MSDeploy ARM response */
export interface MSDeployStatus extends ProxyOnlyResource {
  /**
   * Username of deployer
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly deployer?: string;
  /**
   * Provisioning state
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: MSDeployProvisioningState;
  /**
   * Start time of deploy operation
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly startTime?: Date;
  /**
   * End time of deploy operation
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endTime?: Date;
  /**
   * Whether the deployment operation has completed
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly complete?: boolean;
}

/** MSDeploy ARM PUT information */
export interface MSDeploy extends ProxyOnlyResource {
  /** Package URI */
  packageUri?: string;
  /** SQL Connection String */
  connectionString?: string;
  /** Database Type */
  dbType?: string;
  /** URI of MSDeploy Parameters file. Must not be set if SetParameters is used. */
  setParametersXmlFileUri?: string;
  /** MSDeploy Parameters. Must not be set if SetParametersXmlFileUri is used. */
  setParameters?: { [propertyName: string]: string };
  /**
   * Controls whether the MSDeploy operation skips the App_Data directory.
   * If set to <code>true</code>, the existing App_Data directory on the destination
   * will not be deleted, and any App_Data directory in the source will be ignored.
   * Setting is <code>false</code> by default.
   */
  skipAppData?: boolean;
  /**
   * Sets the AppOffline rule while the MSDeploy operation executes.
   * Setting is <code>false</code> by default.
   */
  appOffline?: boolean;
}

/** MSDeploy log */
export interface MSDeployLog extends ProxyOnlyResource {
  /**
   * List of log entry messages
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly entries?: MSDeployLogEntry[];
}

/** Function information. */
export interface FunctionEnvelope extends ProxyOnlyResource {
  /** Function App ID. */
  functionAppId?: string;
  /** Script root path URI. */
  scriptRootPathHref?: string;
  /** Script URI. */
  scriptHref?: string;
  /** Config URI. */
  configHref?: string;
  /** Test data URI. */
  testDataHref?: string;
  /** Secrets file URI. */
  secretsFileHref?: string;
  /** Function URI. */
  href?: string;
  /** Config information. */
  config?: Record<string, unknown>;
  /** File list. */
  files?: { [propertyName: string]: string };
  /** Test data used when testing via the Azure Portal. */
  testData?: string;
  /** The invocation URL */
  invokeUrlTemplate?: string;
  /** The function language */
  language?: string;
  /** Gets or sets a value indicating whether the function is disabled */
  isDisabled?: boolean;
}

/** A hostname binding object. */
export interface HostNameBinding extends ProxyOnlyResource {
  /** App Service app name. */
  siteName?: string;
  /** Fully qualified ARM domain resource URI. */
  domainId?: string;
  /** Azure resource name. */
  azureResourceName?: string;
  /** Azure resource type. */
  azureResourceType?: AzureResourceType;
  /** Custom DNS record type. */
  customHostNameDnsRecordType?: CustomHostNameDnsRecordType;
  /** Hostname type. */
  hostNameType?: HostNameType;
  /** SSL type */
  sslState?: SslState;
  /** SSL certificate thumbprint */
  thumbprint?: string;
  /**
   * Virtual IP address assigned to the hostname if IP based SSL is enabled.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly virtualIP?: string;
}

/** Hybrid Connection for an App Service app. */
export interface RelayServiceConnectionEntity extends ProxyOnlyResource {
  entityName?: string;
  entityConnectionString?: string;
  resourceType?: string;
  resourceConnectionString?: string;
  hostname?: string;
  port?: number;
  biztalkUri?: string;
}

export interface WebSiteInstanceStatus extends ProxyOnlyResource {
  state?: SiteRuntimeState;
  /** Link to the GetStatusApi in Kudu */
  statusUrl?: string;
  /** Link to the Diagnose and Solve Portal */
  detectorUrl?: string;
  /** Link to the console to web app instance */
  consoleUrl?: string;
  /** Link to the console to web app instance */
  healthCheckUrl?: string;
  /** Dictionary of <ContainerInfo> */
  containers?: { [propertyName: string]: ContainerInfo };
}

/** Process Thread Information. */
export interface ProcessThreadInfo extends ProxyOnlyResource {
  /**
   * Site extension ID.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly identifier?: number;
  /** HRef URI. */
  href?: string;
  /** Process URI. */
  process?: string;
  /** Start address. */
  startAddress?: string;
  /** Current thread priority. */
  currentPriority?: number;
  /** Thread priority level. */
  priorityLevel?: string;
  /** Base priority. */
  basePriority?: number;
  /** Start time. */
  startTime?: Date;
  /** Total processor time. */
  totalProcessorTime?: string;
  /** User processor time. */
  userProcessorTime?: string;
  /** Thread state. */
  state?: string;
  /** Wait reason. */
  waitReason?: string;
}

/** Process Module Information. */
export interface ProcessModuleInfo extends ProxyOnlyResource {
  /** Base address. Used as module identifier in ARM resource URI. */
  baseAddress?: string;
  /** File name. */
  fileName?: string;
  /** HRef URI. */
  href?: string;
  /** File path. */
  filePath?: string;
  /** Module memory size. */
  moduleMemorySize?: number;
  /** File version. */
  fileVersion?: string;
  /** File description. */
  fileDescription?: string;
  /** Product name. */
  product?: string;
  /** Product version. */
  productVersion?: string;
  /** Is debug? */
  isDebug?: boolean;
  /** Module language (locale). */
  language?: string;
}

/** Process Information. */
export interface ProcessInfo extends ProxyOnlyResource {
  /**
   * ARM Identifier for deployment.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly identifier?: number;
  /** Deployment name. */
  deploymentName?: string;
  /** HRef URI. */
  href?: string;
  /** Minidump URI. */
  minidump?: string;
  /** Is profile running? */
  isProfileRunning?: boolean;
  /** Is the IIS Profile running? */
  isIisProfileRunning?: boolean;
  /** IIS Profile timeout (seconds). */
  iisProfileTimeoutInSeconds?: number;
  /** Parent process. */
  parent?: string;
  /** Child process list. */
  children?: string[];
  /** Thread list. */
  threads?: ProcessThreadInfo[];
  /** List of open files. */
  openFileHandles?: string[];
  /** List of modules. */
  modules?: ProcessModuleInfo[];
  /** File name of this process. */
  fileName?: string;
  /** Command line. */
  commandLine?: string;
  /** User name. */
  userName?: string;
  /** Handle count. */
  handleCount?: number;
  /** Module count. */
  moduleCount?: number;
  /** Thread count. */
  threadCount?: number;
  /** Start time. */
  startTime?: Date;
  /** Total CPU time. */
  totalCpuTime?: string;
  /** User CPU time. */
  userCpuTime?: string;
  /** Privileged CPU time. */
  privilegedCpuTime?: string;
  /** Working set. */
  workingSet?: number;
  /** Peak working set. */
  peakWorkingSet?: number;
  /** Private memory size. */
  privateMemory?: number;
  /** Virtual memory size. */
  virtualMemory?: number;
  /** Peak virtual memory usage. */
  peakVirtualMemory?: number;
  /** Paged system memory. */
  pagedSystemMemory?: number;
  /** Non-paged system memory. */
  nonPagedSystemMemory?: number;
  /** Paged memory. */
  pagedMemory?: number;
  /** Peak paged memory. */
  peakPagedMemory?: number;
  /** Time stamp. */
  timeStamp?: Date;
  /** List of environment variables. */
  environmentVariables?: { [propertyName: string]: string };
  /** Is this the SCM site? */
  isScmSite?: boolean;
  /** Is this a Web Job? */
  isWebjob?: boolean;
  /** Description of process. */
  description?: string;
}

/** Options for app content migration. */
export interface StorageMigrationOptions extends ProxyOnlyResource {
  /** AzureFiles connection string. */
  azurefilesConnectionString?: string;
  /** AzureFiles share. */
  azurefilesShare?: string;
  /** <code>true</code>if the app should be switched over; otherwise, <code>false</code>. */
  switchSiteAfterMigration?: boolean;
  /** <code>true</code> if the app should be read only during copy operation; otherwise, <code>false</code>. */
  blockWriteAccessToSite?: boolean;
}

/** Response for a migration of app content request. */
export interface StorageMigrationResponse extends ProxyOnlyResource {
  /**
   * When server starts the migration process, it will return an operation ID identifying that particular migration operation.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly operationId?: string;
}

/** MySQL migration request. */
export interface MigrateMySqlRequest extends ProxyOnlyResource {
  /** Connection string to the remote MySQL database. */
  connectionString?: string;
  /** The type of migration operation to be done */
  migrationType?: MySqlMigrationType;
}

/** MySQL migration status. */
export interface MigrateMySqlStatus extends ProxyOnlyResource {
  /**
   * Status of the migration task.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly migrationOperationStatus?: OperationStatus;
  /**
   * Operation ID for the migration task.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly operationId?: string;
  /**
   * True if the web app has in app MySql enabled
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly localMySqlEnabled?: boolean;
}

/** Swift Virtual Network Contract. This is used to enable the new Swift way of doing virtual network integration. */
export interface SwiftVirtualNetwork extends ProxyOnlyResource {
  /** The Virtual Network subnet's resource ID. This is the subnet that this Web App will join. This subnet must have a delegation to Microsoft.Web/serverFarms defined first. */
  subnetResourceId?: string;
  /** A flag that specifies if the scale unit this Web App is on supports Swift integration. */
  swiftSupported?: boolean;
}

/** Full view of network features for an app (presently VNET integration and Hybrid Connections). */
export interface NetworkFeatures extends ProxyOnlyResource {
  /**
   * The Virtual Network name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly virtualNetworkName?: string;
  /**
   * The Virtual Network summary view.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly virtualNetworkConnection?: VnetInfo;
  /**
   * The Hybrid Connections summary view.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hybridConnections?: RelayServiceConnectionEntity[];
  /**
   * The Hybrid Connection V2 (Service Bus) view.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly hybridConnectionsV2?: HybridConnection[];
}

/** Used for getting PHP error logging flag. */
export interface SitePhpErrorLogFlag extends ProxyOnlyResource {
  /** Local log_errors setting. */
  localLogErrors?: string;
  /** Master log_errors setting. */
  masterLogErrors?: string;
  /** Local log_errors_max_len setting. */
  localLogErrorsMaxLength?: string;
  /** Master log_errors_max_len setting. */
  masterLogErrorsMaxLength?: string;
}

/** ARM resource for a PremierAddOn. */
export interface PremierAddOnPatchResource extends ProxyOnlyResource {
  /** Premier add on SKU. */
  sku?: string;
  /** Premier add on Product. */
  product?: string;
  /** Premier add on Vendor. */
  vendor?: string;
  /** Premier add on Marketplace publisher. */
  marketplacePublisher?: string;
  /** Premier add on Marketplace offer. */
  marketplaceOffer?: string;
}

/** Description of the parameters of Private Access for a Web Site. */
export interface PrivateAccess extends ProxyOnlyResource {
  /** Whether private access is enabled or not. */
  enabled?: boolean;
  /** The Virtual Networks (and subnets) allowed to access the site privately. */
  virtualNetworks?: PrivateAccessVirtualNetwork[];
}

/** Public certificate object */
export interface PublicCertificate extends ProxyOnlyResource {
  /** Public Certificate byte array */
  blob?: Uint8Array;
  /** Public Certificate Location */
  publicCertificateLocation?: PublicCertificateLocation;
  /**
   * Certificate Thumbprint
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly thumbprint?: string;
}

/** Details about restoring a deleted app. */
export interface DeletedAppRestoreRequest extends ProxyOnlyResource {
  /**
   * ARM resource ID of the deleted app. Example:
   * /subscriptions/{subId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}
   */
  deletedSiteId?: string;
  /** If true, deleted site configuration, in addition to content, will be restored. */
  recoverConfiguration?: boolean;
  /**
   * Point in time to restore the deleted app from, formatted as a DateTime string.
   * If unspecified, default value is the time that the app was deleted.
   */
  snapshotTime?: string;
  /** If true, the snapshot is retrieved from DRSecondary endpoint. */
  useDRSecondary?: boolean;
}

/** Details about app recovery operation. */
export interface SnapshotRestoreRequest extends ProxyOnlyResource {
  /** Point in time in which the app restore should be done, formatted as a DateTime string. */
  snapshotTime?: string;
  /**
   * Optional. Specifies the web app that snapshot contents will be retrieved from.
   * If empty, the targeted web app will be used as the source.
   */
  recoverySource?: SnapshotRecoverySource;
  /** If <code>true</code> the restore operation can overwrite source app; otherwise, <code>false</code>. */
  overwrite?: boolean;
  /** If true, site configuration, in addition to content, will be reverted. */
  recoverConfiguration?: boolean;
  /**
   * If true, custom hostname conflicts will be ignored when recovering to a target web app.
   * This setting is only necessary when RecoverConfiguration is enabled.
   */
  ignoreConflictingHostNames?: boolean;
  /** If true, the snapshot is retrieved from DRSecondary endpoint. */
  useDRSecondary?: boolean;
}

/** Site Extension Information. */
export interface SiteExtensionInfo extends ProxyOnlyResource {
  /** Site extension ID. */
  extensionId?: string;
  title?: string;
  /** Site extension type. */
  extensionType?: SiteExtensionType;
  /** Summary description. */
  summary?: string;
  /** Detailed description. */
  description?: string;
  /** Version information. */
  version?: string;
  /** Extension URL. */
  extensionUrl?: string;
  /** Project URL. */
  projectUrl?: string;
  /** Icon URL. */
  iconUrl?: string;
  /** License URL. */
  licenseUrl?: string;
  /** Feed URL. */
  feedUrl?: string;
  /** List of authors. */
  authors?: string[];
  /** Installer command line parameters. */
  installerCommandLineParams?: string;
  /** Published timestamp. */
  publishedDateTime?: Date;
  /** Count of downloads. */
  downloadCount?: number;
  /** <code>true</code> if the local version is the latest version; <code>false</code> otherwise. */
  localIsLatestVersion?: boolean;
  /** Local path. */
  localPath?: string;
  /** Installed timestamp. */
  installedDateTime?: Date;
  /** Provisioning state. */
  provisioningState?: string;
  /** Site Extension comment. */
  comment?: string;
}

/** A setting difference between two deployment slots of an app. */
export interface SlotDifference extends ProxyOnlyResource {
  /**
   * Level of the difference: Information, Warning or Error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly level?: string;
  /**
   * The type of the setting: General, AppSetting or ConnectionString.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly settingType?: string;
  /**
   * Rule that describes how to process the setting difference during a slot swap.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly diffRule?: string;
  /**
   * Name of the setting.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly settingName?: string;
  /**
   * Value of the setting in the current slot.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly valueInCurrentSlot?: string;
  /**
   * Value of the setting in the target slot.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly valueInTargetSlot?: string;
  /**
   * Description of the setting difference.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly description?: string;
}

/** Source control configuration for an app. */
export interface SiteSourceControl extends ProxyOnlyResource {
  /** Repository or source control URL. */
  repoUrl?: string;
  /** Name of branch to use for deployment. */
  branch?: string;
  /** <code>true</code> to limit to manual integration; <code>false</code> to enable continuous integration (which configures webhooks into online repos like GitHub). */
  isManualIntegration?: boolean;
  /** <code>true</code> if this is deployed via GitHub action. */
  isGitHubAction?: boolean;
  /** <code>true</code> to enable deployment rollback; otherwise, <code>false</code>. */
  deploymentRollbackEnabled?: boolean;
  /** <code>true</code> for a Mercurial repository; <code>false</code> for a Git repository. */
  isMercurial?: boolean;
  /** If GitHub Action is selected, than the associated configuration. */
  gitHubActionConfiguration?: GitHubActionConfiguration;
}

/** Triggered Web Job Information. */
export interface TriggeredWebJob extends ProxyOnlyResource {
  /** Latest job run information. */
  latestRun?: TriggeredJobRun;
  /** History URL. */
  historyUrl?: string;
  /** Scheduler Logs URL. */
  schedulerLogsUrl?: string;
  /** Run command. */
  runCommand?: string;
  /** Job URL. */
  url?: string;
  /** Extra Info URL. */
  extraInfoUrl?: string;
  /** Job type. */
  webJobType?: WebJobType;
  /** Error information. */
  error?: string;
  /** Using SDK? */
  usingSdk?: boolean;
  /** Property to allow or block all public traffic. Allowed Values: 'Enabled', 'Disabled' or an empty string. */
  publicNetworkAccess?: string;
  /** Checks if Customer provided storage account is required */
  storageAccountRequired?: boolean;
  /** Job settings. */
  settings?: { [propertyName: string]: Record<string, unknown> };
}

/** Triggered Web Job History. List of Triggered Web Job Run Information elements. */
export interface TriggeredJobHistory extends ProxyOnlyResource {
  /** List of triggered web job runs. */
  runs?: TriggeredJobRun[];
}

/** Web Job Information. */
export interface WebJob extends ProxyOnlyResource {
  /** Run command. */
  runCommand?: string;
  /** Job URL. */
  url?: string;
  /** Extra Info URL. */
  extraInfoUrl?: string;
  /** Job type. */
  webJobType?: WebJobType;
  /** Error information. */
  error?: string;
  /** Using SDK? */
  usingSdk?: boolean;
  /** Job settings. */
  settings?: { [propertyName: string]: Record<string, unknown> };
}

/** The workflow output parameter. */
export interface WorkflowOutputParameter extends WorkflowParameter {
  /**
   * Gets the error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly error?: Record<string, unknown>;
}

/** The workflow run. */
export interface WorkflowRun extends SubResource {
  /**
   * Gets the workflow run name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the workflow run type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /**
   * Gets the wait end time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly waitEndTime?: Date;
  /**
   * Gets the start time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly startTime?: Date;
  /**
   * Gets the end time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endTime?: Date;
  /**
   * Gets the status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: WorkflowStatus;
  /**
   * Gets the code.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly code?: string;
  /**
   * Gets the error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly error?: Record<string, unknown>;
  /**
   * Gets the correlation id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly correlationId?: string;
  /** The run correlation. */
  correlation?: Correlation;
  /**
   * Gets the reference to workflow version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly workflow?: ResourceReference;
  /**
   * Gets the fired trigger.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trigger?: WorkflowRunTrigger;
  /**
   * Gets the outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputs?: { [propertyName: string]: WorkflowOutputParameter };
  /**
   * Gets the response of the flow run.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly response?: WorkflowRunTrigger;
}

/** The workflow run action. */
export interface WorkflowRunAction extends SubResource {
  /**
   * Gets the workflow run action name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the workflow run action type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /**
   * Gets the start time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly startTime?: Date;
  /**
   * Gets the end time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endTime?: Date;
  /**
   * Gets the status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: WorkflowStatus;
  /**
   * Gets the code.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly code?: string;
  /**
   * Gets the error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly error?: Record<string, unknown>;
  /**
   * Gets the tracking id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackingId?: string;
  /** The correlation properties. */
  correlation?: RunActionCorrelation;
  /**
   * Gets the link to inputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputsLink?: ContentLink;
  /**
   * Gets the link to outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputsLink?: ContentLink;
  /**
   * Gets the tracked properties.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackedProperties?: Record<string, unknown>;
  /** Gets the retry histories. */
  retryHistory?: RetryHistory[];
}

/** The workflow trigger. */
export interface WorkflowTrigger extends SubResource {
  /**
   * Gets the workflow trigger name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the workflow trigger type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /**
   * Gets the provisioning state.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: WorkflowTriggerProvisioningState;
  /**
   * Gets the created time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdTime?: Date;
  /**
   * Gets the changed time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly changedTime?: Date;
  /**
   * Gets the state.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly state?: WorkflowState;
  /**
   * Gets the status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: WorkflowStatus;
  /**
   * Gets the last execution time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly lastExecutionTime?: Date;
  /**
   * Gets the next execution time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly nextExecutionTime?: Date;
  /**
   * Gets the workflow trigger recurrence.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly recurrence?: WorkflowTriggerRecurrence;
  /**
   * Gets the reference to workflow.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly workflow?: ResourceReference;
}

/** The workflow trigger history. */
export interface WorkflowTriggerHistory extends SubResource {
  /**
   * Gets the workflow trigger history name.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly name?: string;
  /**
   * Gets the workflow trigger history type.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly type?: string;
  /**
   * Gets the start time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly startTime?: Date;
  /**
   * Gets the end time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly endTime?: Date;
  /**
   * The scheduled time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly scheduledTime?: Date;
  /**
   * Gets the status.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly status?: WorkflowStatus;
  /**
   * Gets the code.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly code?: string;
  /**
   * Gets the error.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly error?: Record<string, unknown>;
  /**
   * Gets the tracking id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackingId?: string;
  /** The run correlation. */
  correlation?: Correlation;
  /**
   * Gets the link to input parameters.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputsLink?: ContentLink;
  /**
   * Gets the link to output parameters.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputsLink?: ContentLink;
  /**
   * The value indicating whether trigger was fired.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly fired?: boolean;
  /**
   * Gets the reference to workflow run.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly run?: ResourceReference;
}

/** The workflow run action correlation properties. */
export interface RunActionCorrelation extends RunCorrelation {
  /** The action tracking identifier. */
  actionTrackingId?: string;
}

/** The expression root. */
export interface ExpressionRoot extends Expression {
  /** The path. */
  path?: string;
}

/** The azure resource error info. */
export interface AzureResourceErrorInfo extends ErrorInfo {
  /** The error message. */
  message: string;
  /** The error details. */
  details?: AzureResourceErrorInfo[];
}

/** The operation result definition. */
export interface OperationResult extends OperationResultProperties {
  /**
   * Gets the tracking id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackingId?: string;
  /**
   * Gets the inputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputs?: Record<string, unknown>;
  /**
   * Gets the link to inputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputsLink?: ContentLink;
  /**
   * Gets the outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputs?: Record<string, unknown>;
  /**
   * Gets the link to outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputsLink?: ContentLink;
  /**
   * Gets the tracked properties.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackedProperties?: Record<string, unknown>;
  /** Gets the retry histories. */
  retryHistory?: RetryHistory[];
  iterationCount?: number;
}

/** The workflow run action repetition definition. */
export interface WorkflowRunActionRepetitionDefinition
  extends WorkflowResource {
  /** The start time of the workflow scope repetition. */
  startTime?: Date;
  /** The end time of the workflow scope repetition. */
  endTime?: Date;
  /** The correlation properties. */
  correlation?: RunActionCorrelation;
  /** The status of the workflow scope repetition. */
  status?: WorkflowStatus;
  /** The workflow scope repetition code. */
  code?: string;
  /** Anything */
  error?: any;
  /**
   * Gets the tracking id.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackingId?: string;
  /**
   * Gets the inputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputs?: Record<string, unknown>;
  /**
   * Gets the link to inputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly inputsLink?: ContentLink;
  /**
   * Gets the outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputs?: Record<string, unknown>;
  /**
   * Gets the link to outputs.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly outputsLink?: ContentLink;
  /**
   * Gets the tracked properties.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly trackedProperties?: Record<string, unknown>;
  /** Gets the retry histories. */
  retryHistory?: RetryHistory[];
  iterationCount?: number;
  /** The repetition indexes. */
  repetitionIndexes?: RepetitionIndex[];
}

/** The request history. */
export interface RequestHistory extends WorkflowResource {
  /** The request history properties. */
  properties?: RequestHistoryProperties;
}

/** The workflow type. */
export interface Workflow extends WorkflowResource {
  /** Managed service identity. */
  identity?: ManagedServiceIdentity;
  /**
   * Gets the provisioning state.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: WorkflowProvisioningState;
  /**
   * Gets the created time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdTime?: Date;
  /**
   * Gets the changed time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly changedTime?: Date;
  /** The state. */
  state?: WorkflowState;
  /**
   * Gets the version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly version?: string;
  /**
   * Gets the access endpoint.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly accessEndpoint?: string;
  /** The endpoints configuration. */
  endpointsConfiguration?: FlowEndpointsConfiguration;
  /** The access control configuration. */
  accessControl?: FlowAccessControlConfiguration;
  /**
   * The sku.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly sku?: WorkflowSku;
  /** The integration account. */
  integrationAccount?: ResourceReference;
  /** The integration service environment. */
  integrationServiceEnvironment?: ResourceReference;
  /** The definition. */
  definition?: Record<string, unknown>;
  /** The parameters. */
  parameters?: { [propertyName: string]: WorkflowParameter };
  /** The workflow kind. */
  kind?: Kind;
}

/** The workflow version. */
export interface WorkflowVersion extends WorkflowResource {
  /**
   * The provisioning state.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly provisioningState?: WorkflowProvisioningState;
  /**
   * Gets the created time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly createdTime?: Date;
  /**
   * Gets the changed time.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly changedTime?: Date;
  /** The state. */
  state?: WorkflowState;
  /**
   * Gets the version.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly version?: string;
  /**
   * Gets the access endpoint.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly accessEndpoint?: string;
  /** The endpoints configuration. */
  endpointsConfiguration?: FlowEndpointsConfiguration;
  /** The access control configuration. */
  accessControl?: FlowAccessControlConfiguration;
  /**
   * The sku.
   * NOTE: This property will not be serialized. It can only be populated by the server.
   */
  readonly sku?: WorkflowSku;
  /** The integration account. */
  integrationAccount?: ResourceReference;
  /** The definition. */
  definition?: Record<string, unknown>;
  /** The parameters. */
  parameters?: { [propertyName: string]: WorkflowParameter };
}

/** The workflow run action repetition properties definition. */
export interface WorkflowRunActionRepetitionProperties extends OperationResult {
  /** The repetition indexes. */
  repetitionIndexes?: RepetitionIndex[];
}

/** Defines headers for AppServiceEnvironments_createOrUpdate operation. */
export interface AppServiceEnvironmentsCreateOrUpdateHeaders {
  /** Location header for asynchronous response. */
  location?: string;
}

/** Known values of {@link ResourceNotRenewableReason} that the service accepts. */
export enum KnownResourceNotRenewableReason {
  /** RegistrationStatusNotSupportedForRenewal */
  RegistrationStatusNotSupportedForRenewal = "RegistrationStatusNotSupportedForRenewal",
  /** ExpirationNotInRenewalTimeRange */
  ExpirationNotInRenewalTimeRange = "ExpirationNotInRenewalTimeRange",
  /** SubscriptionNotActive */
  SubscriptionNotActive = "SubscriptionNotActive"
}

/**
 * Defines values for ResourceNotRenewableReason. \
 * {@link KnownResourceNotRenewableReason} can be used interchangeably with ResourceNotRenewableReason,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **RegistrationStatusNotSupportedForRenewal** \
 * **ExpirationNotInRenewalTimeRange** \
 * **SubscriptionNotActive**
 */
export type ResourceNotRenewableReason = string;

/** Known values of {@link LoadBalancingMode} that the service accepts. */
export enum KnownLoadBalancingMode {
  /** None */
  None = "None",
  /** Web */
  Web = "Web",
  /** Publishing */
  Publishing = "Publishing",
  /** WebPublishing */
  WebPublishing = "Web, Publishing"
}

/**
 * Defines values for LoadBalancingMode. \
 * {@link KnownLoadBalancingMode} can be used interchangeably with LoadBalancingMode,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **None** \
 * **Web** \
 * **Publishing** \
 * **Web, Publishing**
 */
export type LoadBalancingMode = string;

/** Known values of {@link UpgradePreference} that the service accepts. */
export enum KnownUpgradePreference {
  /** No preference on when this App Service Environment will be upgraded */
  None = "None",
  /** This App Service Environment will be upgraded before others in the same region that have Upgrade Preference 'Late' */
  Early = "Early",
  /** This App Service Environment will be upgraded after others in the same region that have Upgrade Preference 'Early' */
  Late = "Late",
  /** ASEv3 only. Once an upgrade is available, this App Service Environment will wait 10 days for the upgrade to be manually initiated. After 10 days the upgrade will begin automatically */
  Manual = "Manual"
}

/**
 * Defines values for UpgradePreference. \
 * {@link KnownUpgradePreference} can be used interchangeably with UpgradePreference,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **None**: No preference on when this App Service Environment will be upgraded \
 * **Early**: This App Service Environment will be upgraded before others in the same region that have Upgrade Preference 'Late' \
 * **Late**: This App Service Environment will be upgraded after others in the same region that have Upgrade Preference 'Early' \
 * **Manual**: ASEv3 only. Once an upgrade is available, this App Service Environment will wait 10 days for the upgrade to be manually initiated. After 10 days the upgrade will begin automatically
 */
export type UpgradePreference = string;

/** Known values of {@link UpgradeAvailability} that the service accepts. */
export enum KnownUpgradeAvailability {
  /** No upgrade is currently available for this App Service Environment */
  None = "None",
  /** An upgrade is ready to be manually initiated on this App Service Environment */
  Ready = "Ready"
}

/**
 * Defines values for UpgradeAvailability. \
 * {@link KnownUpgradeAvailability} can be used interchangeably with UpgradeAvailability,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **None**: No upgrade is currently available for this App Service Environment \
 * **Ready**: An upgrade is ready to be manually initiated on this App Service Environment
 */
export type UpgradeAvailability = string;

/** Known values of {@link ScmType} that the service accepts. */
export enum KnownScmType {
  /** None */
  None = "None",
  /** Dropbox */
  Dropbox = "Dropbox",
  /** Tfs */
  Tfs = "Tfs",
  /** LocalGit */
  LocalGit = "LocalGit",
  /** GitHub */
  GitHub = "GitHub",
  /** CodePlexGit */
  CodePlexGit = "CodePlexGit",
  /** CodePlexHg */
  CodePlexHg = "CodePlexHg",
  /** BitbucketGit */
  BitbucketGit = "BitbucketGit",
  /** BitbucketHg */
  BitbucketHg = "BitbucketHg",
  /** ExternalGit */
  ExternalGit = "ExternalGit",
  /** ExternalHg */
  ExternalHg = "ExternalHg",
  /** OneDrive */
  OneDrive = "OneDrive",
  /** VSO */
  VSO = "VSO",
  /** Vstsrm */
  Vstsrm = "VSTSRM"
}

/**
 * Defines values for ScmType. \
 * {@link KnownScmType} can be used interchangeably with ScmType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **None** \
 * **Dropbox** \
 * **Tfs** \
 * **LocalGit** \
 * **GitHub** \
 * **CodePlexGit** \
 * **CodePlexHg** \
 * **BitbucketGit** \
 * **BitbucketHg** \
 * **ExternalGit** \
 * **ExternalHg** \
 * **OneDrive** \
 * **VSO** \
 * **VSTSRM**
 */
export type ScmType = string;

/** Known values of {@link IpFilterTag} that the service accepts. */
export enum KnownIpFilterTag {
  /** Default */
  Default = "Default",
  /** XffProxy */
  XffProxy = "XffProxy",
  /** ServiceTag */
  ServiceTag = "ServiceTag"
}

/**
 * Defines values for IpFilterTag. \
 * {@link KnownIpFilterTag} can be used interchangeably with IpFilterTag,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Default** \
 * **XffProxy** \
 * **ServiceTag**
 */
export type IpFilterTag = string;

/** Known values of {@link DefaultAction} that the service accepts. */
export enum KnownDefaultAction {
  /** Allow */
  Allow = "Allow",
  /** Deny */
  Deny = "Deny"
}

/**
 * Defines values for DefaultAction. \
 * {@link KnownDefaultAction} can be used interchangeably with DefaultAction,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Allow** \
 * **Deny**
 */
export type DefaultAction = string;

/** Known values of {@link SupportedTlsVersions} that the service accepts. */
export enum KnownSupportedTlsVersions {
  /** One0 */
  One0 = "1.0",
  /** One1 */
  One1 = "1.1",
  /** One2 */
  One2 = "1.2"
}

/**
 * Defines values for SupportedTlsVersions. \
 * {@link KnownSupportedTlsVersions} can be used interchangeably with SupportedTlsVersions,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **1.0** \
 * **1.1** \
 * **1.2**
 */
export type SupportedTlsVersions = string;

/** Known values of {@link TlsCipherSuites} that the service accepts. */
export enum KnownTlsCipherSuites {
  /** TLSAES256GCMSHA384 */
  TLSAES256GCMSHA384 = "TLS_AES_256_GCM_SHA384",
  /** TLSAES128GCMSHA256 */
  TLSAES128GCMSHA256 = "TLS_AES_128_GCM_SHA256",
  /** TLSEcdheEcdsaWithAES256GCMSHA384 */
  TLSEcdheEcdsaWithAES256GCMSHA384 = "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
  /** TLSEcdheEcdsaWithAES128CBCSHA256 */
  TLSEcdheEcdsaWithAES128CBCSHA256 = "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256",
  /** TLSEcdheEcdsaWithAES128GCMSHA256 */
  TLSEcdheEcdsaWithAES128GCMSHA256 = "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
  /** TLSEcdheRSAWithAES256GCMSHA384 */
  TLSEcdheRSAWithAES256GCMSHA384 = "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
  /** TLSEcdheRSAWithAES128GCMSHA256 */
  TLSEcdheRSAWithAES128GCMSHA256 = "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
  /** TLSEcdheRSAWithAES256CBCSHA384 */
  TLSEcdheRSAWithAES256CBCSHA384 = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384",
  /** TLSEcdheRSAWithAES128CBCSHA256 */
  TLSEcdheRSAWithAES128CBCSHA256 = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256",
  /** TLSEcdheRSAWithAES256CBCSHA */
  TLSEcdheRSAWithAES256CBCSHA = "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
  /** TLSEcdheRSAWithAES128CBCSHA */
  TLSEcdheRSAWithAES128CBCSHA = "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
  /** TLSRSAWithAES256GCMSHA384 */
  TLSRSAWithAES256GCMSHA384 = "TLS_RSA_WITH_AES_256_GCM_SHA384",
  /** TLSRSAWithAES128GCMSHA256 */
  TLSRSAWithAES128GCMSHA256 = "TLS_RSA_WITH_AES_128_GCM_SHA256",
  /** TLSRSAWithAES256CBCSHA256 */
  TLSRSAWithAES256CBCSHA256 = "TLS_RSA_WITH_AES_256_CBC_SHA256",
  /** TLSRSAWithAES128CBCSHA256 */
  TLSRSAWithAES128CBCSHA256 = "TLS_RSA_WITH_AES_128_CBC_SHA256",
  /** TLSRSAWithAES256CBCSHA */
  TLSRSAWithAES256CBCSHA = "TLS_RSA_WITH_AES_256_CBC_SHA",
  /** TLSRSAWithAES128CBCSHA */
  TLSRSAWithAES128CBCSHA = "TLS_RSA_WITH_AES_128_CBC_SHA"
}

/**
 * Defines values for TlsCipherSuites. \
 * {@link KnownTlsCipherSuites} can be used interchangeably with TlsCipherSuites,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **TLS_AES_256_GCM_SHA384** \
 * **TLS_AES_128_GCM_SHA256** \
 * **TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384** \
 * **TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256** \
 * **TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256** \
 * **TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384** \
 * **TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256** \
 * **TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384** \
 * **TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256** \
 * **TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA** \
 * **TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA** \
 * **TLS_RSA_WITH_AES_256_GCM_SHA384** \
 * **TLS_RSA_WITH_AES_128_GCM_SHA256** \
 * **TLS_RSA_WITH_AES_256_CBC_SHA256** \
 * **TLS_RSA_WITH_AES_128_CBC_SHA256** \
 * **TLS_RSA_WITH_AES_256_CBC_SHA** \
 * **TLS_RSA_WITH_AES_128_CBC_SHA**
 */
export type TlsCipherSuites = string;

/** Known values of {@link FtpsState} that the service accepts. */
export enum KnownFtpsState {
  /** AllAllowed */
  AllAllowed = "AllAllowed",
  /** FtpsOnly */
  FtpsOnly = "FtpsOnly",
  /** Disabled */
  Disabled = "Disabled"
}

/**
 * Defines values for FtpsState. \
 * {@link KnownFtpsState} can be used interchangeably with FtpsState,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **AllAllowed** \
 * **FtpsOnly** \
 * **Disabled**
 */
export type FtpsState = string;

/** Known values of {@link DaprLogLevel} that the service accepts. */
export enum KnownDaprLogLevel {
  /** Info */
  Info = "info",
  /** Debug */
  Debug = "debug",
  /** Warn */
  Warn = "warn",
  /** Error */
  Error = "error"
}

/**
 * Defines values for DaprLogLevel. \
 * {@link KnownDaprLogLevel} can be used interchangeably with DaprLogLevel,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **info** \
 * **debug** \
 * **warn** \
 * **error**
 */
export type DaprLogLevel = string;

/** Known values of {@link RouteType} that the service accepts. */
export enum KnownRouteType {
  /** Default */
  Default = "DEFAULT",
  /** Inherited */
  Inherited = "INHERITED",
  /** Static */
  Static = "STATIC"
}

/**
 * Defines values for RouteType. \
 * {@link KnownRouteType} can be used interchangeably with RouteType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **DEFAULT** \
 * **INHERITED** \
 * **STATIC**
 */
export type RouteType = string;

/** Known values of {@link ContainerAppProvisioningState} that the service accepts. */
export enum KnownContainerAppProvisioningState {
  /** InProgress */
  InProgress = "InProgress",
  /** Succeeded */
  Succeeded = "Succeeded",
  /** Failed */
  Failed = "Failed",
  /** Canceled */
  Canceled = "Canceled"
}

/**
 * Defines values for ContainerAppProvisioningState. \
 * {@link KnownContainerAppProvisioningState} can be used interchangeably with ContainerAppProvisioningState,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **InProgress** \
 * **Succeeded** \
 * **Failed** \
 * **Canceled**
 */
export type ContainerAppProvisioningState = string;

/** Known values of {@link ActiveRevisionsMode} that the service accepts. */
export enum KnownActiveRevisionsMode {
  /** Multiple */
  Multiple = "multiple",
  /** Single */
  Single = "single"
}

/**
 * Defines values for ActiveRevisionsMode. \
 * {@link KnownActiveRevisionsMode} can be used interchangeably with ActiveRevisionsMode,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **multiple** \
 * **single**
 */
export type ActiveRevisionsMode = string;

/** Known values of {@link IngressTransportMethod} that the service accepts. */
export enum KnownIngressTransportMethod {
  /** Auto */
  Auto = "auto",
  /** Http */
  Http = "http",
  /** Http2 */
  Http2 = "http2"
}

/**
 * Defines values for IngressTransportMethod. \
 * {@link KnownIngressTransportMethod} can be used interchangeably with IngressTransportMethod,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **auto** \
 * **http** \
 * **http2**
 */
export type IngressTransportMethod = string;

/** Known values of {@link RevisionHealthState} that the service accepts. */
export enum KnownRevisionHealthState {
  /** Healthy */
  Healthy = "Healthy",
  /** Unhealthy */
  Unhealthy = "Unhealthy",
  /** None */
  None = "None"
}

/**
 * Defines values for RevisionHealthState. \
 * {@link KnownRevisionHealthState} can be used interchangeably with RevisionHealthState,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Healthy** \
 * **Unhealthy** \
 * **None**
 */
export type RevisionHealthState = string;

/** Known values of {@link RevisionProvisioningState} that the service accepts. */
export enum KnownRevisionProvisioningState {
  /** Provisioning */
  Provisioning = "Provisioning",
  /** Provisioned */
  Provisioned = "Provisioned",
  /** Failed */
  Failed = "Failed",
  /** Deprovisioning */
  Deprovisioning = "Deprovisioning",
  /** Deprovisioned */
  Deprovisioned = "Deprovisioned"
}

/**
 * Defines values for RevisionProvisioningState. \
 * {@link KnownRevisionProvisioningState} can be used interchangeably with RevisionProvisioningState,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Provisioning** \
 * **Provisioned** \
 * **Failed** \
 * **Deprovisioning** \
 * **Deprovisioned**
 */
export type RevisionProvisioningState = string;

/** Known values of {@link ProviderOsTypeSelected} that the service accepts. */
export enum KnownProviderOsTypeSelected {
  /** Windows */
  Windows = "Windows",
  /** Linux */
  Linux = "Linux",
  /** WindowsFunctions */
  WindowsFunctions = "WindowsFunctions",
  /** LinuxFunctions */
  LinuxFunctions = "LinuxFunctions",
  /** All */
  All = "All"
}

/**
 * Defines values for ProviderOsTypeSelected. \
 * {@link KnownProviderOsTypeSelected} can be used interchangeably with ProviderOsTypeSelected,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Windows** \
 * **Linux** \
 * **WindowsFunctions** \
 * **LinuxFunctions** \
 * **All**
 */
export type ProviderOsTypeSelected = string;

/** Known values of {@link ProviderStackOsType} that the service accepts. */
export enum KnownProviderStackOsType {
  /** Windows */
  Windows = "Windows",
  /** Linux */
  Linux = "Linux",
  /** All */
  All = "All"
}

/**
 * Defines values for ProviderStackOsType. \
 * {@link KnownProviderStackOsType} can be used interchangeably with ProviderStackOsType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Windows** \
 * **Linux** \
 * **All**
 */
export type ProviderStackOsType = string;

/** Known values of {@link ResourceScopeType} that the service accepts. */
export enum KnownResourceScopeType {
  /** ServerFarm */
  ServerFarm = "ServerFarm",
  /** Subscription */
  Subscription = "Subscription",
  /** WebSite */
  WebSite = "WebSite"
}

/**
 * Defines values for ResourceScopeType. \
 * {@link KnownResourceScopeType} can be used interchangeably with ResourceScopeType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **ServerFarm** \
 * **Subscription** \
 * **WebSite**
 */
export type ResourceScopeType = string;

/** Known values of {@link CheckNameResourceTypes} that the service accepts. */
export enum KnownCheckNameResourceTypes {
  /** Site */
  Site = "Site",
  /** Slot */
  Slot = "Slot",
  /** HostingEnvironment */
  HostingEnvironment = "HostingEnvironment",
  /** PublishingUser */
  PublishingUser = "PublishingUser",
  /** MicrosoftWebSites */
  MicrosoftWebSites = "Microsoft.Web/sites",
  /** MicrosoftWebSitesSlots */
  MicrosoftWebSitesSlots = "Microsoft.Web/sites/slots",
  /** MicrosoftWebHostingEnvironments */
  MicrosoftWebHostingEnvironments = "Microsoft.Web/hostingEnvironments",
  /** MicrosoftWebPublishingUsers */
  MicrosoftWebPublishingUsers = "Microsoft.Web/publishingUsers"
}

/**
 * Defines values for CheckNameResourceTypes. \
 * {@link KnownCheckNameResourceTypes} can be used interchangeably with CheckNameResourceTypes,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Site** \
 * **Slot** \
 * **HostingEnvironment** \
 * **PublishingUser** \
 * **Microsoft.Web\/sites** \
 * **Microsoft.Web\/sites\/slots** \
 * **Microsoft.Web\/hostingEnvironments** \
 * **Microsoft.Web\/publishingUsers**
 */
export type CheckNameResourceTypes = string;

/** Known values of {@link InAvailabilityReasonType} that the service accepts. */
export enum KnownInAvailabilityReasonType {
  /** Invalid */
  Invalid = "Invalid",
  /** AlreadyExists */
  AlreadyExists = "AlreadyExists"
}

/**
 * Defines values for InAvailabilityReasonType. \
 * {@link KnownInAvailabilityReasonType} can be used interchangeably with InAvailabilityReasonType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Invalid** \
 * **AlreadyExists**
 */
export type InAvailabilityReasonType = string;

/** Known values of {@link SkuName} that the service accepts. */
export enum KnownSkuName {
  /** Free */
  Free = "Free",
  /** Shared */
  Shared = "Shared",
  /** Basic */
  Basic = "Basic",
  /** Standard */
  Standard = "Standard",
  /** Premium */
  Premium = "Premium",
  /** Dynamic */
  Dynamic = "Dynamic",
  /** Isolated */
  Isolated = "Isolated",
  /** IsolatedV2 */
  IsolatedV2 = "IsolatedV2",
  /** PremiumV2 */
  PremiumV2 = "PremiumV2",
  /** PremiumV3 */
  PremiumV3 = "PremiumV3",
  /** PremiumContainer */
  PremiumContainer = "PremiumContainer",
  /** ElasticPremium */
  ElasticPremium = "ElasticPremium",
  /** ElasticIsolated */
  ElasticIsolated = "ElasticIsolated"
}

/**
 * Defines values for SkuName. \
 * {@link KnownSkuName} can be used interchangeably with SkuName,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Free** \
 * **Shared** \
 * **Basic** \
 * **Standard** \
 * **Premium** \
 * **Dynamic** \
 * **Isolated** \
 * **IsolatedV2** \
 * **PremiumV2** \
 * **PremiumV3** \
 * **PremiumContainer** \
 * **ElasticPremium** \
 * **ElasticIsolated**
 */
export type SkuName = string;

/** Known values of {@link ValidateResourceTypes} that the service accepts. */
export enum KnownValidateResourceTypes {
  /** ServerFarm */
  ServerFarm = "ServerFarm",
  /** Site */
  Site = "Site",
  /** MicrosoftWebHostingEnvironments */
  MicrosoftWebHostingEnvironments = "Microsoft.Web/hostingEnvironments"
}

/**
 * Defines values for ValidateResourceTypes. \
 * {@link KnownValidateResourceTypes} can be used interchangeably with ValidateResourceTypes,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **ServerFarm** \
 * **Site** \
 * **Microsoft.Web\/hostingEnvironments**
 */
export type ValidateResourceTypes = string;

/** Known values of {@link EnterpriseGradeCdnStatus} that the service accepts. */
export enum KnownEnterpriseGradeCdnStatus {
  /** Enabled */
  Enabled = "Enabled",
  /** Enabling */
  Enabling = "Enabling",
  /** Disabled */
  Disabled = "Disabled",
  /** Disabling */
  Disabling = "Disabling"
}

/**
 * Defines values for EnterpriseGradeCdnStatus. \
 * {@link KnownEnterpriseGradeCdnStatus} can be used interchangeably with EnterpriseGradeCdnStatus,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Enabled** \
 * **Enabling** \
 * **Disabled** \
 * **Disabling**
 */
export type EnterpriseGradeCdnStatus = string;

/** Known values of {@link BuildStatus} that the service accepts. */
export enum KnownBuildStatus {
  /** WaitingForDeployment */
  WaitingForDeployment = "WaitingForDeployment",
  /** Uploading */
  Uploading = "Uploading",
  /** Deploying */
  Deploying = "Deploying",
  /** Ready */
  Ready = "Ready",
  /** Failed */
  Failed = "Failed",
  /** Deleting */
  Deleting = "Deleting",
  /** Detached */
  Detached = "Detached"
}

/**
 * Defines values for BuildStatus. \
 * {@link KnownBuildStatus} can be used interchangeably with BuildStatus,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **WaitingForDeployment** \
 * **Uploading** \
 * **Deploying** \
 * **Ready** \
 * **Failed** \
 * **Deleting** \
 * **Detached**
 */
export type BuildStatus = string;

/** Known values of {@link TriggerTypes} that the service accepts. */
export enum KnownTriggerTypes {
  /** HttpTrigger */
  HttpTrigger = "HttpTrigger",
  /** Unknown */
  Unknown = "Unknown"
}

/**
 * Defines values for TriggerTypes. \
 * {@link KnownTriggerTypes} can be used interchangeably with TriggerTypes,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **HttpTrigger** \
 * **Unknown**
 */
export type TriggerTypes = string;

/** Known values of {@link BasicAuthName} that the service accepts. */
export enum KnownBasicAuthName {
  /** Default */
  Default = "default"
}

/**
 * Defines values for BasicAuthName. \
 * {@link KnownBasicAuthName} can be used interchangeably with BasicAuthName,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **default**
 */
export type BasicAuthName = string;

/** Known values of {@link CustomDomainStatus} that the service accepts. */
export enum KnownCustomDomainStatus {
  /** RetrievingValidationToken */
  RetrievingValidationToken = "RetrievingValidationToken",
  /** Validating */
  Validating = "Validating",
  /** Adding */
  Adding = "Adding",
  /** Ready */
  Ready = "Ready",
  /** Failed */
  Failed = "Failed",
  /** Deleting */
  Deleting = "Deleting",
  /** Unhealthy */
  Unhealthy = "Unhealthy"
}

/**
 * Defines values for CustomDomainStatus. \
 * {@link KnownCustomDomainStatus} can be used interchangeably with CustomDomainStatus,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **RetrievingValidationToken** \
 * **Validating** \
 * **Adding** \
 * **Ready** \
 * **Failed** \
 * **Deleting** \
 * **Unhealthy**
 */
export type CustomDomainStatus = string;

/** Known values of {@link DatabaseType} that the service accepts. */
export enum KnownDatabaseType {
  /** SqlAzure */
  SqlAzure = "SqlAzure",
  /** MySql */
  MySql = "MySql",
  /** LocalMySql */
  LocalMySql = "LocalMySql",
  /** PostgreSql */
  PostgreSql = "PostgreSql"
}

/**
 * Defines values for DatabaseType. \
 * {@link KnownDatabaseType} can be used interchangeably with DatabaseType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **SqlAzure** \
 * **MySql** \
 * **LocalMySql** \
 * **PostgreSql**
 */
export type DatabaseType = string;

/** Known values of {@link DeploymentBuildStatus} that the service accepts. */
export enum KnownDeploymentBuildStatus {
  /** TimedOut */
  TimedOut = "TimedOut",
  /** RuntimeFailed */
  RuntimeFailed = "RuntimeFailed",
  /** BuildAborted */
  BuildAborted = "BuildAborted",
  /** BuildFailed */
  BuildFailed = "BuildFailed",
  /** BuildRequestReceived */
  BuildRequestReceived = "BuildRequestReceived",
  /** BuildPending */
  BuildPending = "BuildPending",
  /** BuildInProgress */
  BuildInProgress = "BuildInProgress",
  /** BuildSuccessful */
  BuildSuccessful = "BuildSuccessful",
  /** PostBuildRestartRequired */
  PostBuildRestartRequired = "PostBuildRestartRequired",
  /** StartPolling */
  StartPolling = "StartPolling",
  /** StartPollingWithRestart */
  StartPollingWithRestart = "StartPollingWithRestart",
  /** RuntimeStarting */
  RuntimeStarting = "RuntimeStarting",
  /** RuntimeSuccessful */
  RuntimeSuccessful = "RuntimeSuccessful"
}

/**
 * Defines values for DeploymentBuildStatus. \
 * {@link KnownDeploymentBuildStatus} can be used interchangeably with DeploymentBuildStatus,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **TimedOut** \
 * **RuntimeFailed** \
 * **BuildAborted** \
 * **BuildFailed** \
 * **BuildRequestReceived** \
 * **BuildPending** \
 * **BuildInProgress** \
 * **BuildSuccessful** \
 * **PostBuildRestartRequired** \
 * **StartPolling** \
 * **StartPollingWithRestart** \
 * **RuntimeStarting** \
 * **RuntimeSuccessful**
 */
export type DeploymentBuildStatus = string;

/** Known values of {@link PublishingProfileFormat} that the service accepts. */
export enum KnownPublishingProfileFormat {
  /** FileZilla3 */
  FileZilla3 = "FileZilla3",
  /** WebDeploy */
  WebDeploy = "WebDeploy",
  /** Ftp */
  Ftp = "Ftp"
}

/**
 * Defines values for PublishingProfileFormat. \
 * {@link KnownPublishingProfileFormat} can be used interchangeably with PublishingProfileFormat,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **FileZilla3** \
 * **WebDeploy** \
 * **Ftp**
 */
export type PublishingProfileFormat = string;

/** Known values of {@link WorkflowState} that the service accepts. */
export enum KnownWorkflowState {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** Completed */
  Completed = "Completed",
  /** Enabled */
  Enabled = "Enabled",
  /** Disabled */
  Disabled = "Disabled",
  /** Deleted */
  Deleted = "Deleted",
  /** Suspended */
  Suspended = "Suspended"
}

/**
 * Defines values for WorkflowState. \
 * {@link KnownWorkflowState} can be used interchangeably with WorkflowState,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **Completed** \
 * **Enabled** \
 * **Disabled** \
 * **Deleted** \
 * **Suspended**
 */
export type WorkflowState = string;

/** Known values of {@link KeyType} that the service accepts. */
export enum KnownKeyType {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** Primary */
  Primary = "Primary",
  /** Secondary */
  Secondary = "Secondary"
}

/**
 * Defines values for KeyType. \
 * {@link KnownKeyType} can be used interchangeably with KeyType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **Primary** \
 * **Secondary**
 */
export type KeyType = string;

/** Known values of {@link WorkflowStatus} that the service accepts. */
export enum KnownWorkflowStatus {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** Paused */
  Paused = "Paused",
  /** Running */
  Running = "Running",
  /** Waiting */
  Waiting = "Waiting",
  /** Succeeded */
  Succeeded = "Succeeded",
  /** Skipped */
  Skipped = "Skipped",
  /** Suspended */
  Suspended = "Suspended",
  /** Cancelled */
  Cancelled = "Cancelled",
  /** Failed */
  Failed = "Failed",
  /** Faulted */
  Faulted = "Faulted",
  /** TimedOut */
  TimedOut = "TimedOut",
  /** Aborted */
  Aborted = "Aborted",
  /** Ignored */
  Ignored = "Ignored"
}

/**
 * Defines values for WorkflowStatus. \
 * {@link KnownWorkflowStatus} can be used interchangeably with WorkflowStatus,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **Paused** \
 * **Running** \
 * **Waiting** \
 * **Succeeded** \
 * **Skipped** \
 * **Suspended** \
 * **Cancelled** \
 * **Failed** \
 * **Faulted** \
 * **TimedOut** \
 * **Aborted** \
 * **Ignored**
 */
export type WorkflowStatus = string;

/** Known values of {@link ParameterType} that the service accepts. */
export enum KnownParameterType {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** String */
  String = "String",
  /** SecureString */
  SecureString = "SecureString",
  /** Int */
  Int = "Int",
  /** Float */
  Float = "Float",
  /** Bool */
  Bool = "Bool",
  /** Array */
  Array = "Array",
  /** Object */
  Object = "Object",
  /** SecureObject */
  SecureObject = "SecureObject"
}

/**
 * Defines values for ParameterType. \
 * {@link KnownParameterType} can be used interchangeably with ParameterType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **String** \
 * **SecureString** \
 * **Int** \
 * **Float** \
 * **Bool** \
 * **Array** \
 * **Object** \
 * **SecureObject**
 */
export type ParameterType = string;

/** Known values of {@link WorkflowTriggerProvisioningState} that the service accepts. */
export enum KnownWorkflowTriggerProvisioningState {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** Accepted */
  Accepted = "Accepted",
  /** Running */
  Running = "Running",
  /** Ready */
  Ready = "Ready",
  /** Creating */
  Creating = "Creating",
  /** Created */
  Created = "Created",
  /** Deleting */
  Deleting = "Deleting",
  /** Deleted */
  Deleted = "Deleted",
  /** Canceled */
  Canceled = "Canceled",
  /** Failed */
  Failed = "Failed",
  /** Succeeded */
  Succeeded = "Succeeded",
  /** Moving */
  Moving = "Moving",
  /** Updating */
  Updating = "Updating",
  /** Registering */
  Registering = "Registering",
  /** Registered */
  Registered = "Registered",
  /** Unregistering */
  Unregistering = "Unregistering",
  /** Unregistered */
  Unregistered = "Unregistered",
  /** Completed */
  Completed = "Completed"
}

/**
 * Defines values for WorkflowTriggerProvisioningState. \
 * {@link KnownWorkflowTriggerProvisioningState} can be used interchangeably with WorkflowTriggerProvisioningState,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **Accepted** \
 * **Running** \
 * **Ready** \
 * **Creating** \
 * **Created** \
 * **Deleting** \
 * **Deleted** \
 * **Canceled** \
 * **Failed** \
 * **Succeeded** \
 * **Moving** \
 * **Updating** \
 * **Registering** \
 * **Registered** \
 * **Unregistering** \
 * **Unregistered** \
 * **Completed**
 */
export type WorkflowTriggerProvisioningState = string;

/** Known values of {@link RecurrenceFrequency} that the service accepts. */
export enum KnownRecurrenceFrequency {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** Second */
  Second = "Second",
  /** Minute */
  Minute = "Minute",
  /** Hour */
  Hour = "Hour",
  /** Day */
  Day = "Day",
  /** Week */
  Week = "Week",
  /** Month */
  Month = "Month",
  /** Year */
  Year = "Year"
}

/**
 * Defines values for RecurrenceFrequency. \
 * {@link KnownRecurrenceFrequency} can be used interchangeably with RecurrenceFrequency,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **Second** \
 * **Minute** \
 * **Hour** \
 * **Day** \
 * **Week** \
 * **Month** \
 * **Year**
 */
export type RecurrenceFrequency = string;

/** Known values of {@link WorkflowProvisioningState} that the service accepts. */
export enum KnownWorkflowProvisioningState {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** Accepted */
  Accepted = "Accepted",
  /** Running */
  Running = "Running",
  /** Ready */
  Ready = "Ready",
  /** Creating */
  Creating = "Creating",
  /** Created */
  Created = "Created",
  /** Deleting */
  Deleting = "Deleting",
  /** Deleted */
  Deleted = "Deleted",
  /** Canceled */
  Canceled = "Canceled",
  /** Failed */
  Failed = "Failed",
  /** Succeeded */
  Succeeded = "Succeeded",
  /** Moving */
  Moving = "Moving",
  /** Updating */
  Updating = "Updating",
  /** Registering */
  Registering = "Registering",
  /** Registered */
  Registered = "Registered",
  /** Unregistering */
  Unregistering = "Unregistering",
  /** Unregistered */
  Unregistered = "Unregistered",
  /** Completed */
  Completed = "Completed",
  /** Renewing */
  Renewing = "Renewing",
  /** Pending */
  Pending = "Pending",
  /** Waiting */
  Waiting = "Waiting",
  /** InProgress */
  InProgress = "InProgress"
}

/**
 * Defines values for WorkflowProvisioningState. \
 * {@link KnownWorkflowProvisioningState} can be used interchangeably with WorkflowProvisioningState,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **Accepted** \
 * **Running** \
 * **Ready** \
 * **Creating** \
 * **Created** \
 * **Deleting** \
 * **Deleted** \
 * **Canceled** \
 * **Failed** \
 * **Succeeded** \
 * **Moving** \
 * **Updating** \
 * **Registering** \
 * **Registered** \
 * **Unregistering** \
 * **Unregistered** \
 * **Completed** \
 * **Renewing** \
 * **Pending** \
 * **Waiting** \
 * **InProgress**
 */
export type WorkflowProvisioningState = string;

/** Known values of {@link OpenAuthenticationProviderType} that the service accepts. */
export enum KnownOpenAuthenticationProviderType {
  /** AAD */
  AAD = "AAD"
}

/**
 * Defines values for OpenAuthenticationProviderType. \
 * {@link KnownOpenAuthenticationProviderType} can be used interchangeably with OpenAuthenticationProviderType,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **AAD**
 */
export type OpenAuthenticationProviderType = string;

/** Known values of {@link WorkflowSkuName} that the service accepts. */
export enum KnownWorkflowSkuName {
  /** NotSpecified */
  NotSpecified = "NotSpecified",
  /** Free */
  Free = "Free",
  /** Shared */
  Shared = "Shared",
  /** Basic */
  Basic = "Basic",
  /** Standard */
  Standard = "Standard",
  /** Premium */
  Premium = "Premium"
}

/**
 * Defines values for WorkflowSkuName. \
 * {@link KnownWorkflowSkuName} can be used interchangeably with WorkflowSkuName,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **NotSpecified** \
 * **Free** \
 * **Shared** \
 * **Basic** \
 * **Standard** \
 * **Premium**
 */
export type WorkflowSkuName = string;

/** Known values of {@link Kind} that the service accepts. */
export enum KnownKind {
  /** Stateful */
  Stateful = "Stateful",
  /** Stateless */
  Stateless = "Stateless"
}

/**
 * Defines values for Kind. \
 * {@link KnownKind} can be used interchangeably with Kind,
 *  this enum contains the known values that the service supports.
 * ### Known values supported by the service
 * **Stateful** \
 * **Stateless**
 */
export type Kind = string;
/** Defines values for KeyVaultSecretStatus. */
export type KeyVaultSecretStatus =
  | "Initialized"
  | "WaitingOnCertificateOrder"
  | "Succeeded"
  | "CertificateOrderFailed"
  | "OperationNotPermittedOnKeyVault"
  | "AzureServiceUnauthorizedToAccessKeyVault"
  | "KeyVaultDoesNotExist"
  | "KeyVaultSecretDoesNotExist"
  | "UnknownError"
  | "ExternalPrivateKey"
  | "Unknown";
/** Defines values for CertificateProductType. */
export type CertificateProductType =
  | "StandardDomainValidatedSsl"
  | "StandardDomainValidatedWildCardSsl";
/** Defines values for ProvisioningState. */
export type ProvisioningState =
  | "Succeeded"
  | "Failed"
  | "Canceled"
  | "InProgress"
  | "Deleting";
/** Defines values for CertificateOrderStatus. */
export type CertificateOrderStatus =
  | "Pendingissuance"
  | "Issued"
  | "Revoked"
  | "Canceled"
  | "Denied"
  | "Pendingrevocation"
  | "PendingRekey"
  | "Unused"
  | "Expired"
  | "NotSubmitted";
/** Defines values for CertificateOrderActionType. */
export type CertificateOrderActionType =
  | "CertificateIssued"
  | "CertificateOrderCanceled"
  | "CertificateOrderCreated"
  | "CertificateRevoked"
  | "DomainValidationComplete"
  | "FraudDetected"
  | "OrgNameChange"
  | "OrgValidationComplete"
  | "SanDrop"
  | "FraudCleared"
  | "CertificateExpired"
  | "CertificateExpirationWarning"
  | "FraudDocumentationRequired"
  | "Unknown";
/** Defines values for DetectorType. */
export type DetectorType = "Detector" | "Analysis" | "CategoryOverview";
/** Defines values for RenderingType. */
export type RenderingType =
  | "NoGraph"
  | "Table"
  | "TimeSeries"
  | "TimeSeriesPerInstance"
  | "PieChart"
  | "DataSummary"
  | "Email"
  | "Insights"
  | "DynamicInsight"
  | "Markdown"
  | "Detector"
  | "DropDown"
  | "Card"
  | "Solution"
  | "Guage"
  | "Form"
  | "ChangeSets"
  | "ChangeAnalysisOnboarding"
  | "ChangesView"
  | "AppInsight"
  | "DependencyGraph"
  | "DownTime"
  | "SummaryCard"
  | "SearchComponent"
  | "AppInsightEnablement";
/** Defines values for InsightStatus. */
export type InsightStatus =
  | "Critical"
  | "Warning"
  | "Info"
  | "Success"
  | "None";
/** Defines values for DomainType. */
export type DomainType = "Regular" | "SoftDeleted";
/** Defines values for DomainStatus. */
export type DomainStatus =
  | "Active"
  | "Awaiting"
  | "Cancelled"
  | "Confiscated"
  | "Disabled"
  | "Excluded"
  | "Expired"
  | "Failed"
  | "Held"
  | "Locked"
  | "Parked"
  | "Pending"
  | "Reserved"
  | "Reverted"
  | "Suspended"
  | "Transferred"
  | "Unknown"
  | "Unlocked"
  | "Unparked"
  | "Updated"
  | "JsonConverterFailed";
/** Defines values for AzureResourceType. */
export type AzureResourceType = "Website" | "TrafficManager";
/** Defines values for CustomHostNameDnsRecordType. */
export type CustomHostNameDnsRecordType = "CName" | "A";
/** Defines values for HostNameType. */
export type HostNameType = "Verified" | "Managed";
/** Defines values for DnsType. */
export type DnsType = "AzureDns" | "DefaultDomainRegistrarDns";
/** Defines values for HostingEnvironmentStatus. */
export type HostingEnvironmentStatus =
  | "Preparing"
  | "Ready"
  | "Scaling"
  | "Deleting";
/** Defines values for CustomDnsSuffixProvisioningState. */
export type CustomDnsSuffixProvisioningState =
  | "Succeeded"
  | "Failed"
  | "Degraded"
  | "InProgress";
/** Defines values for ComputeModeOptions. */
export type ComputeModeOptions = "Shared" | "Dedicated" | "Dynamic";
/** Defines values for WorkerSizeOptions. */
export type WorkerSizeOptions =
  | "Small"
  | "Medium"
  | "Large"
  | "D1"
  | "D2"
  | "D3"
  | "SmallV3"
  | "MediumV3"
  | "LargeV3"
  | "NestedSmall"
  | "NestedSmallLinux"
  | "Default";
/** Defines values for UsageState. */
export type UsageState = "Normal" | "Exceeded";
/** Defines values for SiteAvailabilityState. */
export type SiteAvailabilityState =
  | "Normal"
  | "Limited"
  | "DisasterRecoveryMode";
/** Defines values for SslState. */
export type SslState = "Disabled" | "SniEnabled" | "IpBasedEnabled";
/** Defines values for HostType. */
export type HostType = "Standard" | "Repository";
/** Defines values for ConnectionStringType. */
export type ConnectionStringType =
  | "MySql"
  | "SQLServer"
  | "SQLAzure"
  | "Custom"
  | "NotificationHub"
  | "ServiceBus"
  | "EventHub"
  | "ApiHub"
  | "DocDb"
  | "RedisCache"
  | "PostgreSQL";
/** Defines values for ManagedPipelineMode. */
export type ManagedPipelineMode = "Integrated" | "Classic";
/** Defines values for SiteLoadBalancing. */
export type SiteLoadBalancing =
  | "WeightedRoundRobin"
  | "LeastRequests"
  | "LeastResponseTime"
  | "WeightedTotalTraffic"
  | "RequestHash"
  | "PerSiteRoundRobin";
/** Defines values for AutoHealActionType. */
export type AutoHealActionType = "Recycle" | "LogEvent" | "CustomAction";
/** Defines values for AzureStorageType. */
export type AzureStorageType = "AzureFiles" | "AzureBlob";
/** Defines values for AzureStorageState. */
export type AzureStorageState =
  | "Ok"
  | "InvalidCredentials"
  | "InvalidShare"
  | "NotValidated";
/** Defines values for ClientCertMode. */
export type ClientCertMode =
  | "Required"
  | "Optional"
  | "OptionalInteractiveUser";
/** Defines values for RedundancyMode. */
export type RedundancyMode =
  | "None"
  | "Manual"
  | "Failover"
  | "ActiveActive"
  | "GeoRedundant";
/** Defines values for ManagedServiceIdentityType. */
export type ManagedServiceIdentityType =
  | "SystemAssigned"
  | "UserAssigned"
  | "SystemAssigned, UserAssigned"
  | "None";
/** Defines values for OperationStatus. */
export type OperationStatus =
  | "InProgress"
  | "Failed"
  | "Succeeded"
  | "TimedOut"
  | "Created";
/** Defines values for StatusOptions. */
export type StatusOptions = "Ready" | "Pending" | "Creating";
/** Defines values for IssueType. */
export type IssueType =
  | "ServiceIncident"
  | "AppDeployment"
  | "AppCrash"
  | "RuntimeIssueDetected"
  | "AseDeployment"
  | "UserIssue"
  | "PlatformIssue"
  | "Other";
/** Defines values for SolutionType. */
export type SolutionType =
  | "QuickSolution"
  | "DeepInvestigation"
  | "BestPractices";
/** Defines values for KubeEnvironmentProvisioningState. */
export type KubeEnvironmentProvisioningState =
  | "Succeeded"
  | "Failed"
  | "Canceled"
  | "Waiting"
  | "InitializationInProgress"
  | "InfrastructureSetupInProgress"
  | "InfrastructureSetupComplete"
  | "ScheduledForDelete"
  | "UpgradeRequested"
  | "UpgradeFailed";
/** Defines values for StorageType. */
export type StorageType = "LocalNode" | "NetworkFileSystem";
/** Defines values for FrontEndServiceType. */
export type FrontEndServiceType = "NodePort" | "LoadBalancer";
/** Defines values for StackPreferredOs. */
export type StackPreferredOs = "Windows" | "Linux";
/** Defines values for NotificationLevel. */
export type NotificationLevel =
  | "Critical"
  | "Warning"
  | "Information"
  | "NonUrgentSuggestion";
/** Defines values for Channels. */
export type Channels = "Notification" | "Api" | "Email" | "Webhook" | "All";
/** Defines values for AppServicePlanRestrictions. */
export type AppServicePlanRestrictions =
  | "None"
  | "Free"
  | "Shared"
  | "Basic"
  | "Standard"
  | "Premium";
/** Defines values for StagingEnvironmentPolicy. */
export type StagingEnvironmentPolicy = "Enabled" | "Disabled";
/** Defines values for DnsVerificationTestResult. */
export type DnsVerificationTestResult = "Passed" | "Failed" | "Skipped";
/** Defines values for FrequencyUnit. */
export type FrequencyUnit = "Day" | "Hour";
/** Defines values for BackupItemStatus. */
export type BackupItemStatus =
  | "InProgress"
  | "Failed"
  | "Succeeded"
  | "TimedOut"
  | "Created"
  | "Skipped"
  | "PartiallySucceeded"
  | "DeleteInProgress"
  | "DeleteFailed"
  | "Deleted";
/** Defines values for BackupRestoreOperationType. */
export type BackupRestoreOperationType =
  | "Default"
  | "Clone"
  | "Relocation"
  | "Snapshot"
  | "CloudFS";
/** Defines values for UnauthenticatedClientAction. */
export type UnauthenticatedClientAction =
  | "RedirectToLoginPage"
  | "AllowAnonymous";
/** Defines values for BuiltInAuthenticationProvider. */
export type BuiltInAuthenticationProvider =
  | "AzureActiveDirectory"
  | "Facebook"
  | "Google"
  | "MicrosoftAccount"
  | "Twitter"
  | "Github";
/** Defines values for UnauthenticatedClientActionV2. */
export type UnauthenticatedClientActionV2 =
  | "RedirectToLoginPage"
  | "AllowAnonymous"
  | "Return401"
  | "Return403";
/** Defines values for CookieExpirationConvention. */
export type CookieExpirationConvention =
  | "FixedTime"
  | "IdentityProviderDerived";
/** Defines values for ForwardProxyConvention. */
export type ForwardProxyConvention = "NoProxy" | "Standard" | "Custom";
/** Defines values for ResolveStatus. */
export type ResolveStatus =
  | "Initialized"
  | "Resolved"
  | "InvalidSyntax"
  | "MSINotEnabled"
  | "VaultNotFound"
  | "SecretNotFound"
  | "SecretVersionNotFound"
  | "AccessToKeyVaultDenied"
  | "OtherReasons"
  | "FetchTimedOut"
  | "UnauthorizedClient";
/** Defines values for LogLevel. */
export type LogLevel = "Off" | "Verbose" | "Information" | "Warning" | "Error";
/** Defines values for ContinuousWebJobStatus. */
export type ContinuousWebJobStatus =
  | "Initializing"
  | "Starting"
  | "Running"
  | "PendingRestart"
  | "Stopped";
/** Defines values for WebJobType. */
export type WebJobType = "Continuous" | "Triggered";
/** Defines values for MSDeployProvisioningState. */
export type MSDeployProvisioningState =
  | "accepted"
  | "running"
  | "succeeded"
  | "failed"
  | "canceled";
/** Defines values for MSDeployLogEntryType. */
export type MSDeployLogEntryType = "Message" | "Warning" | "Error";
/** Defines values for SiteRuntimeState. */
export type SiteRuntimeState = "READY" | "STOPPED" | "UNKNOWN";
/** Defines values for CloneAbilityResult. */
export type CloneAbilityResult =
  | "Cloneable"
  | "PartiallyCloneable"
  | "NotCloneable";
/** Defines values for MySqlMigrationType. */
export type MySqlMigrationType = "LocalToRemote" | "RemoteToLocal";
/** Defines values for PublicCertificateLocation. */
export type PublicCertificateLocation =
  | "CurrentUserMy"
  | "LocalMachineMy"
  | "Unknown";
/** Defines values for SiteExtensionType. */
export type SiteExtensionType = "Gallery" | "WebRoot";
/** Defines values for TriggeredWebJobStatus. */
export type TriggeredWebJobStatus = "Success" | "Failed" | "Error";
/** Defines values for WorkflowHealthState. */
export type WorkflowHealthState =
  | "NotSpecified"
  | "Healthy"
  | "Unhealthy"
  | "Unknown";
/** Defines values for DaysOfWeek. */
export type DaysOfWeek =
  | "Sunday"
  | "Monday"
  | "Tuesday"
  | "Wednesday"
  | "Thursday"
  | "Friday"
  | "Saturday";
/** Defines values for DayOfWeek. */
export type DayOfWeek =
  | "Sunday"
  | "Monday"
  | "Tuesday"
  | "Wednesday"
  | "Thursday"
  | "Friday"
  | "Saturday";

/** Optional parameters. */
export interface AppServiceCertificateOrdersListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type AppServiceCertificateOrdersListResponse = AppServiceCertificateOrderCollection;

/** Optional parameters. */
export interface AppServiceCertificateOrdersValidatePurchaseInformationOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type AppServiceCertificateOrdersListByResourceGroupResponse = AppServiceCertificateOrderCollection;

/** Optional parameters. */
export interface AppServiceCertificateOrdersGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type AppServiceCertificateOrdersGetResponse = AppServiceCertificateOrder;

/** Optional parameters. */
export interface AppServiceCertificateOrdersCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdate operation. */
export type AppServiceCertificateOrdersCreateOrUpdateResponse = AppServiceCertificateOrder;

/** Optional parameters. */
export interface AppServiceCertificateOrdersDeleteOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the update operation. */
export type AppServiceCertificateOrdersUpdateResponse = AppServiceCertificateOrder;

/** Optional parameters. */
export interface AppServiceCertificateOrdersListCertificatesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listCertificates operation. */
export type AppServiceCertificateOrdersListCertificatesResponse = AppServiceCertificateCollection;

/** Optional parameters. */
export interface AppServiceCertificateOrdersGetCertificateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getCertificate operation. */
export type AppServiceCertificateOrdersGetCertificateResponse = AppServiceCertificateResource;

/** Optional parameters. */
export interface AppServiceCertificateOrdersCreateOrUpdateCertificateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateCertificate operation. */
export type AppServiceCertificateOrdersCreateOrUpdateCertificateResponse = AppServiceCertificateResource;

/** Optional parameters. */
export interface AppServiceCertificateOrdersDeleteCertificateOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersUpdateCertificateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateCertificate operation. */
export type AppServiceCertificateOrdersUpdateCertificateResponse = AppServiceCertificateResource;

/** Optional parameters. */
export interface AppServiceCertificateOrdersReissueOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersRenewOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersResendEmailOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersResendRequestEmailsOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersRetrieveSiteSealOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the retrieveSiteSeal operation. */
export type AppServiceCertificateOrdersRetrieveSiteSealResponse = SiteSeal;

/** Optional parameters. */
export interface AppServiceCertificateOrdersVerifyDomainOwnershipOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceCertificateOrdersRetrieveCertificateActionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the retrieveCertificateActions operation. */
export type AppServiceCertificateOrdersRetrieveCertificateActionsResponse = CertificateOrderAction[];

/** Optional parameters. */
export interface AppServiceCertificateOrdersRetrieveCertificateEmailHistoryOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the retrieveCertificateEmailHistory operation. */
export type AppServiceCertificateOrdersRetrieveCertificateEmailHistoryResponse = CertificateEmail[];

/** Optional parameters. */
export interface AppServiceCertificateOrdersListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type AppServiceCertificateOrdersListNextResponse = AppServiceCertificateOrderCollection;

/** Optional parameters. */
export interface AppServiceCertificateOrdersListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type AppServiceCertificateOrdersListByResourceGroupNextResponse = AppServiceCertificateOrderCollection;

/** Optional parameters. */
export interface AppServiceCertificateOrdersListCertificatesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listCertificatesNext operation. */
export type AppServiceCertificateOrdersListCertificatesNextResponse = AppServiceCertificateCollection;

/** Optional parameters. */
export interface CertificateOrdersDiagnosticsListAppServiceCertificateOrderDetectorResponseOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAppServiceCertificateOrderDetectorResponse operation. */
export type CertificateOrdersDiagnosticsListAppServiceCertificateOrderDetectorResponseResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface CertificateOrdersDiagnosticsGetAppServiceCertificateOrderDetectorResponseOptionalParams
  extends coreClient.OperationOptions {
  /** The start time for detector response. */
  startTime?: Date;
  /** The end time for the detector response. */
  endTime?: Date;
  /** The time grain for the detector response. */
  timeGrain?: string;
}

/** Contains response data for the getAppServiceCertificateOrderDetectorResponse operation. */
export type CertificateOrdersDiagnosticsGetAppServiceCertificateOrderDetectorResponseResponse = DetectorResponse;

/** Optional parameters. */
export interface CertificateOrdersDiagnosticsListAppServiceCertificateOrderDetectorResponseNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAppServiceCertificateOrderDetectorResponseNext operation. */
export type CertificateOrdersDiagnosticsListAppServiceCertificateOrderDetectorResponseNextResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface CertificateRegistrationProviderListOperationsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOperations operation. */
export type CertificateRegistrationProviderListOperationsResponse = CsmOperationCollection;

/** Optional parameters. */
export interface CertificateRegistrationProviderListOperationsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOperationsNext operation. */
export type CertificateRegistrationProviderListOperationsNextResponse = CsmOperationCollection;

/** Optional parameters. */
export interface DomainsCheckAvailabilityOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the checkAvailability operation. */
export type DomainsCheckAvailabilityResponse = DomainAvailabilityCheckResult;

/** Optional parameters. */
export interface DomainsListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type DomainsListResponse = DomainCollection;

/** Optional parameters. */
export interface DomainsGetControlCenterSsoRequestOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getControlCenterSsoRequest operation. */
export type DomainsGetControlCenterSsoRequestResponse = DomainControlCenterSsoRequest;

/** Optional parameters. */
export interface DomainsListRecommendationsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRecommendations operation. */
export type DomainsListRecommendationsResponse = NameIdentifierCollection;

/** Optional parameters. */
export interface DomainsListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type DomainsListByResourceGroupResponse = DomainCollection;

/** Optional parameters. */
export interface DomainsGetOptionalParams extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type DomainsGetResponse = Domain;

/** Optional parameters. */
export interface DomainsCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdate operation. */
export type DomainsCreateOrUpdateResponse = Domain;

/** Optional parameters. */
export interface DomainsDeleteOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <code>true</code> to delete the domain immediately. The default is <code>false</code> which deletes the domain after 24 hours. */
  forceHardDeleteDomain?: boolean;
}

/** Optional parameters. */
export interface DomainsUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the update operation. */
export type DomainsUpdateResponse = Domain;

/** Optional parameters. */
export interface DomainsListOwnershipIdentifiersOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOwnershipIdentifiers operation. */
export type DomainsListOwnershipIdentifiersResponse = DomainOwnershipIdentifierCollection;

/** Optional parameters. */
export interface DomainsGetOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getOwnershipIdentifier operation. */
export type DomainsGetOwnershipIdentifierResponse = DomainOwnershipIdentifier;

/** Optional parameters. */
export interface DomainsCreateOrUpdateOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateOwnershipIdentifier operation. */
export type DomainsCreateOrUpdateOwnershipIdentifierResponse = DomainOwnershipIdentifier;

/** Optional parameters. */
export interface DomainsDeleteOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface DomainsUpdateOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateOwnershipIdentifier operation. */
export type DomainsUpdateOwnershipIdentifierResponse = DomainOwnershipIdentifier;

/** Optional parameters. */
export interface DomainsRenewOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface DomainsTransferOutOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the transferOut operation. */
export type DomainsTransferOutResponse = Domain;

/** Optional parameters. */
export interface DomainsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type DomainsListNextResponse = DomainCollection;

/** Optional parameters. */
export interface DomainsListRecommendationsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRecommendationsNext operation. */
export type DomainsListRecommendationsNextResponse = NameIdentifierCollection;

/** Optional parameters. */
export interface DomainsListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type DomainsListByResourceGroupNextResponse = DomainCollection;

/** Optional parameters. */
export interface DomainsListOwnershipIdentifiersNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOwnershipIdentifiersNext operation. */
export type DomainsListOwnershipIdentifiersNextResponse = DomainOwnershipIdentifierCollection;

/** Optional parameters. */
export interface TopLevelDomainsListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type TopLevelDomainsListResponse = TopLevelDomainCollection;

/** Optional parameters. */
export interface TopLevelDomainsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type TopLevelDomainsGetResponse = TopLevelDomain;

/** Optional parameters. */
export interface TopLevelDomainsListAgreementsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAgreements operation. */
export type TopLevelDomainsListAgreementsResponse = TldLegalAgreementCollection;

/** Optional parameters. */
export interface TopLevelDomainsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type TopLevelDomainsListNextResponse = TopLevelDomainCollection;

/** Optional parameters. */
export interface TopLevelDomainsListAgreementsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAgreementsNext operation. */
export type TopLevelDomainsListAgreementsNextResponse = TldLegalAgreementCollection;

/** Optional parameters. */
export interface DomainRegistrationProviderListOperationsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOperations operation. */
export type DomainRegistrationProviderListOperationsResponse = CsmOperationCollection;

/** Optional parameters. */
export interface DomainRegistrationProviderListOperationsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOperationsNext operation. */
export type DomainRegistrationProviderListOperationsNextResponse = CsmOperationCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type AppServiceEnvironmentsListResponse = AppServiceEnvironmentCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type AppServiceEnvironmentsListByResourceGroupResponse = AppServiceEnvironmentCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type AppServiceEnvironmentsGetResponse = AppServiceEnvironmentResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdate operation. */
export type AppServiceEnvironmentsCreateOrUpdateResponse = AppServiceEnvironmentResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsDeleteOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <code>true</code> to force the deletion even if the App Service Environment contains resources. The default is <code>false</code>. */
  forceDelete?: boolean;
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface AppServiceEnvironmentsUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the update operation. */
export type AppServiceEnvironmentsUpdateResponse = AppServiceEnvironmentResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsListCapacitiesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listCapacities operation. */
export type AppServiceEnvironmentsListCapacitiesResponse = StampCapacityCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetVipInfoOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getVipInfo operation. */
export type AppServiceEnvironmentsGetVipInfoResponse = AddressResponse;

/** Optional parameters. */
export interface AppServiceEnvironmentsChangeVnetOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the changeVnet operation. */
export type AppServiceEnvironmentsChangeVnetResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetAseCustomDnsSuffixConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAseCustomDnsSuffixConfiguration operation. */
export type AppServiceEnvironmentsGetAseCustomDnsSuffixConfigurationResponse = CustomDnsSuffixConfiguration;

/** Optional parameters. */
export interface AppServiceEnvironmentsUpdateAseCustomDnsSuffixConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAseCustomDnsSuffixConfiguration operation. */
export type AppServiceEnvironmentsUpdateAseCustomDnsSuffixConfigurationResponse = CustomDnsSuffixConfiguration;

/** Optional parameters. */
export interface AppServiceEnvironmentsDeleteAseCustomDnsSuffixConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the deleteAseCustomDnsSuffixConfiguration operation. */
export type AppServiceEnvironmentsDeleteAseCustomDnsSuffixConfigurationResponse = Record<
  string,
  unknown
>;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetAseV3NetworkingConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAseV3NetworkingConfiguration operation. */
export type AppServiceEnvironmentsGetAseV3NetworkingConfigurationResponse = AseV3NetworkingConfiguration;

/** Optional parameters. */
export interface AppServiceEnvironmentsUpdateAseNetworkingConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAseNetworkingConfiguration operation. */
export type AppServiceEnvironmentsUpdateAseNetworkingConfigurationResponse = AseV3NetworkingConfiguration;

/** Optional parameters. */
export interface AppServiceEnvironmentsListDiagnosticsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDiagnostics operation. */
export type AppServiceEnvironmentsListDiagnosticsResponse = HostingEnvironmentDiagnostics[];

/** Optional parameters. */
export interface AppServiceEnvironmentsGetDiagnosticsItemOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDiagnosticsItem operation. */
export type AppServiceEnvironmentsGetDiagnosticsItemResponse = HostingEnvironmentDiagnostics;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetInboundNetworkDependenciesEndpointsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInboundNetworkDependenciesEndpoints operation. */
export type AppServiceEnvironmentsGetInboundNetworkDependenciesEndpointsResponse = InboundEnvironmentEndpointCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRolePoolsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRolePools operation. */
export type AppServiceEnvironmentsListMultiRolePoolsResponse = WorkerPoolCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetMultiRolePoolOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getMultiRolePool operation. */
export type AppServiceEnvironmentsGetMultiRolePoolResponse = WorkerPoolResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsCreateOrUpdateMultiRolePoolOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateMultiRolePool operation. */
export type AppServiceEnvironmentsCreateOrUpdateMultiRolePoolResponse = WorkerPoolResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsUpdateMultiRolePoolOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateMultiRolePool operation. */
export type AppServiceEnvironmentsUpdateMultiRolePoolResponse = WorkerPoolResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRolePoolInstanceMetricDefinitionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRolePoolInstanceMetricDefinitions operation. */
export type AppServiceEnvironmentsListMultiRolePoolInstanceMetricDefinitionsResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRoleMetricDefinitionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRoleMetricDefinitions operation. */
export type AppServiceEnvironmentsListMultiRoleMetricDefinitionsResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRolePoolSkusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRolePoolSkus operation. */
export type AppServiceEnvironmentsListMultiRolePoolSkusResponse = SkuInfoCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsTestUpgradeAvailableNotificationOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceEnvironmentsUpgradeOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRoleUsagesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRoleUsages operation. */
export type AppServiceEnvironmentsListMultiRoleUsagesResponse = UsageCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListOperationsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOperations operation. */
export type AppServiceEnvironmentsListOperationsResponse = Operation[];

/** Optional parameters. */
export interface AppServiceEnvironmentsGetOutboundNetworkDependenciesEndpointsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getOutboundNetworkDependenciesEndpoints operation. */
export type AppServiceEnvironmentsGetOutboundNetworkDependenciesEndpointsResponse = OutboundEnvironmentEndpointCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetPrivateEndpointConnectionListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionList operation. */
export type AppServiceEnvironmentsGetPrivateEndpointConnectionListResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetPrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnection operation. */
export type AppServiceEnvironmentsGetPrivateEndpointConnectionResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsApproveOrRejectPrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the approveOrRejectPrivateEndpointConnection operation. */
export type AppServiceEnvironmentsApproveOrRejectPrivateEndpointConnectionResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsDeletePrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the deletePrivateEndpointConnection operation. */
export type AppServiceEnvironmentsDeletePrivateEndpointConnectionResponse = Record<
  string,
  unknown
>;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetPrivateLinkResourcesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateLinkResources operation. */
export type AppServiceEnvironmentsGetPrivateLinkResourcesResponse = PrivateLinkResourcesWrapper;

/** Optional parameters. */
export interface AppServiceEnvironmentsRebootOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServiceEnvironmentsResumeOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the resume operation. */
export type AppServiceEnvironmentsResumeResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListAppServicePlansOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAppServicePlans operation. */
export type AppServiceEnvironmentsListAppServicePlansResponse = AppServicePlanCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWebAppsOptionalParams
  extends coreClient.OperationOptions {
  /** Comma separated list of app properties to include. */
  propertiesToInclude?: string;
}

/** Contains response data for the listWebApps operation. */
export type AppServiceEnvironmentsListWebAppsResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsSuspendOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the suspend operation. */
export type AppServiceEnvironmentsSuspendResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListUsagesOptionalParams
  extends coreClient.OperationOptions {
  /** Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'. */
  filter?: string;
}

/** Contains response data for the listUsages operation. */
export type AppServiceEnvironmentsListUsagesResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWorkerPoolsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkerPools operation. */
export type AppServiceEnvironmentsListWorkerPoolsResponse = WorkerPoolCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetWorkerPoolOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWorkerPool operation. */
export type AppServiceEnvironmentsGetWorkerPoolResponse = WorkerPoolResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsCreateOrUpdateWorkerPoolOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateWorkerPool operation. */
export type AppServiceEnvironmentsCreateOrUpdateWorkerPoolResponse = WorkerPoolResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsUpdateWorkerPoolOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateWorkerPool operation. */
export type AppServiceEnvironmentsUpdateWorkerPoolResponse = WorkerPoolResource;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWorkerPoolInstanceMetricDefinitionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkerPoolInstanceMetricDefinitions operation. */
export type AppServiceEnvironmentsListWorkerPoolInstanceMetricDefinitionsResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWebWorkerMetricDefinitionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebWorkerMetricDefinitions operation. */
export type AppServiceEnvironmentsListWebWorkerMetricDefinitionsResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWorkerPoolSkusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkerPoolSkus operation. */
export type AppServiceEnvironmentsListWorkerPoolSkusResponse = SkuInfoCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWebWorkerUsagesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebWorkerUsages operation. */
export type AppServiceEnvironmentsListWebWorkerUsagesResponse = UsageCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type AppServiceEnvironmentsListNextResponse = AppServiceEnvironmentCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type AppServiceEnvironmentsListByResourceGroupNextResponse = AppServiceEnvironmentCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListCapacitiesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listCapacitiesNext operation. */
export type AppServiceEnvironmentsListCapacitiesNextResponse = StampCapacityCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsChangeVnetNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the changeVnetNext operation. */
export type AppServiceEnvironmentsChangeVnetNextResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetInboundNetworkDependenciesEndpointsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInboundNetworkDependenciesEndpointsNext operation. */
export type AppServiceEnvironmentsGetInboundNetworkDependenciesEndpointsNextResponse = InboundEnvironmentEndpointCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRolePoolsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRolePoolsNext operation. */
export type AppServiceEnvironmentsListMultiRolePoolsNextResponse = WorkerPoolCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRolePoolInstanceMetricDefinitionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRolePoolInstanceMetricDefinitionsNext operation. */
export type AppServiceEnvironmentsListMultiRolePoolInstanceMetricDefinitionsNextResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRoleMetricDefinitionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRoleMetricDefinitionsNext operation. */
export type AppServiceEnvironmentsListMultiRoleMetricDefinitionsNextResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRolePoolSkusNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRolePoolSkusNext operation. */
export type AppServiceEnvironmentsListMultiRolePoolSkusNextResponse = SkuInfoCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListMultiRoleUsagesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMultiRoleUsagesNext operation. */
export type AppServiceEnvironmentsListMultiRoleUsagesNextResponse = UsageCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetOutboundNetworkDependenciesEndpointsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getOutboundNetworkDependenciesEndpointsNext operation. */
export type AppServiceEnvironmentsGetOutboundNetworkDependenciesEndpointsNextResponse = OutboundEnvironmentEndpointCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsGetPrivateEndpointConnectionListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionListNext operation. */
export type AppServiceEnvironmentsGetPrivateEndpointConnectionListNextResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsResumeNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the resumeNext operation. */
export type AppServiceEnvironmentsResumeNextResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListAppServicePlansNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAppServicePlansNext operation. */
export type AppServiceEnvironmentsListAppServicePlansNextResponse = AppServicePlanCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWebAppsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebAppsNext operation. */
export type AppServiceEnvironmentsListWebAppsNextResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsSuspendNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the suspendNext operation. */
export type AppServiceEnvironmentsSuspendNextResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListUsagesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listUsagesNext operation. */
export type AppServiceEnvironmentsListUsagesNextResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWorkerPoolsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkerPoolsNext operation. */
export type AppServiceEnvironmentsListWorkerPoolsNextResponse = WorkerPoolCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWorkerPoolInstanceMetricDefinitionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkerPoolInstanceMetricDefinitionsNext operation. */
export type AppServiceEnvironmentsListWorkerPoolInstanceMetricDefinitionsNextResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWebWorkerMetricDefinitionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebWorkerMetricDefinitionsNext operation. */
export type AppServiceEnvironmentsListWebWorkerMetricDefinitionsNextResponse = ResourceMetricDefinitionCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWorkerPoolSkusNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkerPoolSkusNext operation. */
export type AppServiceEnvironmentsListWorkerPoolSkusNextResponse = SkuInfoCollection;

/** Optional parameters. */
export interface AppServiceEnvironmentsListWebWorkerUsagesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebWorkerUsagesNext operation. */
export type AppServiceEnvironmentsListWebWorkerUsagesNextResponse = UsageCollection;

/** Optional parameters. */
export interface AppServicePlansListOptionalParams
  extends coreClient.OperationOptions {
  /**
   * Specify <code>true</code> to return all App Service plan properties. The default is <code>false</code>, which returns a subset of the properties.
   *  Retrieval of all properties may increase the API latency.
   */
  detailed?: boolean;
}

/** Contains response data for the list operation. */
export type AppServicePlansListResponse = AppServicePlanCollection;

/** Optional parameters. */
export interface AppServicePlansListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type AppServicePlansListByResourceGroupResponse = AppServicePlanCollection;

/** Optional parameters. */
export interface AppServicePlansGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type AppServicePlansGetResponse = AppServicePlan;

/** Optional parameters. */
export interface AppServicePlansCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdate operation. */
export type AppServicePlansCreateOrUpdateResponse = AppServicePlan;

/** Optional parameters. */
export interface AppServicePlansDeleteOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServicePlansUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the update operation. */
export type AppServicePlansUpdateResponse = AppServicePlan;

/** Optional parameters. */
export interface AppServicePlansListCapabilitiesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listCapabilities operation. */
export type AppServicePlansListCapabilitiesResponse = Capability[];

/** Optional parameters. */
export interface AppServicePlansGetHybridConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getHybridConnection operation. */
export type AppServicePlansGetHybridConnectionResponse = HybridConnection;

/** Optional parameters. */
export interface AppServicePlansDeleteHybridConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServicePlansListHybridConnectionKeysOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHybridConnectionKeys operation. */
export type AppServicePlansListHybridConnectionKeysResponse = HybridConnectionKey;

/** Optional parameters. */
export interface AppServicePlansListWebAppsByHybridConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebAppsByHybridConnection operation. */
export type AppServicePlansListWebAppsByHybridConnectionResponse = ResourceCollection;

/** Optional parameters. */
export interface AppServicePlansGetHybridConnectionPlanLimitOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getHybridConnectionPlanLimit operation. */
export type AppServicePlansGetHybridConnectionPlanLimitResponse = HybridConnectionLimits;

/** Optional parameters. */
export interface AppServicePlansListHybridConnectionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHybridConnections operation. */
export type AppServicePlansListHybridConnectionsResponse = HybridConnectionCollection;

/** Optional parameters. */
export interface AppServicePlansRestartWebAppsOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <code>true</code> to perform a soft restart, applies the configuration settings and restarts the apps if necessary. The default is <code>false</code>, which always restarts and reprovisions the apps */
  softRestart?: boolean;
}

/** Optional parameters. */
export interface AppServicePlansListWebAppsOptionalParams
  extends coreClient.OperationOptions {
  /** Supported filter: $filter=state eq running. Returns only web apps that are currently running */
  filter?: string;
  /** Skip to a web app in the list of webapps associated with app service plan. If specified, the resulting list will contain web apps starting from (including) the skipToken. Otherwise, the resulting list contains web apps from the start of the list */
  skipToken?: string;
  /** List page size. If specified, results are paged. */
  top?: string;
}

/** Contains response data for the listWebApps operation. */
export type AppServicePlansListWebAppsResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServicePlansGetServerFarmSkusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getServerFarmSkus operation. */
export type AppServicePlansGetServerFarmSkusResponse = Record<string, unknown>;

/** Optional parameters. */
export interface AppServicePlansListUsagesOptionalParams
  extends coreClient.OperationOptions {
  /** Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2'). */
  filter?: string;
}

/** Contains response data for the listUsages operation. */
export type AppServicePlansListUsagesResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface AppServicePlansListVnetsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listVnets operation. */
export type AppServicePlansListVnetsResponse = VnetInfoResource[];

/** Optional parameters. */
export interface AppServicePlansGetVnetFromServerFarmOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getVnetFromServerFarm operation. */
export type AppServicePlansGetVnetFromServerFarmResponse = VnetInfoResource;

/** Optional parameters. */
export interface AppServicePlansGetVnetGatewayOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getVnetGateway operation. */
export type AppServicePlansGetVnetGatewayResponse = VnetGateway;

/** Optional parameters. */
export interface AppServicePlansUpdateVnetGatewayOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateVnetGateway operation. */
export type AppServicePlansUpdateVnetGatewayResponse = VnetGateway;

/** Optional parameters. */
export interface AppServicePlansListRoutesForVnetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRoutesForVnet operation. */
export type AppServicePlansListRoutesForVnetResponse = VnetRoute[];

/** Optional parameters. */
export interface AppServicePlansGetRouteForVnetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getRouteForVnet operation. */
export type AppServicePlansGetRouteForVnetResponse = VnetRoute[];

/** Optional parameters. */
export interface AppServicePlansCreateOrUpdateVnetRouteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateVnetRoute operation. */
export type AppServicePlansCreateOrUpdateVnetRouteResponse = VnetRoute;

/** Optional parameters. */
export interface AppServicePlansDeleteVnetRouteOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServicePlansUpdateVnetRouteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateVnetRoute operation. */
export type AppServicePlansUpdateVnetRouteResponse = VnetRoute;

/** Optional parameters. */
export interface AppServicePlansRebootWorkerOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface AppServicePlansListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type AppServicePlansListNextResponse = AppServicePlanCollection;

/** Optional parameters. */
export interface AppServicePlansListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type AppServicePlansListByResourceGroupNextResponse = AppServicePlanCollection;

/** Optional parameters. */
export interface AppServicePlansListWebAppsByHybridConnectionNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebAppsByHybridConnectionNext operation. */
export type AppServicePlansListWebAppsByHybridConnectionNextResponse = ResourceCollection;

/** Optional parameters. */
export interface AppServicePlansListHybridConnectionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHybridConnectionsNext operation. */
export type AppServicePlansListHybridConnectionsNextResponse = HybridConnectionCollection;

/** Optional parameters. */
export interface AppServicePlansListWebAppsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebAppsNext operation. */
export type AppServicePlansListWebAppsNextResponse = WebAppCollection;

/** Optional parameters. */
export interface AppServicePlansListUsagesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listUsagesNext operation. */
export type AppServicePlansListUsagesNextResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface CertificatesListOptionalParams
  extends coreClient.OperationOptions {
  /** Return only information specified in the filter (using OData syntax). For example: $filter=KeyVaultId eq 'KeyVaultId' */
  filter?: string;
}

/** Contains response data for the list operation. */
export type CertificatesListResponse = CertificateCollection;

/** Optional parameters. */
export interface CertificatesListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type CertificatesListByResourceGroupResponse = CertificateCollection;

/** Optional parameters. */
export interface CertificatesGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type CertificatesGetResponse = Certificate;

/** Optional parameters. */
export interface CertificatesCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdate operation. */
export type CertificatesCreateOrUpdateResponse = Certificate;

/** Optional parameters. */
export interface CertificatesDeleteOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface CertificatesUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the update operation. */
export type CertificatesUpdateResponse = Certificate;

/** Optional parameters. */
export interface CertificatesListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type CertificatesListNextResponse = CertificateCollection;

/** Optional parameters. */
export interface CertificatesListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type CertificatesListByResourceGroupNextResponse = CertificateCollection;

/** Optional parameters. */
export interface ContainerAppsListBySubscriptionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySubscription operation. */
export type ContainerAppsListBySubscriptionResponse = ContainerAppCollection;

/** Optional parameters. */
export interface ContainerAppsListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type ContainerAppsListByResourceGroupResponse = ContainerAppCollection;

/** Optional parameters. */
export interface ContainerAppsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type ContainerAppsGetResponse = ContainerApp;

/** Optional parameters. */
export interface ContainerAppsCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdate operation. */
export type ContainerAppsCreateOrUpdateResponse = ContainerApp;

/** Optional parameters. */
export interface ContainerAppsDeleteOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface ContainerAppsListSecretsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSecrets operation. */
export type ContainerAppsListSecretsResponse = SecretsCollection;

/** Optional parameters. */
export interface ContainerAppsListBySubscriptionNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySubscriptionNext operation. */
export type ContainerAppsListBySubscriptionNextResponse = ContainerAppCollection;

/** Optional parameters. */
export interface ContainerAppsListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type ContainerAppsListByResourceGroupNextResponse = ContainerAppCollection;

/** Optional parameters. */
export interface ContainerAppsRevisionsListRevisionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRevisions operation. */
export type ContainerAppsRevisionsListRevisionsResponse = RevisionCollection;

/** Optional parameters. */
export interface ContainerAppsRevisionsGetRevisionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getRevision operation. */
export type ContainerAppsRevisionsGetRevisionResponse = Revision;

/** Optional parameters. */
export interface ContainerAppsRevisionsActivateRevisionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface ContainerAppsRevisionsDeactivateRevisionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface ContainerAppsRevisionsRestartRevisionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface ContainerAppsRevisionsListRevisionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRevisionsNext operation. */
export type ContainerAppsRevisionsListRevisionsNextResponse = RevisionCollection;

/** Optional parameters. */
export interface DeletedWebAppsListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type DeletedWebAppsListResponse = DeletedWebAppCollection;

/** Optional parameters. */
export interface DeletedWebAppsListByLocationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByLocation operation. */
export type DeletedWebAppsListByLocationResponse = DeletedWebAppCollection;

/** Optional parameters. */
export interface DeletedWebAppsGetDeletedWebAppByLocationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDeletedWebAppByLocation operation. */
export type DeletedWebAppsGetDeletedWebAppByLocationResponse = DeletedSite;

/** Optional parameters. */
export interface DeletedWebAppsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type DeletedWebAppsListNextResponse = DeletedWebAppCollection;

/** Optional parameters. */
export interface DeletedWebAppsListByLocationNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByLocationNext operation. */
export type DeletedWebAppsListByLocationNextResponse = DeletedWebAppCollection;

/** Optional parameters. */
export interface DiagnosticsListHostingEnvironmentDetectorResponsesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostingEnvironmentDetectorResponses operation. */
export type DiagnosticsListHostingEnvironmentDetectorResponsesResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface DiagnosticsGetHostingEnvironmentDetectorResponseOptionalParams
  extends coreClient.OperationOptions {
  /** Start Time */
  startTime?: Date;
  /** End Time */
  endTime?: Date;
  /** Time Grain */
  timeGrain?: string;
}

/** Contains response data for the getHostingEnvironmentDetectorResponse operation. */
export type DiagnosticsGetHostingEnvironmentDetectorResponseResponse = DetectorResponse;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorResponsesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectorResponses operation. */
export type DiagnosticsListSiteDetectorResponsesResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteDetectorResponseOptionalParams
  extends coreClient.OperationOptions {
  /** Start Time */
  startTime?: Date;
  /** End Time */
  endTime?: Date;
  /** Time Grain */
  timeGrain?: string;
}

/** Contains response data for the getSiteDetectorResponse operation. */
export type DiagnosticsGetSiteDetectorResponseResponse = DetectorResponse;

/** Optional parameters. */
export interface DiagnosticsListSiteDiagnosticCategoriesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDiagnosticCategories operation. */
export type DiagnosticsListSiteDiagnosticCategoriesResponse = DiagnosticCategoryCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteDiagnosticCategoryOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteDiagnosticCategory operation. */
export type DiagnosticsGetSiteDiagnosticCategoryResponse = DiagnosticCategory;

/** Optional parameters. */
export interface DiagnosticsListSiteAnalysesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteAnalyses operation. */
export type DiagnosticsListSiteAnalysesResponse = DiagnosticAnalysisCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteAnalysisOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteAnalysis operation. */
export type DiagnosticsGetSiteAnalysisResponse = AnalysisDefinition;

/** Optional parameters. */
export interface DiagnosticsExecuteSiteAnalysisOptionalParams
  extends coreClient.OperationOptions {
  /** Start Time */
  startTime?: Date;
  /** End Time */
  endTime?: Date;
  /** Time Grain */
  timeGrain?: string;
}

/** Contains response data for the executeSiteAnalysis operation. */
export type DiagnosticsExecuteSiteAnalysisResponse = DiagnosticAnalysis;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectors operation. */
export type DiagnosticsListSiteDetectorsResponse = DiagnosticDetectorCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteDetectorOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteDetector operation. */
export type DiagnosticsGetSiteDetectorResponse = DetectorDefinitionResource;

/** Optional parameters. */
export interface DiagnosticsExecuteSiteDetectorOptionalParams
  extends coreClient.OperationOptions {
  /** Start Time */
  startTime?: Date;
  /** End Time */
  endTime?: Date;
  /** Time Grain */
  timeGrain?: string;
}

/** Contains response data for the executeSiteDetector operation. */
export type DiagnosticsExecuteSiteDetectorResponse = DiagnosticDetectorResponse;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorResponsesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectorResponsesSlot operation. */
export type DiagnosticsListSiteDetectorResponsesSlotResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteDetectorResponseSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Start Time */
  startTime?: Date;
  /** End Time */
  endTime?: Date;
  /** Time Grain */
  timeGrain?: string;
}

/** Contains response data for the getSiteDetectorResponseSlot operation. */
export type DiagnosticsGetSiteDetectorResponseSlotResponse = DetectorResponse;

/** Optional parameters. */
export interface DiagnosticsListSiteDiagnosticCategoriesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDiagnosticCategoriesSlot operation. */
export type DiagnosticsListSiteDiagnosticCategoriesSlotResponse = DiagnosticCategoryCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteDiagnosticCategorySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteDiagnosticCategorySlot operation. */
export type DiagnosticsGetSiteDiagnosticCategorySlotResponse = DiagnosticCategory;

/** Optional parameters. */
export interface DiagnosticsListSiteAnalysesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteAnalysesSlot operation. */
export type DiagnosticsListSiteAnalysesSlotResponse = DiagnosticAnalysisCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteAnalysisSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteAnalysisSlot operation. */
export type DiagnosticsGetSiteAnalysisSlotResponse = AnalysisDefinition;

/** Optional parameters. */
export interface DiagnosticsExecuteSiteAnalysisSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Start Time */
  startTime?: Date;
  /** End Time */
  endTime?: Date;
  /** Time Grain */
  timeGrain?: string;
}

/** Contains response data for the executeSiteAnalysisSlot operation. */
export type DiagnosticsExecuteSiteAnalysisSlotResponse = DiagnosticAnalysis;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectorsSlot operation. */
export type DiagnosticsListSiteDetectorsSlotResponse = DiagnosticDetectorCollection;

/** Optional parameters. */
export interface DiagnosticsGetSiteDetectorSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteDetectorSlot operation. */
export type DiagnosticsGetSiteDetectorSlotResponse = DetectorDefinitionResource;

/** Optional parameters. */
export interface DiagnosticsExecuteSiteDetectorSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Start Time */
  startTime?: Date;
  /** End Time */
  endTime?: Date;
  /** Time Grain */
  timeGrain?: string;
}

/** Contains response data for the executeSiteDetectorSlot operation. */
export type DiagnosticsExecuteSiteDetectorSlotResponse = DiagnosticDetectorResponse;

/** Optional parameters. */
export interface DiagnosticsListHostingEnvironmentDetectorResponsesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostingEnvironmentDetectorResponsesNext operation. */
export type DiagnosticsListHostingEnvironmentDetectorResponsesNextResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorResponsesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectorResponsesNext operation. */
export type DiagnosticsListSiteDetectorResponsesNextResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteDiagnosticCategoriesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDiagnosticCategoriesNext operation. */
export type DiagnosticsListSiteDiagnosticCategoriesNextResponse = DiagnosticCategoryCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteAnalysesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteAnalysesNext operation. */
export type DiagnosticsListSiteAnalysesNextResponse = DiagnosticAnalysisCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectorsNext operation. */
export type DiagnosticsListSiteDetectorsNextResponse = DiagnosticDetectorCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorResponsesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectorResponsesSlotNext operation. */
export type DiagnosticsListSiteDetectorResponsesSlotNextResponse = DetectorResponseCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteDiagnosticCategoriesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDiagnosticCategoriesSlotNext operation. */
export type DiagnosticsListSiteDiagnosticCategoriesSlotNextResponse = DiagnosticCategoryCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteAnalysesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteAnalysesSlotNext operation. */
export type DiagnosticsListSiteAnalysesSlotNextResponse = DiagnosticAnalysisCollection;

/** Optional parameters. */
export interface DiagnosticsListSiteDetectorsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteDetectorsSlotNext operation. */
export type DiagnosticsListSiteDetectorsSlotNextResponse = DiagnosticDetectorCollection;

/** Optional parameters. */
export interface GlobalGetDeletedWebAppOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDeletedWebApp operation. */
export type GlobalGetDeletedWebAppResponse = DeletedSite;

/** Optional parameters. */
export interface GlobalGetDeletedWebAppSnapshotsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDeletedWebAppSnapshots operation. */
export type GlobalGetDeletedWebAppSnapshotsResponse = Snapshot[];

/** Optional parameters. */
export interface GlobalGetSubscriptionOperationWithAsyncResponseOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface KubeEnvironmentsListBySubscriptionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySubscription operation. */
export type KubeEnvironmentsListBySubscriptionResponse = KubeEnvironmentCollection;

/** Optional parameters. */
export interface KubeEnvironmentsListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type KubeEnvironmentsListByResourceGroupResponse = KubeEnvironmentCollection;

/** Optional parameters. */
export interface KubeEnvironmentsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type KubeEnvironmentsGetResponse = KubeEnvironment;

/** Optional parameters. */
export interface KubeEnvironmentsCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdate operation. */
export type KubeEnvironmentsCreateOrUpdateResponse = KubeEnvironment;

/** Optional parameters. */
export interface KubeEnvironmentsDeleteOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface KubeEnvironmentsUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the update operation. */
export type KubeEnvironmentsUpdateResponse = KubeEnvironment;

/** Optional parameters. */
export interface KubeEnvironmentsListBySubscriptionNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySubscriptionNext operation. */
export type KubeEnvironmentsListBySubscriptionNextResponse = KubeEnvironmentCollection;

/** Optional parameters. */
export interface KubeEnvironmentsListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type KubeEnvironmentsListByResourceGroupNextResponse = KubeEnvironmentCollection;

/** Optional parameters. */
export interface ProviderGetAvailableStacksOptionalParams
  extends coreClient.OperationOptions {
  osTypeSelected?: ProviderOsTypeSelected;
}

/** Contains response data for the getAvailableStacks operation. */
export type ProviderGetAvailableStacksResponse = ApplicationStackCollection;

/** Optional parameters. */
export interface ProviderGetFunctionAppStacksOptionalParams
  extends coreClient.OperationOptions {
  /** Stack OS Type */
  stackOsType?: ProviderStackOsType;
}

/** Contains response data for the getFunctionAppStacks operation. */
export type ProviderGetFunctionAppStacksResponse = FunctionAppStackCollection;

/** Optional parameters. */
export interface ProviderGetFunctionAppStacksForLocationOptionalParams
  extends coreClient.OperationOptions {
  /** Stack OS Type */
  stackOsType?: ProviderStackOsType;
}

/** Contains response data for the getFunctionAppStacksForLocation operation. */
export type ProviderGetFunctionAppStacksForLocationResponse = FunctionAppStackCollection;

/** Optional parameters. */
export interface ProviderGetWebAppStacksForLocationOptionalParams
  extends coreClient.OperationOptions {
  /** Stack OS Type */
  stackOsType?: ProviderStackOsType;
}

/** Contains response data for the getWebAppStacksForLocation operation. */
export type ProviderGetWebAppStacksForLocationResponse = WebAppStackCollection;

/** Optional parameters. */
export interface ProviderListOperationsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOperations operation. */
export type ProviderListOperationsResponse = CsmOperationCollection;

/** Optional parameters. */
export interface ProviderGetWebAppStacksOptionalParams
  extends coreClient.OperationOptions {
  /** Stack OS Type */
  stackOsType?: ProviderStackOsType;
}

/** Contains response data for the getWebAppStacks operation. */
export type ProviderGetWebAppStacksResponse = WebAppStackCollection;

/** Optional parameters. */
export interface ProviderGetAvailableStacksOnPremOptionalParams
  extends coreClient.OperationOptions {
  osTypeSelected?: ProviderOsTypeSelected;
}

/** Contains response data for the getAvailableStacksOnPrem operation. */
export type ProviderGetAvailableStacksOnPremResponse = ApplicationStackCollection;

/** Optional parameters. */
export interface ProviderGetAvailableStacksNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAvailableStacksNext operation. */
export type ProviderGetAvailableStacksNextResponse = ApplicationStackCollection;

/** Optional parameters. */
export interface ProviderGetFunctionAppStacksNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getFunctionAppStacksNext operation. */
export type ProviderGetFunctionAppStacksNextResponse = FunctionAppStackCollection;

/** Optional parameters. */
export interface ProviderGetFunctionAppStacksForLocationNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getFunctionAppStacksForLocationNext operation. */
export type ProviderGetFunctionAppStacksForLocationNextResponse = FunctionAppStackCollection;

/** Optional parameters. */
export interface ProviderGetWebAppStacksForLocationNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWebAppStacksForLocationNext operation. */
export type ProviderGetWebAppStacksForLocationNextResponse = WebAppStackCollection;

/** Optional parameters. */
export interface ProviderListOperationsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listOperationsNext operation. */
export type ProviderListOperationsNextResponse = CsmOperationCollection;

/** Optional parameters. */
export interface ProviderGetWebAppStacksNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWebAppStacksNext operation. */
export type ProviderGetWebAppStacksNextResponse = WebAppStackCollection;

/** Optional parameters. */
export interface ProviderGetAvailableStacksOnPremNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAvailableStacksOnPremNext operation. */
export type ProviderGetAvailableStacksOnPremNextResponse = ApplicationStackCollection;

/** Optional parameters. */
export interface RecommendationsListOptionalParams
  extends coreClient.OperationOptions {
  /** Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D] */
  filter?: string;
  /** Specify <code>true</code> to return only the most critical recommendations. The default is <code>false</code>, which returns all recommendations. */
  featured?: boolean;
}

/** Contains response data for the list operation. */
export type RecommendationsListResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsResetAllFiltersOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsDisableRecommendationForSubscriptionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsListHistoryForHostingEnvironmentOptionalParams
  extends coreClient.OperationOptions {
  /** Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D] */
  filter?: string;
  /** Specify <code>false</code> to return all recommendations. The default is <code>true</code>, which returns only expired recommendations. */
  expiredOnly?: boolean;
}

/** Contains response data for the listHistoryForHostingEnvironment operation. */
export type RecommendationsListHistoryForHostingEnvironmentResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsListRecommendedRulesForHostingEnvironmentOptionalParams
  extends coreClient.OperationOptions {
  /** Return only channels specified in the filter. Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification' */
  filter?: string;
  /** Specify <code>true</code> to return only the most critical recommendations. The default is <code>false</code>, which returns all recommendations. */
  featured?: boolean;
}

/** Contains response data for the listRecommendedRulesForHostingEnvironment operation. */
export type RecommendationsListRecommendedRulesForHostingEnvironmentResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsDisableAllForHostingEnvironmentOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsResetAllFiltersForHostingEnvironmentOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsGetRuleDetailsByHostingEnvironmentOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <code>true</code> to update the last-seen timestamp of the recommendation object. */
  updateSeen?: boolean;
  /** The GUID of the recommendation object if you query an expired one. You don't need to specify it to query an active entry. */
  recommendationId?: string;
}

/** Contains response data for the getRuleDetailsByHostingEnvironment operation. */
export type RecommendationsGetRuleDetailsByHostingEnvironmentResponse = RecommendationRule;

/** Optional parameters. */
export interface RecommendationsDisableRecommendationForHostingEnvironmentOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsListHistoryForWebAppOptionalParams
  extends coreClient.OperationOptions {
  /** Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification' and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[PT1H|PT1M|P1D] */
  filter?: string;
  /** Specify <code>false</code> to return all recommendations. The default is <code>true</code>, which returns only expired recommendations. */
  expiredOnly?: boolean;
}

/** Contains response data for the listHistoryForWebApp operation. */
export type RecommendationsListHistoryForWebAppResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsListRecommendedRulesForWebAppOptionalParams
  extends coreClient.OperationOptions {
  /** Return only channels specified in the filter. Filter is specified by using OData syntax. Example: $filter=channel eq 'Api' or channel eq 'Notification' */
  filter?: string;
  /** Specify <code>true</code> to return only the most critical recommendations. The default is <code>false</code>, which returns all recommendations. */
  featured?: boolean;
}

/** Contains response data for the listRecommendedRulesForWebApp operation. */
export type RecommendationsListRecommendedRulesForWebAppResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsDisableAllForWebAppOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsResetAllFiltersForWebAppOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsGetRuleDetailsByWebAppOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <code>true</code> to update the last-seen timestamp of the recommendation object. */
  updateSeen?: boolean;
  /** The GUID of the recommendation object if you query an expired one. You don't need to specify it to query an active entry. */
  recommendationId?: string;
}

/** Contains response data for the getRuleDetailsByWebApp operation. */
export type RecommendationsGetRuleDetailsByWebAppResponse = RecommendationRule;

/** Optional parameters. */
export interface RecommendationsDisableRecommendationForSiteOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface RecommendationsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type RecommendationsListNextResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsListHistoryForHostingEnvironmentNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHistoryForHostingEnvironmentNext operation. */
export type RecommendationsListHistoryForHostingEnvironmentNextResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsListRecommendedRulesForHostingEnvironmentNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRecommendedRulesForHostingEnvironmentNext operation. */
export type RecommendationsListRecommendedRulesForHostingEnvironmentNextResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsListHistoryForWebAppNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHistoryForWebAppNext operation. */
export type RecommendationsListHistoryForWebAppNextResponse = RecommendationCollection;

/** Optional parameters. */
export interface RecommendationsListRecommendedRulesForWebAppNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRecommendedRulesForWebAppNext operation. */
export type RecommendationsListRecommendedRulesForWebAppNextResponse = RecommendationCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type ResourceHealthMetadataListResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroup operation. */
export type ResourceHealthMetadataListByResourceGroupResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataListBySiteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySite operation. */
export type ResourceHealthMetadataListBySiteResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataGetBySiteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBySite operation. */
export type ResourceHealthMetadataGetBySiteResponse = ResourceHealthMetadata;

/** Optional parameters. */
export interface ResourceHealthMetadataListBySiteSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySiteSlot operation. */
export type ResourceHealthMetadataListBySiteSlotResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataGetBySiteSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBySiteSlot operation. */
export type ResourceHealthMetadataGetBySiteSlotResponse = ResourceHealthMetadata;

/** Optional parameters. */
export interface ResourceHealthMetadataListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type ResourceHealthMetadataListNextResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type ResourceHealthMetadataListByResourceGroupNextResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataListBySiteNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySiteNext operation. */
export type ResourceHealthMetadataListBySiteNextResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface ResourceHealthMetadataListBySiteSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBySiteSlotNext operation. */
export type ResourceHealthMetadataListBySiteSlotNextResponse = ResourceHealthMetadataCollection;

/** Optional parameters. */
export interface GetPublishingUserOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPublishingUser operation. */
export type GetPublishingUserResponse = User;

/** Optional parameters. */
export interface UpdatePublishingUserOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updatePublishingUser operation. */
export type UpdatePublishingUserResponse = User;

/** Optional parameters. */
export interface ListSourceControlsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSourceControls operation. */
export type ListSourceControlsResponse = SourceControlCollection;

/** Optional parameters. */
export interface GetSourceControlOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSourceControl operation. */
export type GetSourceControlResponse = SourceControl;

/** Optional parameters. */
export interface UpdateSourceControlOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSourceControl operation. */
export type UpdateSourceControlResponse = SourceControl;

/** Optional parameters. */
export interface ListBillingMetersOptionalParams
  extends coreClient.OperationOptions {
  /** Azure Location of billable resource */
  billingLocation?: string;
  /** App Service OS type meters used for */
  osType?: string;
}

/** Contains response data for the listBillingMeters operation. */
export type ListBillingMetersResponse = BillingMeterCollection;

/** Optional parameters. */
export interface CheckNameAvailabilityOptionalParams
  extends coreClient.OperationOptions {
  /** Is fully qualified domain name. */
  isFqdn?: boolean;
  /** Azure Resource Manager ID of the customer's selected Container Apps Environment on which to host the Function app. This must be of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/managedEnvironments/{managedEnvironmentName} */
  environmentId?: string;
}

/** Contains response data for the checkNameAvailability operation. */
export type CheckNameAvailabilityResponse = ResourceNameAvailability;

/** Optional parameters. */
export interface ListCustomHostNameSitesOptionalParams
  extends coreClient.OperationOptions {
  /** Specific hostname */
  hostname?: string;
}

/** Contains response data for the listCustomHostNameSites operation. */
export type ListCustomHostNameSitesResponse = CustomHostnameSitesCollection;

/** Optional parameters. */
export interface GetSubscriptionDeploymentLocationsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSubscriptionDeploymentLocations operation. */
export type GetSubscriptionDeploymentLocationsResponse = DeploymentLocations;

/** Optional parameters. */
export interface ListAseRegionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAseRegions operation. */
export type ListAseRegionsResponse = AseRegionCollection;

/** Optional parameters. */
export interface ListGeoRegionsOptionalParams
  extends coreClient.OperationOptions {
  /** Name of SKU used to filter the regions. */
  sku?: SkuName;
  /** Specify <code>true</code> if you want to filter to only regions that support Linux workers. */
  linuxWorkersEnabled?: boolean;
  /** Specify <code>true</code> if you want to filter to only regions that support Xenon workers. */
  xenonWorkersEnabled?: boolean;
  /** Specify <code>true</code> if you want to filter to only regions that support Linux Consumption Workers. */
  linuxDynamicWorkersEnabled?: boolean;
}

/** Contains response data for the listGeoRegions operation. */
export type ListGeoRegionsResponse = GeoRegionCollection;

/** Optional parameters. */
export interface ListSiteIdentifiersAssignedToHostNameOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteIdentifiersAssignedToHostName operation. */
export type ListSiteIdentifiersAssignedToHostNameResponse = IdentifierCollection;

/** Optional parameters. */
export interface ListPremierAddOnOffersOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPremierAddOnOffers operation. */
export type ListPremierAddOnOffersResponse = PremierAddOnOfferCollection;

/** Optional parameters. */
export interface ListSkusOptionalParams extends coreClient.OperationOptions {}

/** Contains response data for the listSkus operation. */
export type ListSkusResponse = SkuInfos;

/** Optional parameters. */
export interface VerifyHostingEnvironmentVnetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the verifyHostingEnvironmentVnet operation. */
export type VerifyHostingEnvironmentVnetResponse = VnetValidationFailureDetails;

/** Optional parameters. */
export interface MoveOptionalParams extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface ValidateOptionalParams extends coreClient.OperationOptions {}

/** Contains response data for the validate operation. */
export type ValidateOperationResponse = ValidateResponse;

/** Optional parameters. */
export interface ValidateMoveOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface ListSourceControlsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSourceControlsNext operation. */
export type ListSourceControlsNextResponse = SourceControlCollection;

/** Optional parameters. */
export interface ListBillingMetersNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBillingMetersNext operation. */
export type ListBillingMetersNextResponse = BillingMeterCollection;

/** Optional parameters. */
export interface ListCustomHostNameSitesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listCustomHostNameSitesNext operation. */
export type ListCustomHostNameSitesNextResponse = CustomHostnameSitesCollection;

/** Optional parameters. */
export interface ListAseRegionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAseRegionsNext operation. */
export type ListAseRegionsNextResponse = AseRegionCollection;

/** Optional parameters. */
export interface ListGeoRegionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listGeoRegionsNext operation. */
export type ListGeoRegionsNextResponse = GeoRegionCollection;

/** Optional parameters. */
export interface ListSiteIdentifiersAssignedToHostNameNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteIdentifiersAssignedToHostNameNext operation. */
export type ListSiteIdentifiersAssignedToHostNameNextResponse = IdentifierCollection;

/** Optional parameters. */
export interface ListPremierAddOnOffersNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPremierAddOnOffersNext operation. */
export type ListPremierAddOnOffersNextResponse = PremierAddOnOfferCollection;

/** Optional parameters. */
export interface GetUsagesInLocationListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type GetUsagesInLocationListResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface GetUsagesInLocationListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type GetUsagesInLocationListNextResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface StaticSitesPreviewWorkflowOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the previewWorkflow operation. */
export type StaticSitesPreviewWorkflowResponse = StaticSitesWorkflowPreview;

/** Optional parameters. */
export interface StaticSitesListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type StaticSitesListResponse = StaticSiteCollection;

/** Optional parameters. */
export interface StaticSitesGetStaticSitesByResourceGroupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getStaticSitesByResourceGroup operation. */
export type StaticSitesGetStaticSitesByResourceGroupResponse = StaticSiteCollection;

/** Optional parameters. */
export interface StaticSitesGetStaticSiteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getStaticSite operation. */
export type StaticSitesGetStaticSiteResponse = StaticSiteARMResource;

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateStaticSiteOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateStaticSite operation. */
export type StaticSitesCreateOrUpdateStaticSiteResponse = StaticSiteARMResource;

/** Optional parameters. */
export interface StaticSitesDeleteStaticSiteOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesUpdateStaticSiteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateStaticSite operation. */
export type StaticSitesUpdateStaticSiteResponse = StaticSiteARMResource;

/** Optional parameters. */
export interface StaticSitesListStaticSiteUsersOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteUsers operation. */
export type StaticSitesListStaticSiteUsersResponse = StaticSiteUserCollection;

/** Optional parameters. */
export interface StaticSitesDeleteStaticSiteUserOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface StaticSitesUpdateStaticSiteUserOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateStaticSiteUser operation. */
export type StaticSitesUpdateStaticSiteUserResponse = StaticSiteUserARMResource;

/** Optional parameters. */
export interface StaticSitesGetStaticSiteBuildsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getStaticSiteBuilds operation. */
export type StaticSitesGetStaticSiteBuildsResponse = StaticSiteBuildCollection;

/** Optional parameters. */
export interface StaticSitesGetStaticSiteBuildOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getStaticSiteBuild operation. */
export type StaticSitesGetStaticSiteBuildResponse = StaticSiteBuildARMResource;

/** Optional parameters. */
export interface StaticSitesDeleteStaticSiteBuildOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateStaticSiteBuildAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateStaticSiteBuildAppSettings operation. */
export type StaticSitesCreateOrUpdateStaticSiteBuildAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateStaticSiteBuildFunctionAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateStaticSiteBuildFunctionAppSettings operation. */
export type StaticSitesCreateOrUpdateStaticSiteBuildFunctionAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesGetBuildDatabaseConnectionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBuildDatabaseConnections operation. */
export type StaticSitesGetBuildDatabaseConnectionsResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetBuildDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBuildDatabaseConnection operation. */
export type StaticSitesGetBuildDatabaseConnectionResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateBuildDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateBuildDatabaseConnection operation. */
export type StaticSitesCreateOrUpdateBuildDatabaseConnectionResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesDeleteBuildDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface StaticSitesUpdateBuildDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateBuildDatabaseConnection operation. */
export type StaticSitesUpdateBuildDatabaseConnectionResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesGetBuildDatabaseConnectionWithDetailsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBuildDatabaseConnectionWithDetails operation. */
export type StaticSitesGetBuildDatabaseConnectionWithDetailsResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesListStaticSiteBuildFunctionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteBuildFunctions operation. */
export type StaticSitesListStaticSiteBuildFunctionsResponse = StaticSiteFunctionOverviewCollection;

/** Optional parameters. */
export interface StaticSitesListStaticSiteBuildAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteBuildAppSettings operation. */
export type StaticSitesListStaticSiteBuildAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesListStaticSiteBuildFunctionAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteBuildFunctionAppSettings operation. */
export type StaticSitesListStaticSiteBuildFunctionAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesGetBuildDatabaseConnectionsWithDetailsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBuildDatabaseConnectionsWithDetails operation. */
export type StaticSitesGetBuildDatabaseConnectionsWithDetailsResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetUserProvidedFunctionAppsForStaticSiteBuildOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getUserProvidedFunctionAppsForStaticSiteBuild operation. */
export type StaticSitesGetUserProvidedFunctionAppsForStaticSiteBuildResponse = StaticSiteUserProvidedFunctionAppsCollection;

/** Optional parameters. */
export interface StaticSitesGetUserProvidedFunctionAppForStaticSiteBuildOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getUserProvidedFunctionAppForStaticSiteBuild operation. */
export type StaticSitesGetUserProvidedFunctionAppForStaticSiteBuildResponse = StaticSiteUserProvidedFunctionAppARMResource;

/** Optional parameters. */
export interface StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <code>true</code> to force the update of the auth configuration on the function app even if an AzureStaticWebApps provider is already configured on the function app. The default is <code>false</code>. */
  isForced?: boolean;
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the registerUserProvidedFunctionAppWithStaticSiteBuild operation. */
export type StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteBuildResponse = StaticSiteUserProvidedFunctionAppARMResource;

/** Optional parameters. */
export interface StaticSitesDetachUserProvidedFunctionAppFromStaticSiteBuildOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface StaticSitesCreateZipDeploymentForStaticSiteBuildOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateStaticSiteAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateStaticSiteAppSettings operation. */
export type StaticSitesCreateOrUpdateStaticSiteAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesListBasicAuthOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBasicAuth operation. */
export type StaticSitesListBasicAuthResponse = StaticSiteBasicAuthPropertiesCollection;

/** Optional parameters. */
export interface StaticSitesGetBasicAuthOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBasicAuth operation. */
export type StaticSitesGetBasicAuthResponse = StaticSiteBasicAuthPropertiesARMResource;

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateBasicAuthOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateBasicAuth operation. */
export type StaticSitesCreateOrUpdateBasicAuthResponse = StaticSiteBasicAuthPropertiesARMResource;

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateStaticSiteFunctionAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateStaticSiteFunctionAppSettings operation. */
export type StaticSitesCreateOrUpdateStaticSiteFunctionAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesCreateUserRolesInvitationLinkOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createUserRolesInvitationLink operation. */
export type StaticSitesCreateUserRolesInvitationLinkResponse = StaticSiteUserInvitationResponseResource;

/** Optional parameters. */
export interface StaticSitesListStaticSiteCustomDomainsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteCustomDomains operation. */
export type StaticSitesListStaticSiteCustomDomainsResponse = StaticSiteCustomDomainOverviewCollection;

/** Optional parameters. */
export interface StaticSitesGetStaticSiteCustomDomainOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getStaticSiteCustomDomain operation. */
export type StaticSitesGetStaticSiteCustomDomainResponse = StaticSiteCustomDomainOverviewARMResource;

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateStaticSiteCustomDomainOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateStaticSiteCustomDomain operation. */
export type StaticSitesCreateOrUpdateStaticSiteCustomDomainResponse = StaticSiteCustomDomainOverviewARMResource;

/** Optional parameters. */
export interface StaticSitesDeleteStaticSiteCustomDomainOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesValidateCustomDomainCanBeAddedToStaticSiteOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesGetDatabaseConnectionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDatabaseConnections operation. */
export type StaticSitesGetDatabaseConnectionsResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDatabaseConnection operation. */
export type StaticSitesGetDatabaseConnectionResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesCreateOrUpdateDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateDatabaseConnection operation. */
export type StaticSitesCreateOrUpdateDatabaseConnectionResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesDeleteDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface StaticSitesUpdateDatabaseConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateDatabaseConnection operation. */
export type StaticSitesUpdateDatabaseConnectionResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesGetDatabaseConnectionWithDetailsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDatabaseConnectionWithDetails operation. */
export type StaticSitesGetDatabaseConnectionWithDetailsResponse = DatabaseConnection;

/** Optional parameters. */
export interface StaticSitesDetachStaticSiteOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesListStaticSiteFunctionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteFunctions operation. */
export type StaticSitesListStaticSiteFunctionsResponse = StaticSiteFunctionOverviewCollection;

/** Optional parameters. */
export interface StaticSitesListStaticSiteAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteAppSettings operation. */
export type StaticSitesListStaticSiteAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesListStaticSiteConfiguredRolesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteConfiguredRoles operation. */
export type StaticSitesListStaticSiteConfiguredRolesResponse = StringList;

/** Optional parameters. */
export interface StaticSitesListStaticSiteFunctionAppSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteFunctionAppSettings operation. */
export type StaticSitesListStaticSiteFunctionAppSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesListStaticSiteSecretsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteSecrets operation. */
export type StaticSitesListStaticSiteSecretsResponse = StringDictionary;

/** Optional parameters. */
export interface StaticSitesGetPrivateEndpointConnectionListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionList operation. */
export type StaticSitesGetPrivateEndpointConnectionListResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetPrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnection operation. */
export type StaticSitesGetPrivateEndpointConnectionResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface StaticSitesApproveOrRejectPrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the approveOrRejectPrivateEndpointConnection operation. */
export type StaticSitesApproveOrRejectPrivateEndpointConnectionResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface StaticSitesDeletePrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the deletePrivateEndpointConnection operation. */
export type StaticSitesDeletePrivateEndpointConnectionResponse = Record<
  string,
  unknown
>;

/** Optional parameters. */
export interface StaticSitesGetPrivateLinkResourcesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateLinkResources operation. */
export type StaticSitesGetPrivateLinkResourcesResponse = PrivateLinkResourcesWrapper;

/** Optional parameters. */
export interface StaticSitesResetStaticSiteApiKeyOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface StaticSitesGetDatabaseConnectionsWithDetailsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDatabaseConnectionsWithDetails operation. */
export type StaticSitesGetDatabaseConnectionsWithDetailsResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetUserProvidedFunctionAppsForStaticSiteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getUserProvidedFunctionAppsForStaticSite operation. */
export type StaticSitesGetUserProvidedFunctionAppsForStaticSiteResponse = StaticSiteUserProvidedFunctionAppsCollection;

/** Optional parameters. */
export interface StaticSitesGetUserProvidedFunctionAppForStaticSiteOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getUserProvidedFunctionAppForStaticSite operation. */
export type StaticSitesGetUserProvidedFunctionAppForStaticSiteResponse = StaticSiteUserProvidedFunctionAppARMResource;

/** Optional parameters. */
export interface StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <code>true</code> to force the update of the auth configuration on the function app even if an AzureStaticWebApps provider is already configured on the function app. The default is <code>false</code>. */
  isForced?: boolean;
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the registerUserProvidedFunctionAppWithStaticSite operation. */
export type StaticSitesRegisterUserProvidedFunctionAppWithStaticSiteResponse = StaticSiteUserProvidedFunctionAppARMResource;

/** Optional parameters. */
export interface StaticSitesDetachUserProvidedFunctionAppFromStaticSiteOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface StaticSitesCreateZipDeploymentForStaticSiteOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesValidateBackendOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesValidateBackendForBuildOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface StaticSitesGetLinkedBackendsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getLinkedBackends operation. */
export type StaticSitesGetLinkedBackendsResponse = StaticSiteLinkedBackendsCollection;

/** Optional parameters. */
export interface StaticSitesGetLinkedBackendsForBuildOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getLinkedBackendsForBuild operation. */
export type StaticSitesGetLinkedBackendsForBuildResponse = StaticSiteLinkedBackendsCollection;

/** Optional parameters. */
export interface StaticSitesGetLinkedBackendOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getLinkedBackend operation. */
export type StaticSitesGetLinkedBackendResponse = StaticSiteLinkedBackendARMResource;

/** Optional parameters. */
export interface StaticSitesLinkBackendOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the linkBackend operation. */
export type StaticSitesLinkBackendResponse = StaticSiteLinkedBackendARMResource;

/** Optional parameters. */
export interface StaticSitesUnlinkBackendOptionalParams
  extends coreClient.OperationOptions {
  /** Decides if Easy Auth configuration will be removed from backend configuration */
  isCleaningAuthConfig?: boolean;
}

/** Optional parameters. */
export interface StaticSitesGetLinkedBackendForBuildOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getLinkedBackendForBuild operation. */
export type StaticSitesGetLinkedBackendForBuildResponse = StaticSiteLinkedBackendARMResource;

/** Optional parameters. */
export interface StaticSitesLinkBackendToBuildOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the linkBackendToBuild operation. */
export type StaticSitesLinkBackendToBuildResponse = StaticSiteLinkedBackendARMResource;

/** Optional parameters. */
export interface StaticSitesUnlinkBackendFromBuildOptionalParams
  extends coreClient.OperationOptions {
  /** Decides if auth will be removed from backend configuration */
  isCleaningAuthConfig?: boolean;
}

/** Optional parameters. */
export interface StaticSitesListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type StaticSitesListNextResponse = StaticSiteCollection;

/** Optional parameters. */
export interface StaticSitesGetStaticSitesByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getStaticSitesByResourceGroupNext operation. */
export type StaticSitesGetStaticSitesByResourceGroupNextResponse = StaticSiteCollection;

/** Optional parameters. */
export interface StaticSitesListStaticSiteUsersNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteUsersNext operation. */
export type StaticSitesListStaticSiteUsersNextResponse = StaticSiteUserCollection;

/** Optional parameters. */
export interface StaticSitesGetStaticSiteBuildsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getStaticSiteBuildsNext operation. */
export type StaticSitesGetStaticSiteBuildsNextResponse = StaticSiteBuildCollection;

/** Optional parameters. */
export interface StaticSitesGetBuildDatabaseConnectionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBuildDatabaseConnectionsNext operation. */
export type StaticSitesGetBuildDatabaseConnectionsNextResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesListStaticSiteBuildFunctionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteBuildFunctionsNext operation. */
export type StaticSitesListStaticSiteBuildFunctionsNextResponse = StaticSiteFunctionOverviewCollection;

/** Optional parameters. */
export interface StaticSitesGetBuildDatabaseConnectionsWithDetailsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBuildDatabaseConnectionsWithDetailsNext operation. */
export type StaticSitesGetBuildDatabaseConnectionsWithDetailsNextResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetUserProvidedFunctionAppsForStaticSiteBuildNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getUserProvidedFunctionAppsForStaticSiteBuildNext operation. */
export type StaticSitesGetUserProvidedFunctionAppsForStaticSiteBuildNextResponse = StaticSiteUserProvidedFunctionAppsCollection;

/** Optional parameters. */
export interface StaticSitesListBasicAuthNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBasicAuthNext operation. */
export type StaticSitesListBasicAuthNextResponse = StaticSiteBasicAuthPropertiesCollection;

/** Optional parameters. */
export interface StaticSitesListStaticSiteCustomDomainsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteCustomDomainsNext operation. */
export type StaticSitesListStaticSiteCustomDomainsNextResponse = StaticSiteCustomDomainOverviewCollection;

/** Optional parameters. */
export interface StaticSitesGetDatabaseConnectionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDatabaseConnectionsNext operation. */
export type StaticSitesGetDatabaseConnectionsNextResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesListStaticSiteFunctionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listStaticSiteFunctionsNext operation. */
export type StaticSitesListStaticSiteFunctionsNextResponse = StaticSiteFunctionOverviewCollection;

/** Optional parameters. */
export interface StaticSitesGetPrivateEndpointConnectionListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionListNext operation. */
export type StaticSitesGetPrivateEndpointConnectionListNextResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetDatabaseConnectionsWithDetailsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDatabaseConnectionsWithDetailsNext operation. */
export type StaticSitesGetDatabaseConnectionsWithDetailsNextResponse = DatabaseConnectionCollection;

/** Optional parameters. */
export interface StaticSitesGetUserProvidedFunctionAppsForStaticSiteNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getUserProvidedFunctionAppsForStaticSiteNext operation. */
export type StaticSitesGetUserProvidedFunctionAppsForStaticSiteNextResponse = StaticSiteUserProvidedFunctionAppsCollection;

/** Optional parameters. */
export interface StaticSitesGetLinkedBackendsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getLinkedBackendsNext operation. */
export type StaticSitesGetLinkedBackendsNextResponse = StaticSiteLinkedBackendsCollection;

/** Optional parameters. */
export interface StaticSitesGetLinkedBackendsForBuildNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getLinkedBackendsForBuildNext operation. */
export type StaticSitesGetLinkedBackendsForBuildNextResponse = StaticSiteLinkedBackendsCollection;

/** Optional parameters. */
export interface WebAppsListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type WebAppsListResponse = WebAppCollection;

/** Optional parameters. */
export interface WebAppsListByResourceGroupOptionalParams
  extends coreClient.OperationOptions {
  /** Specify <strong>true</strong> to include deployment slots in results. The default is false, which only gives you the production slot of all apps. */
  includeSlots?: boolean;
}

/** Contains response data for the listByResourceGroup operation. */
export type WebAppsListByResourceGroupResponse = WebAppCollection;

/** Optional parameters. */
export interface WebAppsGetOptionalParams extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WebAppsGetResponse = Site;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdate operation. */
export type WebAppsCreateOrUpdateResponse = Site;

/** Optional parameters. */
export interface WebAppsDeleteOptionalParams
  extends coreClient.OperationOptions {
  /** If true, web app metrics are also deleted. */
  deleteMetrics?: boolean;
  /** Specify false if you want to keep empty App Service plan. By default, empty App Service plan is deleted. */
  deleteEmptyServerFarm?: boolean;
}

/** Optional parameters. */
export interface WebAppsUpdateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the update operation. */
export type WebAppsUpdateResponse = Site;

/** Optional parameters. */
export interface WebAppsAnalyzeCustomHostnameOptionalParams
  extends coreClient.OperationOptions {
  /** Custom hostname. */
  hostName?: string;
}

/** Contains response data for the analyzeCustomHostname operation. */
export type WebAppsAnalyzeCustomHostnameResponse = CustomHostnameAnalysisResult;

/** Optional parameters. */
export interface WebAppsApplySlotConfigToProductionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsBackupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the backup operation. */
export type WebAppsBackupResponse = BackupItem;

/** Optional parameters. */
export interface WebAppsListBackupsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBackups operation. */
export type WebAppsListBackupsResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsGetBackupStatusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBackupStatus operation. */
export type WebAppsGetBackupStatusResponse = BackupItem;

/** Optional parameters. */
export interface WebAppsDeleteBackupOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListBackupStatusSecretsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBackupStatusSecrets operation. */
export type WebAppsListBackupStatusSecretsResponse = BackupItem;

/** Optional parameters. */
export interface WebAppsRestoreOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsListBasicPublishingCredentialsPoliciesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBasicPublishingCredentialsPolicies operation. */
export type WebAppsListBasicPublishingCredentialsPoliciesResponse = PublishingCredentialsPoliciesCollection;

/** Optional parameters. */
export interface WebAppsGetFtpAllowedOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getFtpAllowed operation. */
export type WebAppsGetFtpAllowedResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsUpdateFtpAllowedOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateFtpAllowed operation. */
export type WebAppsUpdateFtpAllowedResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsGetScmAllowedOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getScmAllowed operation. */
export type WebAppsGetScmAllowedResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsUpdateScmAllowedOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateScmAllowed operation. */
export type WebAppsUpdateScmAllowedResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsListConfigurationsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurations operation. */
export type WebAppsListConfigurationsResponse = SiteConfigResourceCollection;

/** Optional parameters. */
export interface WebAppsUpdateApplicationSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateApplicationSettings operation. */
export type WebAppsUpdateApplicationSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListApplicationSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listApplicationSettings operation. */
export type WebAppsListApplicationSettingsResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsUpdateAuthSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAuthSettings operation. */
export type WebAppsUpdateAuthSettingsResponse = SiteAuthSettings;

/** Optional parameters. */
export interface WebAppsGetAuthSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAuthSettings operation. */
export type WebAppsGetAuthSettingsResponse = SiteAuthSettings;

/** Optional parameters. */
export interface WebAppsGetAuthSettingsV2WithoutSecretsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAuthSettingsV2WithoutSecrets operation. */
export type WebAppsGetAuthSettingsV2WithoutSecretsResponse = SiteAuthSettingsV2;

/** Optional parameters. */
export interface WebAppsUpdateAuthSettingsV2OptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAuthSettingsV2 operation. */
export type WebAppsUpdateAuthSettingsV2Response = SiteAuthSettingsV2;

/** Optional parameters. */
export interface WebAppsGetAuthSettingsV2OptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAuthSettingsV2 operation. */
export type WebAppsGetAuthSettingsV2Response = SiteAuthSettingsV2;

/** Optional parameters. */
export interface WebAppsUpdateAzureStorageAccountsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAzureStorageAccounts operation. */
export type WebAppsUpdateAzureStorageAccountsResponse = AzureStoragePropertyDictionaryResource;

/** Optional parameters. */
export interface WebAppsListAzureStorageAccountsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAzureStorageAccounts operation. */
export type WebAppsListAzureStorageAccountsResponse = AzureStoragePropertyDictionaryResource;

/** Optional parameters. */
export interface WebAppsUpdateBackupConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateBackupConfiguration operation. */
export type WebAppsUpdateBackupConfigurationResponse = BackupRequest;

/** Optional parameters. */
export interface WebAppsDeleteBackupConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetBackupConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBackupConfiguration operation. */
export type WebAppsGetBackupConfigurationResponse = BackupRequest;

/** Optional parameters. */
export interface WebAppsGetAppSettingsKeyVaultReferencesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAppSettingsKeyVaultReferences operation. */
export type WebAppsGetAppSettingsKeyVaultReferencesResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsGetAppSettingKeyVaultReferenceOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAppSettingKeyVaultReference operation. */
export type WebAppsGetAppSettingKeyVaultReferenceResponse = ApiKVReference;

/** Optional parameters. */
export interface WebAppsGetSiteConnectionStringKeyVaultReferencesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteConnectionStringKeyVaultReferences operation. */
export type WebAppsGetSiteConnectionStringKeyVaultReferencesResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsGetSiteConnectionStringKeyVaultReferenceOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteConnectionStringKeyVaultReference operation. */
export type WebAppsGetSiteConnectionStringKeyVaultReferenceResponse = ApiKVReference;

/** Optional parameters. */
export interface WebAppsUpdateConnectionStringsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateConnectionStrings operation. */
export type WebAppsUpdateConnectionStringsResponse = ConnectionStringDictionary;

/** Optional parameters. */
export interface WebAppsListConnectionStringsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConnectionStrings operation. */
export type WebAppsListConnectionStringsResponse = ConnectionStringDictionary;

/** Optional parameters. */
export interface WebAppsGetDiagnosticLogsConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDiagnosticLogsConfiguration operation. */
export type WebAppsGetDiagnosticLogsConfigurationResponse = SiteLogsConfig;

/** Optional parameters. */
export interface WebAppsUpdateDiagnosticLogsConfigOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateDiagnosticLogsConfig operation. */
export type WebAppsUpdateDiagnosticLogsConfigResponse = SiteLogsConfig;

/** Optional parameters. */
export interface WebAppsUpdateMetadataOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateMetadata operation. */
export type WebAppsUpdateMetadataResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListMetadataOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMetadata operation. */
export type WebAppsListMetadataResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListPublishingCredentialsOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the listPublishingCredentials operation. */
export type WebAppsListPublishingCredentialsResponse = User;

/** Optional parameters. */
export interface WebAppsUpdateSitePushSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSitePushSettings operation. */
export type WebAppsUpdateSitePushSettingsResponse = PushSettings;

/** Optional parameters. */
export interface WebAppsListSitePushSettingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSitePushSettings operation. */
export type WebAppsListSitePushSettingsResponse = PushSettings;

/** Optional parameters. */
export interface WebAppsListSlotConfigurationNamesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotConfigurationNames operation. */
export type WebAppsListSlotConfigurationNamesResponse = SlotConfigNamesResource;

/** Optional parameters. */
export interface WebAppsUpdateSlotConfigurationNamesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSlotConfigurationNames operation. */
export type WebAppsUpdateSlotConfigurationNamesResponse = SlotConfigNamesResource;

/** Optional parameters. */
export interface WebAppsGetConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getConfiguration operation. */
export type WebAppsGetConfigurationResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateConfiguration operation. */
export type WebAppsCreateOrUpdateConfigurationResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsUpdateConfigurationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateConfiguration operation. */
export type WebAppsUpdateConfigurationResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsListConfigurationSnapshotInfoOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurationSnapshotInfo operation. */
export type WebAppsListConfigurationSnapshotInfoResponse = SiteConfigurationSnapshotInfoCollection;

/** Optional parameters. */
export interface WebAppsGetConfigurationSnapshotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getConfigurationSnapshot operation. */
export type WebAppsGetConfigurationSnapshotResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsRecoverSiteConfigurationSnapshotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetWebSiteContainerLogsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWebSiteContainerLogs operation. */
export type WebAppsGetWebSiteContainerLogsResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsGetContainerLogsZipOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getContainerLogsZip operation. */
export type WebAppsGetContainerLogsZipResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsListContinuousWebJobsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listContinuousWebJobs operation. */
export type WebAppsListContinuousWebJobsResponse = ContinuousWebJobCollection;

/** Optional parameters. */
export interface WebAppsGetContinuousWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getContinuousWebJob operation. */
export type WebAppsGetContinuousWebJobResponse = ContinuousWebJob;

/** Optional parameters. */
export interface WebAppsDeleteContinuousWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStartContinuousWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStopContinuousWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListProductionSiteDeploymentStatusesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProductionSiteDeploymentStatuses operation. */
export type WebAppsListProductionSiteDeploymentStatusesResponse = CsmDeploymentStatusCollection;

/** Optional parameters. */
export interface WebAppsGetProductionSiteDeploymentStatusOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the getProductionSiteDeploymentStatus operation. */
export type WebAppsGetProductionSiteDeploymentStatusResponse = CsmDeploymentStatus;

/** Optional parameters. */
export interface WebAppsListDeploymentsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDeployments operation. */
export type WebAppsListDeploymentsResponse = DeploymentCollection;

/** Optional parameters. */
export interface WebAppsGetDeploymentOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDeployment operation. */
export type WebAppsGetDeploymentResponse = Deployment;

/** Optional parameters. */
export interface WebAppsCreateDeploymentOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createDeployment operation. */
export type WebAppsCreateDeploymentResponse = Deployment;

/** Optional parameters. */
export interface WebAppsDeleteDeploymentOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListDeploymentLogOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDeploymentLog operation. */
export type WebAppsListDeploymentLogResponse = Deployment;

/** Optional parameters. */
export interface WebAppsDiscoverBackupOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the discoverBackup operation. */
export type WebAppsDiscoverBackupResponse = RestoreRequest;

/** Optional parameters. */
export interface WebAppsListDomainOwnershipIdentifiersOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDomainOwnershipIdentifiers operation. */
export type WebAppsListDomainOwnershipIdentifiersResponse = IdentifierCollection;

/** Optional parameters. */
export interface WebAppsGetDomainOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDomainOwnershipIdentifier operation. */
export type WebAppsGetDomainOwnershipIdentifierResponse = Identifier;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateDomainOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateDomainOwnershipIdentifier operation. */
export type WebAppsCreateOrUpdateDomainOwnershipIdentifierResponse = Identifier;

/** Optional parameters. */
export interface WebAppsDeleteDomainOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateDomainOwnershipIdentifierOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateDomainOwnershipIdentifier operation. */
export type WebAppsUpdateDomainOwnershipIdentifierResponse = Identifier;

/** Optional parameters. */
export interface WebAppsGetMSDeployStatusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getMSDeployStatus operation. */
export type WebAppsGetMSDeployStatusResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsCreateMSDeployOperationOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createMSDeployOperation operation. */
export type WebAppsCreateMSDeployOperationResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsGetMSDeployLogOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getMSDeployLog operation. */
export type WebAppsGetMSDeployLogResponse = MSDeployLog;

/** Optional parameters. */
export interface WebAppsGetOneDeployStatusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getOneDeployStatus operation. */
export type WebAppsGetOneDeployStatusResponse = Record<string, unknown>;

/** Optional parameters. */
export interface WebAppsCreateOneDeployOperationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOneDeployOperation operation. */
export type WebAppsCreateOneDeployOperationResponse = Record<string, unknown>;

/** Optional parameters. */
export interface WebAppsListFunctionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listFunctions operation. */
export type WebAppsListFunctionsResponse = FunctionEnvelopeCollection;

/** Optional parameters. */
export interface WebAppsGetFunctionsAdminTokenOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getFunctionsAdminToken operation. */
export type WebAppsGetFunctionsAdminTokenResponse = {
  /** The parsed response body. */
  body: string;
};

/** Optional parameters. */
export interface WebAppsGetFunctionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getFunction operation. */
export type WebAppsGetFunctionResponse = FunctionEnvelope;

/** Optional parameters. */
export interface WebAppsCreateFunctionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createFunction operation. */
export type WebAppsCreateFunctionResponse = FunctionEnvelope;

/** Optional parameters. */
export interface WebAppsDeleteFunctionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsCreateOrUpdateFunctionSecretOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateFunctionSecret operation. */
export type WebAppsCreateOrUpdateFunctionSecretResponse = KeyInfo;

/** Optional parameters. */
export interface WebAppsDeleteFunctionSecretOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListFunctionKeysOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listFunctionKeys operation. */
export type WebAppsListFunctionKeysResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListFunctionSecretsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listFunctionSecrets operation. */
export type WebAppsListFunctionSecretsResponse = FunctionSecrets;

/** Optional parameters. */
export interface WebAppsListHostKeysOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostKeys operation. */
export type WebAppsListHostKeysResponse = HostKeys;

/** Optional parameters. */
export interface WebAppsListSyncStatusOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsSyncFunctionsOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsCreateOrUpdateHostSecretOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateHostSecret operation. */
export type WebAppsCreateOrUpdateHostSecretResponse = KeyInfo;

/** Optional parameters. */
export interface WebAppsDeleteHostSecretOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListHostNameBindingsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostNameBindings operation. */
export type WebAppsListHostNameBindingsResponse = HostNameBindingCollection;

/** Optional parameters. */
export interface WebAppsGetHostNameBindingOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getHostNameBinding operation. */
export type WebAppsGetHostNameBindingResponse = HostNameBinding;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateHostNameBindingOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateHostNameBinding operation. */
export type WebAppsCreateOrUpdateHostNameBindingResponse = HostNameBinding;

/** Optional parameters. */
export interface WebAppsDeleteHostNameBindingOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetHybridConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getHybridConnection operation. */
export type WebAppsGetHybridConnectionResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateHybridConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateHybridConnection operation. */
export type WebAppsCreateOrUpdateHybridConnectionResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsDeleteHybridConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateHybridConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateHybridConnection operation. */
export type WebAppsUpdateHybridConnectionResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsListHybridConnectionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHybridConnections operation. */
export type WebAppsListHybridConnectionsResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsListRelayServiceConnectionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRelayServiceConnections operation. */
export type WebAppsListRelayServiceConnectionsResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsGetRelayServiceConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getRelayServiceConnection operation. */
export type WebAppsGetRelayServiceConnectionResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateRelayServiceConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateRelayServiceConnection operation. */
export type WebAppsCreateOrUpdateRelayServiceConnectionResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsDeleteRelayServiceConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateRelayServiceConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateRelayServiceConnection operation. */
export type WebAppsUpdateRelayServiceConnectionResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsListInstanceIdentifiersOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceIdentifiers operation. */
export type WebAppsListInstanceIdentifiersResponse = WebAppInstanceStatusCollection;

/** Optional parameters. */
export interface WebAppsGetInstanceInfoOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceInfo operation. */
export type WebAppsGetInstanceInfoResponse = WebSiteInstanceStatus;

/** Optional parameters. */
export interface WebAppsGetInstanceMsDeployStatusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceMsDeployStatus operation. */
export type WebAppsGetInstanceMsDeployStatusResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsCreateInstanceMSDeployOperationOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createInstanceMSDeployOperation operation. */
export type WebAppsCreateInstanceMSDeployOperationResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsGetInstanceMSDeployLogOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceMSDeployLog operation. */
export type WebAppsGetInstanceMSDeployLogResponse = MSDeployLog;

/** Optional parameters. */
export interface WebAppsListInstanceProcessesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcesses operation. */
export type WebAppsListInstanceProcessesResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsGetInstanceProcessOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceProcess operation. */
export type WebAppsGetInstanceProcessResponse = ProcessInfo;

/** Optional parameters. */
export interface WebAppsDeleteInstanceProcessOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetInstanceProcessDumpOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceProcessDump operation. */
export type WebAppsGetInstanceProcessDumpResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsListInstanceProcessModulesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessModules operation. */
export type WebAppsListInstanceProcessModulesResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsGetInstanceProcessModuleOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceProcessModule operation. */
export type WebAppsGetInstanceProcessModuleResponse = ProcessModuleInfo;

/** Optional parameters. */
export interface WebAppsListInstanceProcessThreadsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessThreads operation. */
export type WebAppsListInstanceProcessThreadsResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsIsCloneableOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the isCloneable operation. */
export type WebAppsIsCloneableResponse = SiteCloneability;

/** Optional parameters. */
export interface WebAppsListSiteBackupsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteBackups operation. */
export type WebAppsListSiteBackupsResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsListSyncFunctionTriggersOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSyncFunctionTriggers operation. */
export type WebAppsListSyncFunctionTriggersResponse = FunctionSecrets;

/** Optional parameters. */
export interface WebAppsMigrateStorageOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the migrateStorage operation. */
export type WebAppsMigrateStorageResponse = StorageMigrationResponse;

/** Optional parameters. */
export interface WebAppsMigrateMySqlOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the migrateMySql operation. */
export type WebAppsMigrateMySqlResponse = Operation;

/** Optional parameters. */
export interface WebAppsGetMigrateMySqlStatusOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getMigrateMySqlStatus operation. */
export type WebAppsGetMigrateMySqlStatusResponse = MigrateMySqlStatus;

/** Optional parameters. */
export interface WebAppsGetSwiftVirtualNetworkConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSwiftVirtualNetworkConnection operation. */
export type WebAppsGetSwiftVirtualNetworkConnectionResponse = SwiftVirtualNetwork;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateSwiftVirtualNetworkConnectionWithCheck operation. */
export type WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckResponse = SwiftVirtualNetwork;

/** Optional parameters. */
export interface WebAppsDeleteSwiftVirtualNetworkOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSwiftVirtualNetworkConnectionWithCheck operation. */
export type WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckResponse = SwiftVirtualNetwork;

/** Optional parameters. */
export interface WebAppsListNetworkFeaturesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNetworkFeatures operation. */
export type WebAppsListNetworkFeaturesResponse = NetworkFeatures;

/** Optional parameters. */
export interface WebAppsGetNetworkTraceOperationOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTraceOperation operation. */
export type WebAppsGetNetworkTraceOperationResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsStartWebSiteNetworkTraceOptionalParams
  extends coreClient.OperationOptions {
  /** The duration to keep capturing in seconds. */
  durationInSeconds?: number;
  /** The maximum frame length in bytes (Optional). */
  maxFrameLength?: number;
  /** The Blob URL to store capture file. */
  sasUrl?: string;
}

/** Contains response data for the startWebSiteNetworkTrace operation. */
export type WebAppsStartWebSiteNetworkTraceResponse = {
  /** The parsed response body. */
  body: string;
};

/** Optional parameters. */
export interface WebAppsStartWebSiteNetworkTraceOperationOptionalParams
  extends coreClient.OperationOptions {
  /** The duration to keep capturing in seconds. */
  durationInSeconds?: number;
  /** The maximum frame length in bytes (Optional). */
  maxFrameLength?: number;
  /** The Blob URL to store capture file. */
  sasUrl?: string;
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the startWebSiteNetworkTraceOperation operation. */
export type WebAppsStartWebSiteNetworkTraceOperationResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsStopWebSiteNetworkTraceOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetNetworkTracesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTraces operation. */
export type WebAppsGetNetworkTracesResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsGetNetworkTraceOperationV2OptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTraceOperationV2 operation. */
export type WebAppsGetNetworkTraceOperationV2Response = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsGetNetworkTracesV2OptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTracesV2 operation. */
export type WebAppsGetNetworkTracesV2Response = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsGenerateNewSitePublishingPasswordOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListPerfMonCountersOptionalParams
  extends coreClient.OperationOptions {
  /** Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example: $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'. */
  filter?: string;
}

/** Contains response data for the listPerfMonCounters operation. */
export type WebAppsListPerfMonCountersResponse = PerfMonCounterCollection;

/** Optional parameters. */
export interface WebAppsGetSitePhpErrorLogFlagOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSitePhpErrorLogFlag operation. */
export type WebAppsGetSitePhpErrorLogFlagResponse = SitePhpErrorLogFlag;

/** Optional parameters. */
export interface WebAppsListPremierAddOnsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPremierAddOns operation. */
export type WebAppsListPremierAddOnsResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsGetPremierAddOnOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPremierAddOn operation. */
export type WebAppsGetPremierAddOnResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsAddPremierAddOnOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the addPremierAddOn operation. */
export type WebAppsAddPremierAddOnResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsDeletePremierAddOnOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdatePremierAddOnOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updatePremierAddOn operation. */
export type WebAppsUpdatePremierAddOnResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsGetPrivateAccessOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateAccess operation. */
export type WebAppsGetPrivateAccessResponse = PrivateAccess;

/** Optional parameters. */
export interface WebAppsPutPrivateAccessVnetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the putPrivateAccessVnet operation. */
export type WebAppsPutPrivateAccessVnetResponse = PrivateAccess;

/** Optional parameters. */
export interface WebAppsGetPrivateEndpointConnectionListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionList operation. */
export type WebAppsGetPrivateEndpointConnectionListResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface WebAppsGetPrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnection operation. */
export type WebAppsGetPrivateEndpointConnectionResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface WebAppsApproveOrRejectPrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the approveOrRejectPrivateEndpointConnection operation. */
export type WebAppsApproveOrRejectPrivateEndpointConnectionResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface WebAppsDeletePrivateEndpointConnectionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the deletePrivateEndpointConnection operation. */
export type WebAppsDeletePrivateEndpointConnectionResponse = Record<
  string,
  unknown
>;

/** Optional parameters. */
export interface WebAppsGetPrivateLinkResourcesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateLinkResources operation. */
export type WebAppsGetPrivateLinkResourcesResponse = PrivateLinkResourcesWrapper;

/** Optional parameters. */
export interface WebAppsListProcessesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcesses operation. */
export type WebAppsListProcessesResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsGetProcessOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getProcess operation. */
export type WebAppsGetProcessResponse = ProcessInfo;

/** Optional parameters. */
export interface WebAppsDeleteProcessOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetProcessDumpOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getProcessDump operation. */
export type WebAppsGetProcessDumpResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsListProcessModulesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessModules operation. */
export type WebAppsListProcessModulesResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsGetProcessModuleOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getProcessModule operation. */
export type WebAppsGetProcessModuleResponse = ProcessModuleInfo;

/** Optional parameters. */
export interface WebAppsListProcessThreadsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessThreads operation. */
export type WebAppsListProcessThreadsResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsListPublicCertificatesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPublicCertificates operation. */
export type WebAppsListPublicCertificatesResponse = PublicCertificateCollection;

/** Optional parameters. */
export interface WebAppsGetPublicCertificateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPublicCertificate operation. */
export type WebAppsGetPublicCertificateResponse = PublicCertificate;

/** Optional parameters. */
export interface WebAppsCreateOrUpdatePublicCertificateOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdatePublicCertificate operation. */
export type WebAppsCreateOrUpdatePublicCertificateResponse = PublicCertificate;

/** Optional parameters. */
export interface WebAppsDeletePublicCertificateOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListPublishingProfileXmlWithSecretsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPublishingProfileXmlWithSecrets operation. */
export type WebAppsListPublishingProfileXmlWithSecretsResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsResetProductionSlotConfigOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsRestartOptionalParams
  extends coreClient.OperationOptions {
  /** Specify true to apply the configuration settings and restarts the app only if necessary. By default, the API always restarts and reprovisions the app. */
  softRestart?: boolean;
  /** Specify true to block until the app is restarted. By default, it is set to false, and the API responds immediately (asynchronous). */
  synchronous?: boolean;
}

/** Optional parameters. */
export interface WebAppsRestoreFromBackupBlobOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsRestoreFromDeletedAppOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsRestoreSnapshotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsListSiteExtensionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteExtensions operation. */
export type WebAppsListSiteExtensionsResponse = SiteExtensionInfoCollection;

/** Optional parameters. */
export interface WebAppsGetSiteExtensionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteExtension operation. */
export type WebAppsGetSiteExtensionResponse = SiteExtensionInfo;

/** Optional parameters. */
export interface WebAppsInstallSiteExtensionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the installSiteExtension operation. */
export type WebAppsInstallSiteExtensionResponse = SiteExtensionInfo;

/** Optional parameters. */
export interface WebAppsDeleteSiteExtensionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListSlotsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlots operation. */
export type WebAppsListSlotsResponse = WebAppCollection;

/** Optional parameters. */
export interface WebAppsGetSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSlot operation. */
export type WebAppsGetSlotResponse = Site;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateSlot operation. */
export type WebAppsCreateOrUpdateSlotResponse = Site;

/** Optional parameters. */
export interface WebAppsDeleteSlotOptionalParams
  extends coreClient.OperationOptions {
  /** If true, web app metrics are also deleted. */
  deleteMetrics?: boolean;
  /** Specify false if you want to keep empty App Service plan. By default, empty App Service plan is deleted. */
  deleteEmptyServerFarm?: boolean;
}

/** Optional parameters. */
export interface WebAppsUpdateSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSlot operation. */
export type WebAppsUpdateSlotResponse = Site;

/** Optional parameters. */
export interface WebAppsAnalyzeCustomHostnameSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Custom hostname. */
  hostName?: string;
}

/** Contains response data for the analyzeCustomHostnameSlot operation. */
export type WebAppsAnalyzeCustomHostnameSlotResponse = CustomHostnameAnalysisResult;

/** Optional parameters. */
export interface WebAppsApplySlotConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsBackupSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the backupSlot operation. */
export type WebAppsBackupSlotResponse = BackupItem;

/** Optional parameters. */
export interface WebAppsListBackupsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBackupsSlot operation. */
export type WebAppsListBackupsSlotResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsGetBackupStatusSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBackupStatusSlot operation. */
export type WebAppsGetBackupStatusSlotResponse = BackupItem;

/** Optional parameters. */
export interface WebAppsDeleteBackupSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListBackupStatusSecretsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBackupStatusSecretsSlot operation. */
export type WebAppsListBackupStatusSecretsSlotResponse = BackupItem;

/** Optional parameters. */
export interface WebAppsRestoreSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsListBasicPublishingCredentialsPoliciesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBasicPublishingCredentialsPoliciesSlot operation. */
export type WebAppsListBasicPublishingCredentialsPoliciesSlotResponse = PublishingCredentialsPoliciesCollection;

/** Optional parameters. */
export interface WebAppsGetFtpAllowedSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getFtpAllowedSlot operation. */
export type WebAppsGetFtpAllowedSlotResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsUpdateFtpAllowedSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateFtpAllowedSlot operation. */
export type WebAppsUpdateFtpAllowedSlotResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsGetScmAllowedSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getScmAllowedSlot operation. */
export type WebAppsGetScmAllowedSlotResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsUpdateScmAllowedSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateScmAllowedSlot operation. */
export type WebAppsUpdateScmAllowedSlotResponse = CsmPublishingCredentialsPoliciesEntity;

/** Optional parameters. */
export interface WebAppsListConfigurationsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurationsSlot operation. */
export type WebAppsListConfigurationsSlotResponse = SiteConfigResourceCollection;

/** Optional parameters. */
export interface WebAppsUpdateApplicationSettingsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateApplicationSettingsSlot operation. */
export type WebAppsUpdateApplicationSettingsSlotResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListApplicationSettingsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listApplicationSettingsSlot operation. */
export type WebAppsListApplicationSettingsSlotResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsUpdateAuthSettingsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAuthSettingsSlot operation. */
export type WebAppsUpdateAuthSettingsSlotResponse = SiteAuthSettings;

/** Optional parameters. */
export interface WebAppsGetAuthSettingsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAuthSettingsSlot operation. */
export type WebAppsGetAuthSettingsSlotResponse = SiteAuthSettings;

/** Optional parameters. */
export interface WebAppsGetAuthSettingsV2WithoutSecretsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAuthSettingsV2WithoutSecretsSlot operation. */
export type WebAppsGetAuthSettingsV2WithoutSecretsSlotResponse = SiteAuthSettingsV2;

/** Optional parameters. */
export interface WebAppsUpdateAuthSettingsV2SlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAuthSettingsV2Slot operation. */
export type WebAppsUpdateAuthSettingsV2SlotResponse = SiteAuthSettingsV2;

/** Optional parameters. */
export interface WebAppsGetAuthSettingsV2SlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAuthSettingsV2Slot operation. */
export type WebAppsGetAuthSettingsV2SlotResponse = SiteAuthSettingsV2;

/** Optional parameters. */
export interface WebAppsUpdateAzureStorageAccountsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateAzureStorageAccountsSlot operation. */
export type WebAppsUpdateAzureStorageAccountsSlotResponse = AzureStoragePropertyDictionaryResource;

/** Optional parameters. */
export interface WebAppsListAzureStorageAccountsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listAzureStorageAccountsSlot operation. */
export type WebAppsListAzureStorageAccountsSlotResponse = AzureStoragePropertyDictionaryResource;

/** Optional parameters. */
export interface WebAppsUpdateBackupConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateBackupConfigurationSlot operation. */
export type WebAppsUpdateBackupConfigurationSlotResponse = BackupRequest;

/** Optional parameters. */
export interface WebAppsDeleteBackupConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetBackupConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getBackupConfigurationSlot operation. */
export type WebAppsGetBackupConfigurationSlotResponse = BackupRequest;

/** Optional parameters. */
export interface WebAppsGetAppSettingsKeyVaultReferencesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAppSettingsKeyVaultReferencesSlot operation. */
export type WebAppsGetAppSettingsKeyVaultReferencesSlotResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsGetAppSettingKeyVaultReferenceSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAppSettingKeyVaultReferenceSlot operation. */
export type WebAppsGetAppSettingKeyVaultReferenceSlotResponse = ApiKVReference;

/** Optional parameters. */
export interface WebAppsGetSiteConnectionStringKeyVaultReferencesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteConnectionStringKeyVaultReferencesSlot operation. */
export type WebAppsGetSiteConnectionStringKeyVaultReferencesSlotResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsGetSiteConnectionStringKeyVaultReferenceSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteConnectionStringKeyVaultReferenceSlot operation. */
export type WebAppsGetSiteConnectionStringKeyVaultReferenceSlotResponse = ApiKVReference;

/** Optional parameters. */
export interface WebAppsUpdateConnectionStringsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateConnectionStringsSlot operation. */
export type WebAppsUpdateConnectionStringsSlotResponse = ConnectionStringDictionary;

/** Optional parameters. */
export interface WebAppsListConnectionStringsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConnectionStringsSlot operation. */
export type WebAppsListConnectionStringsSlotResponse = ConnectionStringDictionary;

/** Optional parameters. */
export interface WebAppsGetDiagnosticLogsConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDiagnosticLogsConfigurationSlot operation. */
export type WebAppsGetDiagnosticLogsConfigurationSlotResponse = SiteLogsConfig;

/** Optional parameters. */
export interface WebAppsUpdateDiagnosticLogsConfigSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateDiagnosticLogsConfigSlot operation. */
export type WebAppsUpdateDiagnosticLogsConfigSlotResponse = SiteLogsConfig;

/** Optional parameters. */
export interface WebAppsUpdateMetadataSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateMetadataSlot operation. */
export type WebAppsUpdateMetadataSlotResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListMetadataSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listMetadataSlot operation. */
export type WebAppsListMetadataSlotResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListPublishingCredentialsSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the listPublishingCredentialsSlot operation. */
export type WebAppsListPublishingCredentialsSlotResponse = User;

/** Optional parameters. */
export interface WebAppsUpdateSitePushSettingsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSitePushSettingsSlot operation. */
export type WebAppsUpdateSitePushSettingsSlotResponse = PushSettings;

/** Optional parameters. */
export interface WebAppsListSitePushSettingsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSitePushSettingsSlot operation. */
export type WebAppsListSitePushSettingsSlotResponse = PushSettings;

/** Optional parameters. */
export interface WebAppsGetConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getConfigurationSlot operation. */
export type WebAppsGetConfigurationSlotResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateConfigurationSlot operation. */
export type WebAppsCreateOrUpdateConfigurationSlotResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsUpdateConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateConfigurationSlot operation. */
export type WebAppsUpdateConfigurationSlotResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsListConfigurationSnapshotInfoSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurationSnapshotInfoSlot operation. */
export type WebAppsListConfigurationSnapshotInfoSlotResponse = SiteConfigurationSnapshotInfoCollection;

/** Optional parameters. */
export interface WebAppsGetConfigurationSnapshotSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getConfigurationSnapshotSlot operation. */
export type WebAppsGetConfigurationSnapshotSlotResponse = SiteConfigResource;

/** Optional parameters. */
export interface WebAppsRecoverSiteConfigurationSnapshotSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetWebSiteContainerLogsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWebSiteContainerLogsSlot operation. */
export type WebAppsGetWebSiteContainerLogsSlotResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsGetContainerLogsZipSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getContainerLogsZipSlot operation. */
export type WebAppsGetContainerLogsZipSlotResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsListContinuousWebJobsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listContinuousWebJobsSlot operation. */
export type WebAppsListContinuousWebJobsSlotResponse = ContinuousWebJobCollection;

/** Optional parameters. */
export interface WebAppsGetContinuousWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getContinuousWebJobSlot operation. */
export type WebAppsGetContinuousWebJobSlotResponse = ContinuousWebJob;

/** Optional parameters. */
export interface WebAppsDeleteContinuousWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStartContinuousWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStopContinuousWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListSlotSiteDeploymentStatusesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotSiteDeploymentStatusesSlot operation. */
export type WebAppsListSlotSiteDeploymentStatusesSlotResponse = CsmDeploymentStatusCollection;

/** Optional parameters. */
export interface WebAppsGetSlotSiteDeploymentStatusSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the getSlotSiteDeploymentStatusSlot operation. */
export type WebAppsGetSlotSiteDeploymentStatusSlotResponse = CsmDeploymentStatus;

/** Optional parameters. */
export interface WebAppsListDeploymentsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDeploymentsSlot operation. */
export type WebAppsListDeploymentsSlotResponse = DeploymentCollection;

/** Optional parameters. */
export interface WebAppsGetDeploymentSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDeploymentSlot operation. */
export type WebAppsGetDeploymentSlotResponse = Deployment;

/** Optional parameters. */
export interface WebAppsCreateDeploymentSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createDeploymentSlot operation. */
export type WebAppsCreateDeploymentSlotResponse = Deployment;

/** Optional parameters. */
export interface WebAppsDeleteDeploymentSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListDeploymentLogSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDeploymentLogSlot operation. */
export type WebAppsListDeploymentLogSlotResponse = Deployment;

/** Optional parameters. */
export interface WebAppsDiscoverBackupSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the discoverBackupSlot operation. */
export type WebAppsDiscoverBackupSlotResponse = RestoreRequest;

/** Optional parameters. */
export interface WebAppsListDomainOwnershipIdentifiersSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDomainOwnershipIdentifiersSlot operation. */
export type WebAppsListDomainOwnershipIdentifiersSlotResponse = IdentifierCollection;

/** Optional parameters. */
export interface WebAppsGetDomainOwnershipIdentifierSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getDomainOwnershipIdentifierSlot operation. */
export type WebAppsGetDomainOwnershipIdentifierSlotResponse = Identifier;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateDomainOwnershipIdentifierSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateDomainOwnershipIdentifierSlot operation. */
export type WebAppsCreateOrUpdateDomainOwnershipIdentifierSlotResponse = Identifier;

/** Optional parameters. */
export interface WebAppsDeleteDomainOwnershipIdentifierSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateDomainOwnershipIdentifierSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateDomainOwnershipIdentifierSlot operation. */
export type WebAppsUpdateDomainOwnershipIdentifierSlotResponse = Identifier;

/** Optional parameters. */
export interface WebAppsGetMSDeployStatusSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getMSDeployStatusSlot operation. */
export type WebAppsGetMSDeployStatusSlotResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsCreateMSDeployOperationSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createMSDeployOperationSlot operation. */
export type WebAppsCreateMSDeployOperationSlotResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsGetMSDeployLogSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getMSDeployLogSlot operation. */
export type WebAppsGetMSDeployLogSlotResponse = MSDeployLog;

/** Optional parameters. */
export interface WebAppsListInstanceFunctionsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceFunctionsSlot operation. */
export type WebAppsListInstanceFunctionsSlotResponse = FunctionEnvelopeCollection;

/** Optional parameters. */
export interface WebAppsGetFunctionsAdminTokenSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getFunctionsAdminTokenSlot operation. */
export type WebAppsGetFunctionsAdminTokenSlotResponse = {
  /** The parsed response body. */
  body: string;
};

/** Optional parameters. */
export interface WebAppsGetInstanceFunctionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceFunctionSlot operation. */
export type WebAppsGetInstanceFunctionSlotResponse = FunctionEnvelope;

/** Optional parameters. */
export interface WebAppsCreateInstanceFunctionSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createInstanceFunctionSlot operation. */
export type WebAppsCreateInstanceFunctionSlotResponse = FunctionEnvelope;

/** Optional parameters. */
export interface WebAppsDeleteInstanceFunctionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsCreateOrUpdateFunctionSecretSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateFunctionSecretSlot operation. */
export type WebAppsCreateOrUpdateFunctionSecretSlotResponse = KeyInfo;

/** Optional parameters. */
export interface WebAppsDeleteFunctionSecretSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListFunctionKeysSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listFunctionKeysSlot operation. */
export type WebAppsListFunctionKeysSlotResponse = StringDictionary;

/** Optional parameters. */
export interface WebAppsListFunctionSecretsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listFunctionSecretsSlot operation. */
export type WebAppsListFunctionSecretsSlotResponse = FunctionSecrets;

/** Optional parameters. */
export interface WebAppsListHostKeysSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostKeysSlot operation. */
export type WebAppsListHostKeysSlotResponse = HostKeys;

/** Optional parameters. */
export interface WebAppsListSyncStatusSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsSyncFunctionsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsCreateOrUpdateHostSecretSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateHostSecretSlot operation. */
export type WebAppsCreateOrUpdateHostSecretSlotResponse = KeyInfo;

/** Optional parameters. */
export interface WebAppsDeleteHostSecretSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListHostNameBindingsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostNameBindingsSlot operation. */
export type WebAppsListHostNameBindingsSlotResponse = HostNameBindingCollection;

/** Optional parameters. */
export interface WebAppsGetHostNameBindingSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getHostNameBindingSlot operation. */
export type WebAppsGetHostNameBindingSlotResponse = HostNameBinding;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateHostNameBindingSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateHostNameBindingSlot operation. */
export type WebAppsCreateOrUpdateHostNameBindingSlotResponse = HostNameBinding;

/** Optional parameters. */
export interface WebAppsDeleteHostNameBindingSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetHybridConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getHybridConnectionSlot operation. */
export type WebAppsGetHybridConnectionSlotResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateHybridConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateHybridConnectionSlot operation. */
export type WebAppsCreateOrUpdateHybridConnectionSlotResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsDeleteHybridConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateHybridConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateHybridConnectionSlot operation. */
export type WebAppsUpdateHybridConnectionSlotResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsListHybridConnectionsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHybridConnectionsSlot operation. */
export type WebAppsListHybridConnectionsSlotResponse = HybridConnection;

/** Optional parameters. */
export interface WebAppsListRelayServiceConnectionsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listRelayServiceConnectionsSlot operation. */
export type WebAppsListRelayServiceConnectionsSlotResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsGetRelayServiceConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getRelayServiceConnectionSlot operation. */
export type WebAppsGetRelayServiceConnectionSlotResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateRelayServiceConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateRelayServiceConnectionSlot operation. */
export type WebAppsCreateOrUpdateRelayServiceConnectionSlotResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsDeleteRelayServiceConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateRelayServiceConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateRelayServiceConnectionSlot operation. */
export type WebAppsUpdateRelayServiceConnectionSlotResponse = RelayServiceConnectionEntity;

/** Optional parameters. */
export interface WebAppsListInstanceIdentifiersSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceIdentifiersSlot operation. */
export type WebAppsListInstanceIdentifiersSlotResponse = WebAppInstanceStatusCollection;

/** Optional parameters. */
export interface WebAppsGetInstanceInfoSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceInfoSlot operation. */
export type WebAppsGetInstanceInfoSlotResponse = WebSiteInstanceStatus;

/** Optional parameters. */
export interface WebAppsGetInstanceMsDeployStatusSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceMsDeployStatusSlot operation. */
export type WebAppsGetInstanceMsDeployStatusSlotResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsCreateInstanceMSDeployOperationSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createInstanceMSDeployOperationSlot operation. */
export type WebAppsCreateInstanceMSDeployOperationSlotResponse = MSDeployStatus;

/** Optional parameters. */
export interface WebAppsGetInstanceMSDeployLogSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceMSDeployLogSlot operation. */
export type WebAppsGetInstanceMSDeployLogSlotResponse = MSDeployLog;

/** Optional parameters. */
export interface WebAppsListInstanceProcessesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessesSlot operation. */
export type WebAppsListInstanceProcessesSlotResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsGetInstanceProcessSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceProcessSlot operation. */
export type WebAppsGetInstanceProcessSlotResponse = ProcessInfo;

/** Optional parameters. */
export interface WebAppsDeleteInstanceProcessSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetInstanceProcessDumpSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceProcessDumpSlot operation. */
export type WebAppsGetInstanceProcessDumpSlotResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsListInstanceProcessModulesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessModulesSlot operation. */
export type WebAppsListInstanceProcessModulesSlotResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsGetInstanceProcessModuleSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceProcessModuleSlot operation. */
export type WebAppsGetInstanceProcessModuleSlotResponse = ProcessModuleInfo;

/** Optional parameters. */
export interface WebAppsListInstanceProcessThreadsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessThreadsSlot operation. */
export type WebAppsListInstanceProcessThreadsSlotResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsIsCloneableSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the isCloneableSlot operation. */
export type WebAppsIsCloneableSlotResponse = SiteCloneability;

/** Optional parameters. */
export interface WebAppsListSiteBackupsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteBackupsSlot operation. */
export type WebAppsListSiteBackupsSlotResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsListSyncFunctionTriggersSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSyncFunctionTriggersSlot operation. */
export type WebAppsListSyncFunctionTriggersSlotResponse = FunctionSecrets;

/** Optional parameters. */
export interface WebAppsGetMigrateMySqlStatusSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getMigrateMySqlStatusSlot operation. */
export type WebAppsGetMigrateMySqlStatusSlotResponse = MigrateMySqlStatus;

/** Optional parameters. */
export interface WebAppsGetSwiftVirtualNetworkConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSwiftVirtualNetworkConnectionSlot operation. */
export type WebAppsGetSwiftVirtualNetworkConnectionSlotResponse = SwiftVirtualNetwork;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateSwiftVirtualNetworkConnectionWithCheckSlot operation. */
export type WebAppsCreateOrUpdateSwiftVirtualNetworkConnectionWithCheckSlotResponse = SwiftVirtualNetwork;

/** Optional parameters. */
export interface WebAppsDeleteSwiftVirtualNetworkSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSwiftVirtualNetworkConnectionWithCheckSlot operation. */
export type WebAppsUpdateSwiftVirtualNetworkConnectionWithCheckSlotResponse = SwiftVirtualNetwork;

/** Optional parameters. */
export interface WebAppsListNetworkFeaturesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNetworkFeaturesSlot operation. */
export type WebAppsListNetworkFeaturesSlotResponse = NetworkFeatures;

/** Optional parameters. */
export interface WebAppsGetNetworkTraceOperationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTraceOperationSlot operation. */
export type WebAppsGetNetworkTraceOperationSlotResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsStartWebSiteNetworkTraceSlotOptionalParams
  extends coreClient.OperationOptions {
  /** The duration to keep capturing in seconds. */
  durationInSeconds?: number;
  /** The maximum frame length in bytes (Optional). */
  maxFrameLength?: number;
  /** The Blob URL to store capture file. */
  sasUrl?: string;
}

/** Contains response data for the startWebSiteNetworkTraceSlot operation. */
export type WebAppsStartWebSiteNetworkTraceSlotResponse = {
  /** The parsed response body. */
  body: string;
};

/** Optional parameters. */
export interface WebAppsStartWebSiteNetworkTraceOperationSlotOptionalParams
  extends coreClient.OperationOptions {
  /** The duration to keep capturing in seconds. */
  durationInSeconds?: number;
  /** The maximum frame length in bytes (Optional). */
  maxFrameLength?: number;
  /** The Blob URL to store capture file. */
  sasUrl?: string;
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the startWebSiteNetworkTraceOperationSlot operation. */
export type WebAppsStartWebSiteNetworkTraceOperationSlotResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsStopWebSiteNetworkTraceSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetNetworkTracesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTracesSlot operation. */
export type WebAppsGetNetworkTracesSlotResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsGetNetworkTraceOperationSlotV2OptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTraceOperationSlotV2 operation. */
export type WebAppsGetNetworkTraceOperationSlotV2Response = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsGetNetworkTracesSlotV2OptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getNetworkTracesSlotV2 operation. */
export type WebAppsGetNetworkTracesSlotV2Response = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsGenerateNewSitePublishingPasswordSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListPerfMonCountersSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Return only usages/metrics specified in the filter. Filter conforms to odata syntax. Example: $filter=(startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'. */
  filter?: string;
}

/** Contains response data for the listPerfMonCountersSlot operation. */
export type WebAppsListPerfMonCountersSlotResponse = PerfMonCounterCollection;

/** Optional parameters. */
export interface WebAppsGetSitePhpErrorLogFlagSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSitePhpErrorLogFlagSlot operation. */
export type WebAppsGetSitePhpErrorLogFlagSlotResponse = SitePhpErrorLogFlag;

/** Optional parameters. */
export interface WebAppsListPremierAddOnsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPremierAddOnsSlot operation. */
export type WebAppsListPremierAddOnsSlotResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsGetPremierAddOnSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPremierAddOnSlot operation. */
export type WebAppsGetPremierAddOnSlotResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsAddPremierAddOnSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the addPremierAddOnSlot operation. */
export type WebAppsAddPremierAddOnSlotResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsDeletePremierAddOnSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdatePremierAddOnSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updatePremierAddOnSlot operation. */
export type WebAppsUpdatePremierAddOnSlotResponse = PremierAddOn;

/** Optional parameters. */
export interface WebAppsGetPrivateAccessSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateAccessSlot operation. */
export type WebAppsGetPrivateAccessSlotResponse = PrivateAccess;

/** Optional parameters. */
export interface WebAppsPutPrivateAccessVnetSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the putPrivateAccessVnetSlot operation. */
export type WebAppsPutPrivateAccessVnetSlotResponse = PrivateAccess;

/** Optional parameters. */
export interface WebAppsGetPrivateEndpointConnectionListSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionListSlot operation. */
export type WebAppsGetPrivateEndpointConnectionListSlotResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface WebAppsGetPrivateEndpointConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionSlot operation. */
export type WebAppsGetPrivateEndpointConnectionSlotResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface WebAppsApproveOrRejectPrivateEndpointConnectionSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the approveOrRejectPrivateEndpointConnectionSlot operation. */
export type WebAppsApproveOrRejectPrivateEndpointConnectionSlotResponse = RemotePrivateEndpointConnectionARMResource;

/** Optional parameters. */
export interface WebAppsDeletePrivateEndpointConnectionSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the deletePrivateEndpointConnectionSlot operation. */
export type WebAppsDeletePrivateEndpointConnectionSlotResponse = Record<
  string,
  unknown
>;

/** Optional parameters. */
export interface WebAppsGetPrivateLinkResourcesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateLinkResourcesSlot operation. */
export type WebAppsGetPrivateLinkResourcesSlotResponse = PrivateLinkResourcesWrapper;

/** Optional parameters. */
export interface WebAppsListProcessesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessesSlot operation. */
export type WebAppsListProcessesSlotResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsGetProcessSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getProcessSlot operation. */
export type WebAppsGetProcessSlotResponse = ProcessInfo;

/** Optional parameters. */
export interface WebAppsDeleteProcessSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsGetProcessDumpSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getProcessDumpSlot operation. */
export type WebAppsGetProcessDumpSlotResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsListProcessModulesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessModulesSlot operation. */
export type WebAppsListProcessModulesSlotResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsGetProcessModuleSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getProcessModuleSlot operation. */
export type WebAppsGetProcessModuleSlotResponse = ProcessModuleInfo;

/** Optional parameters. */
export interface WebAppsListProcessThreadsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessThreadsSlot operation. */
export type WebAppsListProcessThreadsSlotResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsListPublicCertificatesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPublicCertificatesSlot operation. */
export type WebAppsListPublicCertificatesSlotResponse = PublicCertificateCollection;

/** Optional parameters. */
export interface WebAppsGetPublicCertificateSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPublicCertificateSlot operation. */
export type WebAppsGetPublicCertificateSlotResponse = PublicCertificate;

/** Optional parameters. */
export interface WebAppsCreateOrUpdatePublicCertificateSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdatePublicCertificateSlot operation. */
export type WebAppsCreateOrUpdatePublicCertificateSlotResponse = PublicCertificate;

/** Optional parameters. */
export interface WebAppsDeletePublicCertificateSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListPublishingProfileXmlWithSecretsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPublishingProfileXmlWithSecretsSlot operation. */
export type WebAppsListPublishingProfileXmlWithSecretsSlotResponse = {
  /**
   * BROWSER ONLY
   *
   * The response body as a browser Blob.
   * Always `undefined` in node.js.
   */
  blobBody?: Promise<Blob>;
  /**
   * NODEJS ONLY
   *
   * The response body as a node.js Readable stream.
   * Always `undefined` in the browser.
   */
  readableStreamBody?: NodeJS.ReadableStream;
};

/** Optional parameters. */
export interface WebAppsResetSlotConfigurationSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsRestartSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Specify true to apply the configuration settings and restarts the app only if necessary. By default, the API always restarts and reprovisions the app. */
  softRestart?: boolean;
  /** Specify true to block until the app is restarted. By default, it is set to false, and the API responds immediately (asynchronous). */
  synchronous?: boolean;
}

/** Optional parameters. */
export interface WebAppsRestoreFromBackupBlobSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsRestoreFromDeletedAppSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsRestoreSnapshotSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsListSiteExtensionsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteExtensionsSlot operation. */
export type WebAppsListSiteExtensionsSlotResponse = SiteExtensionInfoCollection;

/** Optional parameters. */
export interface WebAppsGetSiteExtensionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteExtensionSlot operation. */
export type WebAppsGetSiteExtensionSlotResponse = SiteExtensionInfo;

/** Optional parameters. */
export interface WebAppsInstallSiteExtensionSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the installSiteExtensionSlot operation. */
export type WebAppsInstallSiteExtensionSlotResponse = SiteExtensionInfo;

/** Optional parameters. */
export interface WebAppsDeleteSiteExtensionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListSlotDifferencesSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotDifferencesSlot operation. */
export type WebAppsListSlotDifferencesSlotResponse = SlotDifferenceCollection;

/** Optional parameters. */
export interface WebAppsSwapSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsListSnapshotsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshotsSlot operation. */
export type WebAppsListSnapshotsSlotResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsListSnapshotsFromDRSecondarySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshotsFromDRSecondarySlot operation. */
export type WebAppsListSnapshotsFromDRSecondarySlotResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsGetSourceControlSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSourceControlSlot operation. */
export type WebAppsGetSourceControlSlotResponse = SiteSourceControl;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateSourceControlSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateSourceControlSlot operation. */
export type WebAppsCreateOrUpdateSourceControlSlotResponse = SiteSourceControl;

/** Optional parameters. */
export interface WebAppsDeleteSourceControlSlotOptionalParams
  extends coreClient.OperationOptions {
  additionalFlags?: string;
}

/** Optional parameters. */
export interface WebAppsUpdateSourceControlSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSourceControlSlot operation. */
export type WebAppsUpdateSourceControlSlotResponse = SiteSourceControl;

/** Optional parameters. */
export interface WebAppsStartSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStartNetworkTraceSlotOptionalParams
  extends coreClient.OperationOptions {
  /** The duration to keep capturing in seconds. */
  durationInSeconds?: number;
  /** The maximum frame length in bytes (Optional). */
  maxFrameLength?: number;
  /** The Blob URL to store capture file. */
  sasUrl?: string;
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the startNetworkTraceSlot operation. */
export type WebAppsStartNetworkTraceSlotResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsStopSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStopNetworkTraceSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsSyncRepositorySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsSyncFunctionTriggersSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobsSlot operation. */
export type WebAppsListTriggeredWebJobsSlotResponse = TriggeredWebJobCollection;

/** Optional parameters. */
export interface WebAppsGetTriggeredWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getTriggeredWebJobSlot operation. */
export type WebAppsGetTriggeredWebJobSlotResponse = TriggeredWebJob;

/** Optional parameters. */
export interface WebAppsDeleteTriggeredWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobHistorySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobHistorySlot operation. */
export type WebAppsListTriggeredWebJobHistorySlotResponse = TriggeredJobHistoryCollection;

/** Optional parameters. */
export interface WebAppsGetTriggeredWebJobHistorySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getTriggeredWebJobHistorySlot operation. */
export type WebAppsGetTriggeredWebJobHistorySlotResponse = TriggeredJobHistory;

/** Optional parameters. */
export interface WebAppsRunTriggeredWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListUsagesSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Return only information specified in the filter (using OData syntax). For example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'. */
  filter?: string;
}

/** Contains response data for the listUsagesSlot operation. */
export type WebAppsListUsagesSlotResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface WebAppsListVnetConnectionsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listVnetConnectionsSlot operation. */
export type WebAppsListVnetConnectionsSlotResponse = VnetInfoResource[];

/** Optional parameters. */
export interface WebAppsGetVnetConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getVnetConnectionSlot operation. */
export type WebAppsGetVnetConnectionSlotResponse = VnetInfoResource;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateVnetConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateVnetConnectionSlot operation. */
export type WebAppsCreateOrUpdateVnetConnectionSlotResponse = VnetInfoResource;

/** Optional parameters. */
export interface WebAppsDeleteVnetConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateVnetConnectionSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateVnetConnectionSlot operation. */
export type WebAppsUpdateVnetConnectionSlotResponse = VnetInfoResource;

/** Optional parameters. */
export interface WebAppsGetVnetConnectionGatewaySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getVnetConnectionGatewaySlot operation. */
export type WebAppsGetVnetConnectionGatewaySlotResponse = VnetGateway;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateVnetConnectionGatewaySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateVnetConnectionGatewaySlot operation. */
export type WebAppsCreateOrUpdateVnetConnectionGatewaySlotResponse = VnetGateway;

/** Optional parameters. */
export interface WebAppsUpdateVnetConnectionGatewaySlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateVnetConnectionGatewaySlot operation. */
export type WebAppsUpdateVnetConnectionGatewaySlotResponse = VnetGateway;

/** Optional parameters. */
export interface WebAppsListWebJobsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebJobsSlot operation. */
export type WebAppsListWebJobsSlotResponse = WebJobCollection;

/** Optional parameters. */
export interface WebAppsGetWebJobSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWebJobSlot operation. */
export type WebAppsGetWebJobSlotResponse = WebJob;

/** Optional parameters. */
export interface WebAppsListSlotDifferencesFromProductionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotDifferencesFromProduction operation. */
export type WebAppsListSlotDifferencesFromProductionResponse = SlotDifferenceCollection;

/** Optional parameters. */
export interface WebAppsSwapSlotWithProductionOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WebAppsListSnapshotsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshots operation. */
export type WebAppsListSnapshotsResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsListSnapshotsFromDRSecondaryOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshotsFromDRSecondary operation. */
export type WebAppsListSnapshotsFromDRSecondaryResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsGetSourceControlOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSourceControl operation. */
export type WebAppsGetSourceControlResponse = SiteSourceControl;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateSourceControlOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the createOrUpdateSourceControl operation. */
export type WebAppsCreateOrUpdateSourceControlResponse = SiteSourceControl;

/** Optional parameters. */
export interface WebAppsDeleteSourceControlOptionalParams
  extends coreClient.OperationOptions {
  additionalFlags?: string;
}

/** Optional parameters. */
export interface WebAppsUpdateSourceControlOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateSourceControl operation. */
export type WebAppsUpdateSourceControlResponse = SiteSourceControl;

/** Optional parameters. */
export interface WebAppsStartOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStartNetworkTraceOptionalParams
  extends coreClient.OperationOptions {
  /** The duration to keep capturing in seconds. */
  durationInSeconds?: number;
  /** The maximum frame length in bytes (Optional). */
  maxFrameLength?: number;
  /** The Blob URL to store capture file. */
  sasUrl?: string;
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Contains response data for the startNetworkTrace operation. */
export type WebAppsStartNetworkTraceResponse = NetworkTrace[];

/** Optional parameters. */
export interface WebAppsStopOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsStopNetworkTraceOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsSyncRepositoryOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsSyncFunctionTriggersOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobs operation. */
export type WebAppsListTriggeredWebJobsResponse = TriggeredWebJobCollection;

/** Optional parameters. */
export interface WebAppsGetTriggeredWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getTriggeredWebJob operation. */
export type WebAppsGetTriggeredWebJobResponse = TriggeredWebJob;

/** Optional parameters. */
export interface WebAppsDeleteTriggeredWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobHistoryOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobHistory operation. */
export type WebAppsListTriggeredWebJobHistoryResponse = TriggeredJobHistoryCollection;

/** Optional parameters. */
export interface WebAppsGetTriggeredWebJobHistoryOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getTriggeredWebJobHistory operation. */
export type WebAppsGetTriggeredWebJobHistoryResponse = TriggeredJobHistory;

/** Optional parameters. */
export interface WebAppsRunTriggeredWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsListUsagesOptionalParams
  extends coreClient.OperationOptions {
  /** Return only information specified in the filter (using OData syntax). For example: $filter=(name.value eq 'Metric1' or name.value eq 'Metric2') and startTime eq 2014-01-01T00:00:00Z and endTime eq 2014-12-31T23:59:59Z and timeGrain eq duration'[Hour|Minute|Day]'. */
  filter?: string;
}

/** Contains response data for the listUsages operation. */
export type WebAppsListUsagesResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface WebAppsListVnetConnectionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listVnetConnections operation. */
export type WebAppsListVnetConnectionsResponse = VnetInfoResource[];

/** Optional parameters. */
export interface WebAppsGetVnetConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getVnetConnection operation. */
export type WebAppsGetVnetConnectionResponse = VnetInfoResource;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateVnetConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateVnetConnection operation. */
export type WebAppsCreateOrUpdateVnetConnectionResponse = VnetInfoResource;

/** Optional parameters. */
export interface WebAppsDeleteVnetConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WebAppsUpdateVnetConnectionOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateVnetConnection operation. */
export type WebAppsUpdateVnetConnectionResponse = VnetInfoResource;

/** Optional parameters. */
export interface WebAppsGetVnetConnectionGatewayOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getVnetConnectionGateway operation. */
export type WebAppsGetVnetConnectionGatewayResponse = VnetGateway;

/** Optional parameters. */
export interface WebAppsCreateOrUpdateVnetConnectionGatewayOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the createOrUpdateVnetConnectionGateway operation. */
export type WebAppsCreateOrUpdateVnetConnectionGatewayResponse = VnetGateway;

/** Optional parameters. */
export interface WebAppsUpdateVnetConnectionGatewayOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the updateVnetConnectionGateway operation. */
export type WebAppsUpdateVnetConnectionGatewayResponse = VnetGateway;

/** Optional parameters. */
export interface WebAppsListWebJobsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebJobs operation. */
export type WebAppsListWebJobsResponse = WebJobCollection;

/** Optional parameters. */
export interface WebAppsGetWebJobOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWebJob operation. */
export type WebAppsGetWebJobResponse = WebJob;

/** Optional parameters. */
export interface WebAppsDeployWorkflowArtifactsOptionalParams
  extends coreClient.OperationOptions {
  /** Application settings and files of the workflow. */
  workflowArtifacts?: WorkflowArtifacts;
}

/** Optional parameters. */
export interface WebAppsDeployWorkflowArtifactsSlotOptionalParams
  extends coreClient.OperationOptions {
  /** Application settings and files of the workflow. */
  workflowArtifacts?: WorkflowArtifacts;
}

/** Optional parameters. */
export interface WebAppsListInstanceWorkflowsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceWorkflowsSlot operation. */
export type WebAppsListInstanceWorkflowsSlotResponse = WorkflowEnvelopeCollection;

/** Optional parameters. */
export interface WebAppsGetInstanceWorkflowSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getInstanceWorkflowSlot operation. */
export type WebAppsGetInstanceWorkflowSlotResponse = WorkflowEnvelope;

/** Optional parameters. */
export interface WebAppsListWorkflowsConnectionsSlotOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkflowsConnectionsSlot operation. */
export type WebAppsListWorkflowsConnectionsSlotResponse = WorkflowEnvelope;

/** Optional parameters. */
export interface WebAppsListWorkflowsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkflows operation. */
export type WebAppsListWorkflowsResponse = WorkflowEnvelopeCollection;

/** Optional parameters. */
export interface WebAppsGetWorkflowOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getWorkflow operation. */
export type WebAppsGetWorkflowResponse = WorkflowEnvelope;

/** Optional parameters. */
export interface WebAppsListWorkflowsConnectionsOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkflowsConnections operation. */
export type WebAppsListWorkflowsConnectionsResponse = WorkflowEnvelope;

/** Optional parameters. */
export interface WebAppsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WebAppsListNextResponse = WebAppCollection;

/** Optional parameters. */
export interface WebAppsListByResourceGroupNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listByResourceGroupNext operation. */
export type WebAppsListByResourceGroupNextResponse = WebAppCollection;

/** Optional parameters. */
export interface WebAppsListBackupsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBackupsNext operation. */
export type WebAppsListBackupsNextResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsListBasicPublishingCredentialsPoliciesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBasicPublishingCredentialsPoliciesNext operation. */
export type WebAppsListBasicPublishingCredentialsPoliciesNextResponse = PublishingCredentialsPoliciesCollection;

/** Optional parameters. */
export interface WebAppsListConfigurationsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurationsNext operation. */
export type WebAppsListConfigurationsNextResponse = SiteConfigResourceCollection;

/** Optional parameters. */
export interface WebAppsGetAppSettingsKeyVaultReferencesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAppSettingsKeyVaultReferencesNext operation. */
export type WebAppsGetAppSettingsKeyVaultReferencesNextResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsGetSiteConnectionStringKeyVaultReferencesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteConnectionStringKeyVaultReferencesNext operation. */
export type WebAppsGetSiteConnectionStringKeyVaultReferencesNextResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsListConfigurationSnapshotInfoNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurationSnapshotInfoNext operation. */
export type WebAppsListConfigurationSnapshotInfoNextResponse = SiteConfigurationSnapshotInfoCollection;

/** Optional parameters. */
export interface WebAppsListContinuousWebJobsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listContinuousWebJobsNext operation. */
export type WebAppsListContinuousWebJobsNextResponse = ContinuousWebJobCollection;

/** Optional parameters. */
export interface WebAppsListProductionSiteDeploymentStatusesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProductionSiteDeploymentStatusesNext operation. */
export type WebAppsListProductionSiteDeploymentStatusesNextResponse = CsmDeploymentStatusCollection;

/** Optional parameters. */
export interface WebAppsListDeploymentsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDeploymentsNext operation. */
export type WebAppsListDeploymentsNextResponse = DeploymentCollection;

/** Optional parameters. */
export interface WebAppsListDomainOwnershipIdentifiersNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDomainOwnershipIdentifiersNext operation. */
export type WebAppsListDomainOwnershipIdentifiersNextResponse = IdentifierCollection;

/** Optional parameters. */
export interface WebAppsListFunctionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listFunctionsNext operation. */
export type WebAppsListFunctionsNextResponse = FunctionEnvelopeCollection;

/** Optional parameters. */
export interface WebAppsListHostNameBindingsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostNameBindingsNext operation. */
export type WebAppsListHostNameBindingsNextResponse = HostNameBindingCollection;

/** Optional parameters. */
export interface WebAppsListInstanceIdentifiersNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceIdentifiersNext operation. */
export type WebAppsListInstanceIdentifiersNextResponse = WebAppInstanceStatusCollection;

/** Optional parameters. */
export interface WebAppsListInstanceProcessesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessesNext operation. */
export type WebAppsListInstanceProcessesNextResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsListInstanceProcessModulesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessModulesNext operation. */
export type WebAppsListInstanceProcessModulesNextResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsListInstanceProcessThreadsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessThreadsNext operation. */
export type WebAppsListInstanceProcessThreadsNextResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsListSiteBackupsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteBackupsNext operation. */
export type WebAppsListSiteBackupsNextResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsListPerfMonCountersNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPerfMonCountersNext operation. */
export type WebAppsListPerfMonCountersNextResponse = PerfMonCounterCollection;

/** Optional parameters. */
export interface WebAppsGetPrivateEndpointConnectionListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionListNext operation. */
export type WebAppsGetPrivateEndpointConnectionListNextResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface WebAppsListProcessesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessesNext operation. */
export type WebAppsListProcessesNextResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsListProcessModulesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessModulesNext operation. */
export type WebAppsListProcessModulesNextResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsListProcessThreadsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessThreadsNext operation. */
export type WebAppsListProcessThreadsNextResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsListPublicCertificatesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPublicCertificatesNext operation. */
export type WebAppsListPublicCertificatesNextResponse = PublicCertificateCollection;

/** Optional parameters. */
export interface WebAppsListSiteExtensionsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteExtensionsNext operation. */
export type WebAppsListSiteExtensionsNextResponse = SiteExtensionInfoCollection;

/** Optional parameters. */
export interface WebAppsListSlotsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotsNext operation. */
export type WebAppsListSlotsNextResponse = WebAppCollection;

/** Optional parameters. */
export interface WebAppsListBackupsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBackupsSlotNext operation. */
export type WebAppsListBackupsSlotNextResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsListBasicPublishingCredentialsPoliciesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listBasicPublishingCredentialsPoliciesSlotNext operation. */
export type WebAppsListBasicPublishingCredentialsPoliciesSlotNextResponse = PublishingCredentialsPoliciesCollection;

/** Optional parameters. */
export interface WebAppsListConfigurationsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurationsSlotNext operation. */
export type WebAppsListConfigurationsSlotNextResponse = SiteConfigResourceCollection;

/** Optional parameters. */
export interface WebAppsGetAppSettingsKeyVaultReferencesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getAppSettingsKeyVaultReferencesSlotNext operation. */
export type WebAppsGetAppSettingsKeyVaultReferencesSlotNextResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsGetSiteConnectionStringKeyVaultReferencesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSiteConnectionStringKeyVaultReferencesSlotNext operation. */
export type WebAppsGetSiteConnectionStringKeyVaultReferencesSlotNextResponse = ApiKVReferenceCollection;

/** Optional parameters. */
export interface WebAppsListConfigurationSnapshotInfoSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listConfigurationSnapshotInfoSlotNext operation. */
export type WebAppsListConfigurationSnapshotInfoSlotNextResponse = SiteConfigurationSnapshotInfoCollection;

/** Optional parameters. */
export interface WebAppsListContinuousWebJobsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listContinuousWebJobsSlotNext operation. */
export type WebAppsListContinuousWebJobsSlotNextResponse = ContinuousWebJobCollection;

/** Optional parameters. */
export interface WebAppsListSlotSiteDeploymentStatusesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotSiteDeploymentStatusesSlotNext operation. */
export type WebAppsListSlotSiteDeploymentStatusesSlotNextResponse = CsmDeploymentStatusCollection;

/** Optional parameters. */
export interface WebAppsListDeploymentsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDeploymentsSlotNext operation. */
export type WebAppsListDeploymentsSlotNextResponse = DeploymentCollection;

/** Optional parameters. */
export interface WebAppsListDomainOwnershipIdentifiersSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listDomainOwnershipIdentifiersSlotNext operation. */
export type WebAppsListDomainOwnershipIdentifiersSlotNextResponse = IdentifierCollection;

/** Optional parameters. */
export interface WebAppsListInstanceFunctionsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceFunctionsSlotNext operation. */
export type WebAppsListInstanceFunctionsSlotNextResponse = FunctionEnvelopeCollection;

/** Optional parameters. */
export interface WebAppsListHostNameBindingsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listHostNameBindingsSlotNext operation. */
export type WebAppsListHostNameBindingsSlotNextResponse = HostNameBindingCollection;

/** Optional parameters. */
export interface WebAppsListInstanceIdentifiersSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceIdentifiersSlotNext operation. */
export type WebAppsListInstanceIdentifiersSlotNextResponse = WebAppInstanceStatusCollection;

/** Optional parameters. */
export interface WebAppsListInstanceProcessesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessesSlotNext operation. */
export type WebAppsListInstanceProcessesSlotNextResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsListInstanceProcessModulesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessModulesSlotNext operation. */
export type WebAppsListInstanceProcessModulesSlotNextResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsListInstanceProcessThreadsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceProcessThreadsSlotNext operation. */
export type WebAppsListInstanceProcessThreadsSlotNextResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsListSiteBackupsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteBackupsSlotNext operation. */
export type WebAppsListSiteBackupsSlotNextResponse = BackupItemCollection;

/** Optional parameters. */
export interface WebAppsListPerfMonCountersSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPerfMonCountersSlotNext operation. */
export type WebAppsListPerfMonCountersSlotNextResponse = PerfMonCounterCollection;

/** Optional parameters. */
export interface WebAppsGetPrivateEndpointConnectionListSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getPrivateEndpointConnectionListSlotNext operation. */
export type WebAppsGetPrivateEndpointConnectionListSlotNextResponse = PrivateEndpointConnectionCollection;

/** Optional parameters. */
export interface WebAppsListProcessesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessesSlotNext operation. */
export type WebAppsListProcessesSlotNextResponse = ProcessInfoCollection;

/** Optional parameters. */
export interface WebAppsListProcessModulesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessModulesSlotNext operation. */
export type WebAppsListProcessModulesSlotNextResponse = ProcessModuleInfoCollection;

/** Optional parameters. */
export interface WebAppsListProcessThreadsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listProcessThreadsSlotNext operation. */
export type WebAppsListProcessThreadsSlotNextResponse = ProcessThreadInfoCollection;

/** Optional parameters. */
export interface WebAppsListPublicCertificatesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listPublicCertificatesSlotNext operation. */
export type WebAppsListPublicCertificatesSlotNextResponse = PublicCertificateCollection;

/** Optional parameters. */
export interface WebAppsListSiteExtensionsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSiteExtensionsSlotNext operation. */
export type WebAppsListSiteExtensionsSlotNextResponse = SiteExtensionInfoCollection;

/** Optional parameters. */
export interface WebAppsListSlotDifferencesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotDifferencesSlotNext operation. */
export type WebAppsListSlotDifferencesSlotNextResponse = SlotDifferenceCollection;

/** Optional parameters. */
export interface WebAppsListSnapshotsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshotsSlotNext operation. */
export type WebAppsListSnapshotsSlotNextResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsListSnapshotsFromDRSecondarySlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshotsFromDRSecondarySlotNext operation. */
export type WebAppsListSnapshotsFromDRSecondarySlotNextResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobsSlotNext operation. */
export type WebAppsListTriggeredWebJobsSlotNextResponse = TriggeredWebJobCollection;

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobHistorySlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobHistorySlotNext operation. */
export type WebAppsListTriggeredWebJobHistorySlotNextResponse = TriggeredJobHistoryCollection;

/** Optional parameters. */
export interface WebAppsListUsagesSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listUsagesSlotNext operation. */
export type WebAppsListUsagesSlotNextResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface WebAppsListWebJobsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebJobsSlotNext operation. */
export type WebAppsListWebJobsSlotNextResponse = WebJobCollection;

/** Optional parameters. */
export interface WebAppsListSlotDifferencesFromProductionNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSlotDifferencesFromProductionNext operation. */
export type WebAppsListSlotDifferencesFromProductionNextResponse = SlotDifferenceCollection;

/** Optional parameters. */
export interface WebAppsListSnapshotsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshotsNext operation. */
export type WebAppsListSnapshotsNextResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsListSnapshotsFromDRSecondaryNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listSnapshotsFromDRSecondaryNext operation. */
export type WebAppsListSnapshotsFromDRSecondaryNextResponse = SnapshotCollection;

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobsNext operation. */
export type WebAppsListTriggeredWebJobsNextResponse = TriggeredWebJobCollection;

/** Optional parameters. */
export interface WebAppsListTriggeredWebJobHistoryNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listTriggeredWebJobHistoryNext operation. */
export type WebAppsListTriggeredWebJobHistoryNextResponse = TriggeredJobHistoryCollection;

/** Optional parameters. */
export interface WebAppsListUsagesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listUsagesNext operation. */
export type WebAppsListUsagesNextResponse = CsmUsageQuotaCollection;

/** Optional parameters. */
export interface WebAppsListWebJobsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWebJobsNext operation. */
export type WebAppsListWebJobsNextResponse = WebJobCollection;

/** Optional parameters. */
export interface WebAppsListInstanceWorkflowsSlotNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listInstanceWorkflowsSlotNext operation. */
export type WebAppsListInstanceWorkflowsSlotNextResponse = WorkflowEnvelopeCollection;

/** Optional parameters. */
export interface WebAppsListWorkflowsNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listWorkflowsNext operation. */
export type WebAppsListWorkflowsNextResponse = WorkflowEnvelopeCollection;

/** Optional parameters. */
export interface WorkflowsRegenerateAccessKeyOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WorkflowsValidateOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WorkflowRunsListOptionalParams
  extends coreClient.OperationOptions {
  /** The number of items to be included in the result. */
  top?: number;
  /** The filter to apply on the operation. Options for filters include: Status, StartTime, and ClientTrackingId. */
  filter?: string;
}

/** Contains response data for the list operation. */
export type WorkflowRunsListResponse = WorkflowRunListResult;

/** Optional parameters. */
export interface WorkflowRunsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowRunsGetResponse = WorkflowRun;

/** Optional parameters. */
export interface WorkflowRunsCancelOptionalParams
  extends coreClient.OperationOptions {}

/** Optional parameters. */
export interface WorkflowRunsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowRunsListNextResponse = WorkflowRunListResult;

/** Optional parameters. */
export interface WorkflowRunActionsListOptionalParams
  extends coreClient.OperationOptions {
  /** The number of items to be included in the result. */
  top?: number;
  /** The filter to apply on the operation. Options for filters include: Status. */
  filter?: string;
}

/** Contains response data for the list operation. */
export type WorkflowRunActionsListResponse = WorkflowRunActionListResult;

/** Optional parameters. */
export interface WorkflowRunActionsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowRunActionsGetResponse = WorkflowRunAction;

/** Optional parameters. */
export interface WorkflowRunActionsListExpressionTracesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listExpressionTraces operation. */
export type WorkflowRunActionsListExpressionTracesResponse = ExpressionTraces;

/** Optional parameters. */
export interface WorkflowRunActionsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowRunActionsListNextResponse = WorkflowRunActionListResult;

/** Optional parameters. */
export interface WorkflowRunActionsListExpressionTracesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listExpressionTracesNext operation. */
export type WorkflowRunActionsListExpressionTracesNextResponse = ExpressionTraces;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type WorkflowRunActionRepetitionsListResponse = WorkflowRunActionRepetitionDefinitionCollection;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowRunActionRepetitionsGetResponse = WorkflowRunActionRepetitionDefinition;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsListExpressionTracesOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listExpressionTraces operation. */
export type WorkflowRunActionRepetitionsListExpressionTracesResponse = ExpressionTraces;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowRunActionRepetitionsListNextResponse = WorkflowRunActionRepetitionDefinitionCollection;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsListExpressionTracesNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listExpressionTracesNext operation. */
export type WorkflowRunActionRepetitionsListExpressionTracesNextResponse = ExpressionTraces;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsRequestHistoriesListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type WorkflowRunActionRepetitionsRequestHistoriesListResponse = RequestHistoryListResult;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsRequestHistoriesGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowRunActionRepetitionsRequestHistoriesGetResponse = RequestHistory;

/** Optional parameters. */
export interface WorkflowRunActionRepetitionsRequestHistoriesListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowRunActionRepetitionsRequestHistoriesListNextResponse = RequestHistoryListResult;

/** Optional parameters. */
export interface WorkflowRunActionScopeRepetitionsListOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the list operation. */
export type WorkflowRunActionScopeRepetitionsListResponse = WorkflowRunActionRepetitionDefinitionCollection;

/** Optional parameters. */
export interface WorkflowRunActionScopeRepetitionsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowRunActionScopeRepetitionsGetResponse = WorkflowRunActionRepetitionDefinition;

/** Optional parameters. */
export interface WorkflowRunActionScopeRepetitionsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowRunActionScopeRepetitionsListNextResponse = WorkflowRunActionRepetitionDefinitionCollection;

/** Optional parameters. */
export interface WorkflowTriggersListOptionalParams
  extends coreClient.OperationOptions {
  /** The number of items to be included in the result. */
  top?: number;
  /** The filter to apply on the operation. */
  filter?: string;
}

/** Contains response data for the list operation. */
export type WorkflowTriggersListResponse = WorkflowTriggerListResult;

/** Optional parameters. */
export interface WorkflowTriggersGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowTriggersGetResponse = WorkflowTrigger;

/** Optional parameters. */
export interface WorkflowTriggersListCallbackUrlOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listCallbackUrl operation. */
export type WorkflowTriggersListCallbackUrlResponse = WorkflowTriggerCallbackUrl;

/** Optional parameters. */
export interface WorkflowTriggersRunOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WorkflowTriggersGetSchemaJsonOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the getSchemaJson operation. */
export type WorkflowTriggersGetSchemaJsonResponse = JsonSchema;

/** Optional parameters. */
export interface WorkflowTriggersListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowTriggersListNextResponse = WorkflowTriggerListResult;

/** Optional parameters. */
export interface WorkflowTriggerHistoriesListOptionalParams
  extends coreClient.OperationOptions {
  /** The number of items to be included in the result. */
  top?: number;
  /** The filter to apply on the operation. Options for filters include: Status, StartTime, and ClientTrackingId. */
  filter?: string;
}

/** Contains response data for the list operation. */
export type WorkflowTriggerHistoriesListResponse = WorkflowTriggerHistoryListResult;

/** Optional parameters. */
export interface WorkflowTriggerHistoriesGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowTriggerHistoriesGetResponse = WorkflowTriggerHistory;

/** Optional parameters. */
export interface WorkflowTriggerHistoriesResubmitOptionalParams
  extends coreClient.OperationOptions {
  /** Delay to wait until next poll, in milliseconds. */
  updateIntervalInMs?: number;
  /** A serialized poller which can be used to resume an existing paused Long-Running-Operation. */
  resumeFrom?: string;
}

/** Optional parameters. */
export interface WorkflowTriggerHistoriesListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowTriggerHistoriesListNextResponse = WorkflowTriggerHistoryListResult;

/** Optional parameters. */
export interface WorkflowVersionsListOptionalParams
  extends coreClient.OperationOptions {
  /** The number of items to be included in the result. */
  top?: number;
}

/** Contains response data for the list operation. */
export type WorkflowVersionsListResponse = WorkflowVersionListResult;

/** Optional parameters. */
export interface WorkflowVersionsGetOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the get operation. */
export type WorkflowVersionsGetResponse = WorkflowVersion;

/** Optional parameters. */
export interface WorkflowVersionsListNextOptionalParams
  extends coreClient.OperationOptions {}

/** Contains response data for the listNext operation. */
export type WorkflowVersionsListNextResponse = WorkflowVersionListResult;

/** Optional parameters. */
export interface WebSiteManagementClientOptionalParams
  extends coreClient.ServiceClientOptions {
  /** server parameter */
  $host?: string;
  /** Api Version */
  apiVersion?: string;
  /** Overrides client endpoint. */
  endpoint?: string;
}
