@azure/arm-appservice
Version:
A generated SDK for WebSiteManagementClient.
1,203 lines • 644 kB
TypeScript
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