UNPKG

@azure/arm-appservice

Version:
1,203 lines 644 kB
import type * as coreClient from "@azure/core-client"; /** 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; } /** 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; } /** 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. If the resource is an app, you can refer to https://github.com/Azure/app-service-linux-docs/blob/master/Things_You_Should_Know/kind_property.md#app-service-resource-kind-reference for details supported values for kind. */ 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; } /** 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; } export interface SiteDnsConfig { /** List of custom DNS servers to be used by an app for lookups. Maximum 5 dns servers can be set. */ dnsServers?: string[]; /** Alternate DNS server to be used by apps. This property replicates the WEBSITE_DNS_ALT_SERVER app setting. */ dnsAltServer?: string; /** Timeout for a single dns lookup in seconds. Allowed range: 1-30. Default is 3. */ dnsRetryAttemptTimeout?: number; /** Total number of retries for dns lookup. Allowed range: 1-5. Default is 3. */ dnsRetryAttemptCount?: number; /** Custom time for DNS to be cached in seconds. Allowed range: 0-60. Default is 30 seconds. 0 means caching disabled. */ dnsMaxCacheTimeout?: number; /** * Indicates that sites using Virtual network custom DNS servers are still sorting the list of DNS servers. Read-Only. * NOTE: This property will not be serialized. It can only be populated by the server. */ readonly dnsLegacySortOrder?: boolean; } /** Outbound traffic options over virtual network. */ export interface OutboundVnetRouting { /** Enables all other routing options defined in OutboundVnetRouting if this setting is set to true. */ allTraffic?: boolean; /** This causes all outbound traffic to have Virtual Network Security Groups and User Defined Routes applied. Previously called VnetRouteAllEnabled. */ applicationTraffic?: boolean; /** Enables accessing content over virtual network. Previously called VnetContentShareEnabled */ contentShareTraffic?: boolean; /** Enables pulling image over Virtual Network. Previously called VnetImagePullEnabled. */ imagePullTraffic?: boolean; /** Enables Backup and Restore operations over virtual network. Previously called VnetBackupRestoreEnabled */ backupRestoreTraffic?: boolean; } /** 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. This property is not returned in response to normal create and read requests since it may contain sensitive information. */ appSettings?: NameValuePair[]; /** Application metadata. This property cannot be retrieved, since it may contain secrets. */ metadata?: NameValuePair[]; /** Connection strings. This property is not returned in response to normal create and read requests since it may contain sensitive information. */ 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; /** Http20ProxyFlag: Configures a website to allow http2.0 to pass be proxied all the way to the app. 0 = disabled, 1 = pass through all http2 traffic, 2 = pass through gRPC only. */ http20ProxyFlag?: number; /** 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. */ 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; /** Mounting protocol to use for the storage account. */ protocol?: AzureStorageProtocol; } /** Function app configuration. */ export interface FunctionAppConfig { /** Function app deployment configuration. */ deployment?: FunctionsDeployment; /** Function app runtime settings. */ runtime?: FunctionsRuntime; /** Function app scale and concurrency settings. */ scaleAndConcurrency?: FunctionsScaleAndConcurrency; } /** Configuration section for the function app deployment. */ export interface FunctionsDeployment { /** Storage for deployed package used by the function app. */ storage?: FunctionsDeploymentStorage; } /** Storage for deployed package used by the function app. */ export interface FunctionsDeploymentStorage { /** Property to select Azure Storage type. Available options: blobContainer. */ type?: FunctionsDeploymentStorageType; /** Property to set the URL for the selected Azure Storage type. Example: For blobContainer, the value could be https://<storageAccountName>.blob.core.windows.net/<containerName>. */ value?: string; /** Authentication method to access the storage account for deployment. */ authentication?: FunctionsDeploymentStorageAuthentication; } /** Authentication method to access the storage account for deployment. */ export interface FunctionsDeploymentStorageAuthentication { /** Property to select authentication type to access the selected storage account. Available options: SystemAssignedIdentity, UserAssignedIdentity, StorageAccountConnectionString. */ type?: AuthenticationType; /** Use this property for UserAssignedIdentity. Set the resource ID of the identity. Do not set a value for this property when using other authentication type. */ userAssignedIdentityResourceId?: string; /** Use this property for StorageAccountConnectionString. Set the name of the app setting that has the storage account connection string. Do not set a value for this property when using other authentication type. */ storageAccountConnectionStringName?: string; } /** Function app runtime name and version. */ export interface FunctionsRuntime { /** Function app runtime name. Available options: dotnet-isolated, node, java, powershell, python, custom */ name?: RuntimeName; /** Function app runtime version. Example: 8 (for dotnet-isolated) */ version?: string; } /** Scale and concurrency settings for the function app. */ export interface FunctionsScaleAndConcurrency { /** 'Always Ready' configuration for the function app. */ alwaysReady?: FunctionsAlwaysReadyConfig[]; /** The maximum number of instances for the function app. */ maximumInstanceCount?: number; /** Set the amount of memory allocated to each instance of the function app in MB. CPU and network bandwidth are allocated proportionally. */ instanceMemoryMB?: number; /** Scale and concurrency settings for the function app triggers. */ triggers?: FunctionsScaleAndConcurrencyTriggers; } /** Sets the number of 'Always Ready' instances for a function group or a specific function. */ export interface FunctionsAlwaysReadyConfig { /** Either a function group or a function name is required. For additional information see https://aka.ms/flexconsumption/alwaysready. */ name?: string; /** Sets the number of 'Always Ready' instances for a given function group or a specific function. For additional information see https://aka.ms/flexconsumption/alwaysready. */ instanceCount?: number; } /** Scale and concurrency settings for the function app triggers. */ export interface FunctionsScaleAndConcurrencyTriggers { /** Scale and concurrency settings for the HTTP trigger. */ http?: FunctionsScaleAndConcurrencyTriggersHttp; } /** Scale and concurrency settings for the HTTP trigger. */ export interface FunctionsScaleAndConcurrencyTriggersHttp { /** The maximum number of concurrent HTTP trigger invocations per instance. */ perInstanceConcurrency?: number; } /** 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