@azure-rest/arm-appservice
Version:
1,170 lines • 191 kB
TypeScript
/** SSL certificate purchase order. */
export interface AppServiceCertificateOrder extends Resource {
/** AppServiceCertificateOrder resource specific properties */
properties?: AppServiceCertificateOrderProperties;
}
/** AppServiceCertificateOrder resource specific properties */
export interface AppServiceCertificateOrderProperties {
/** State of the Key Vault secret. */
certificates?: Record<string, AppServiceCertificate>;
/** Certificate distinguished name. */
distinguishedName?: string;
/** Duration in years (must be 1). */
validityInYears?: number;
/** Certificate key size. */
keySize?: number;
/** Certificate product type. */
productType: "StandardDomainValidatedSsl" | "StandardDomainValidatedWildCardSsl";
/** <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>. */
autoRenew?: boolean;
/** Last CSR that was created for this order. */
csr?: 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;
}
/** SSL certificate details. */
export interface CertificateDetails {
}
export interface CertificateOrderContact {
email?: string;
nameFirst?: string;
nameLast?: string;
phone?: string;
}
/** Azure resource. This resource is tracked in Azure Resource Manager */
export interface Resource {
/** Kind of resource. */
kind?: string;
/** Resource Location. */
location: string;
/** Resource tags. */
tags?: Record<string, string>;
}
/** ARM resource for a certificate order that is purchased through Azure. */
export interface AppServiceCertificateOrderPatchResource extends ProxyOnlyResource {
/** AppServiceCertificateOrderPatchResource resource specific properties */
properties?: AppServiceCertificateOrderPatchResourceProperties;
}
/** AppServiceCertificateOrderPatchResource resource specific properties */
export interface AppServiceCertificateOrderPatchResourceProperties {
/** State of the Key Vault secret. */
certificates?: Record<string, AppServiceCertificate>;
/** Certificate distinguished name. */
distinguishedName?: string;
/** Duration in years (must be 1). */
validityInYears?: number;
/** Certificate key size. */
keySize?: number;
/** Certificate product type. */
productType: "StandardDomainValidatedSsl" | "StandardDomainValidatedWildCardSsl";
/** <code>true</code> if the certificate should be automatically renewed when it expires; otherwise, <code>false</code>. */
autoRenew?: boolean;
/** Last CSR that was created for this order. */
csr?: string;
}
/** Azure proxy only resource. This resource is not tracked by Azure Resource Manager. */
export interface ProxyOnlyResource {
/** Kind of resource. */
kind?: string;
}
/** Key Vault container ARM resource for a certificate that is purchased through Azure. */
export interface AppServiceCertificateResource extends Resource {
/** Core resource properties */
properties?: AppServiceCertificate;
}
/** Key Vault container ARM resource for a certificate that is purchased through Azure. */
export interface AppServiceCertificatePatchResource extends ProxyOnlyResource {
/** Core resource properties */
properties?: AppServiceCertificate;
}
/** Class representing certificate reissue request. */
export interface ReissueCertificateOrderRequest extends ProxyOnlyResource {
/** ReissueCertificateOrderRequest resource specific properties */
properties?: ReissueCertificateOrderRequestProperties;
}
/** ReissueCertificateOrderRequest resource specific properties */
export interface ReissueCertificateOrderRequestProperties {
/** 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 {
/** RenewCertificateOrderRequest resource specific properties */
properties?: RenewCertificateOrderRequestProperties;
}
/** RenewCertificateOrderRequest resource specific properties */
export interface RenewCertificateOrderRequestProperties {
/** 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;
}
/** 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;
}
/** Certificate order action. */
export interface CertificateOrderAction extends ProxyOnlyResource {
/** CertificateOrderAction resource specific properties */
properties?: CertificateOrderActionProperties;
}
/** CertificateOrderAction resource specific properties */
export interface CertificateOrderActionProperties {
}
/** SSL certificate email. */
export interface CertificateEmail extends ProxyOnlyResource {
/** CertificateEmail resource specific properties */
properties?: CertificateEmailProperties;
}
/** CertificateEmail resource specific properties */
export interface CertificateEmailProperties {
/** Email id. */
emailId?: string;
/** Time stamp. */
timeStamp?: Date | string;
}
/** Class representing Response from Detector */
export interface DetectorResponse extends ProxyOnlyResource {
/** DetectorResponse resource specific properties */
properties?: DetectorResponseProperties;
}
/** DetectorResponse resource specific properties */
export interface DetectorResponseProperties {
/** metadata for the detector */
metadata?: DetectorInfo;
/** Data Set */
dataset?: Array<DiagnosticData>;
/** Indicates status of the most severe insight. */
status?: Status;
/** Additional configuration for different data providers to be used by the UI */
dataProvidersMetadata?: Array<DataProviderMetadata>;
/** Suggested utterances where the detector can be applicable. */
suggestedUtterances?: QueryUtterancesResults;
}
/** Definition of Detector */
export interface DetectorInfo {
}
/** Defines a unique Support Topic */
export interface SupportTopic {
}
/** 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?: Array<DataTableResponseColumn>;
/** Raw row values */
rows?: Array<Array<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?: "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";
/** 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?: "Critical" | "Warning" | "Info" | "Success" | "None";
}
/** Additional configuration for a data providers */
export interface DataProviderMetadata {
providerName?: string;
}
export interface KeyValuePairStringObject {
}
/** Suggested utterances where the detector can be applicable */
export interface QueryUtterancesResults {
/** Search Query. */
query?: string;
/** Array of utterance results for search query. */
results?: Array<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?: Array<string>;
/** Question id of sample utterance (for stackoverflow questions titles). */
qid?: string;
}
/** Information about a domain. */
export interface Domain extends Resource {
/** Domain resource specific properties */
properties?: DomainProperties;
}
/** Domain resource specific properties */
export interface DomainProperties {
/** Administrative contact. */
contactAdmin: Contact;
/** Billing contact. */
contactBilling: Contact;
/** Registrant contact. */
contactRegistrant: Contact;
/** Technical contact. */
contactTech: Contact;
/** <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>. */
privacy?: boolean;
/** <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>. */
autoRenew?: boolean;
/** Legal agreement consent. */
consent: DomainPurchaseConsent;
/** Current DNS type */
dnsType?: "AzureDns" | "DefaultDomainRegistrarDns";
/** Azure DNS Zone to use */
dnsZoneId?: string;
/** Target DNS type (would be used for migration) */
targetDnsType?: "AzureDns" | "DefaultDomainRegistrarDns";
authCode?: 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?: Array<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?: "Website" | "TrafficManager";
/** Type of the DNS record. */
customHostNameDnsRecordType?: "CName" | "A";
/** Type of the hostname. */
hostNameType?: "Verified" | "Managed";
}
/** 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?: Array<string>;
/** Client IP address. */
agreedBy?: string;
/** Timestamp when the agreements were accepted. */
agreedAt?: Date | string;
}
/** Domain recommendation search parameters. */
export interface DomainRecommendationSearchParameters {
/** Keywords to be used for generating domain recommendations. */
keywords?: string;
/** Maximum number of recommendations. */
maxDomainRecommendations?: number;
}
/** ARM resource for a domain. */
export interface DomainPatchResource extends ProxyOnlyResource {
/** DomainPatchResource resource specific properties */
properties?: DomainPatchResourceProperties;
}
/** DomainPatchResource resource specific properties */
export interface DomainPatchResourceProperties {
/** Administrative contact. */
contactAdmin: Contact;
/** Billing contact. */
contactBilling: Contact;
/** Registrant contact. */
contactRegistrant: Contact;
/** Technical contact. */
contactTech: Contact;
/** <code>true</code> if domain privacy is enabled for this domain; otherwise, <code>false</code>. */
privacy?: boolean;
/** <code>true</code> if the domain should be automatically renewed; otherwise, <code>false</code>. */
autoRenew?: boolean;
/** Legal agreement consent. */
consent: DomainPurchaseConsent;
/** Current DNS type */
dnsType?: "AzureDns" | "DefaultDomainRegistrarDns";
/** Azure DNS Zone to use */
dnsZoneId?: string;
/** Target DNS type (would be used for migration) */
targetDnsType?: "AzureDns" | "DefaultDomainRegistrarDns";
authCode?: string;
}
/** Domain ownership Identifier. */
export interface DomainOwnershipIdentifier extends ProxyOnlyResource {
/** DomainOwnershipIdentifier resource specific properties */
properties?: DomainOwnershipIdentifierProperties;
}
/** DomainOwnershipIdentifier resource specific properties */
export interface DomainOwnershipIdentifierProperties {
/** Ownership Id. */
ownershipId?: string;
}
/** A top level domain object. */
export interface TopLevelDomain extends ProxyOnlyResource {
/** TopLevelDomain resource specific properties */
properties?: TopLevelDomainProperties;
}
/** TopLevelDomain resource specific properties */
export interface TopLevelDomainProperties {
/** If <code>true</code>, then the top level domain supports domain privacy; otherwise, <code>false</code>. */
privacy?: boolean;
}
/** 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;
}
/** App Service Environment ARM resource. */
export interface AppServiceEnvironmentResource extends Resource {
/** Core resource properties */
properties?: AppServiceEnvironment;
}
/** Description of an App Service Environment. */
export interface AppServiceEnvironment {
/** Description of the Virtual Network. */
virtualNetwork: VirtualNetworkProfile;
/** Specifies which endpoints to serve internally in the Virtual Network for the App Service Environment. */
internalLoadBalancingMode?: "None" | "Web" | "Publishing" | "Web, Publishing";
/** Front-end VM size, e.g. "Medium", "Large". */
multiSize?: string;
/** Number of IP SSL addresses reserved for the App Service Environment. */
ipsslAddressCount?: number;
/** DNS suffix of the App Service Environment. */
dnsSuffix?: string;
/** Scale factor for front-ends. */
frontEndScaleFactor?: number;
/** Custom settings for changing the behavior of the App Service Environment. */
clusterSettings?: Array<NameValuePair>;
/** User added ip ranges to whitelist on ASE db */
userWhitelistedIpRanges?: Array<string>;
/** Dedicated Host Count */
dedicatedHostCount?: number;
/** Whether or not this App Service Environment is zone-redundant. */
zoneRedundant?: boolean;
}
/** Specification for using a Virtual Network. */
export interface VirtualNetworkProfile {
/** Resource id of the Virtual Network. */
id: string;
/** Subnet within the Virtual Network. */
subnet?: string;
}
/** Name value pair. */
export interface NameValuePair {
/** Pair name. */
name?: string;
/** Pair value. */
value?: string;
}
/** ARM resource for a app service environment. */
export interface AppServiceEnvironmentPatchResource extends ProxyOnlyResource {
/** Core resource properties */
properties?: AppServiceEnvironment;
}
/** Describes main public IP address and any extra virtual IPs. */
export interface AddressResponse extends ProxyOnlyResource {
/** AddressResponse resource specific properties */
properties?: AddressResponseProperties;
}
/** AddressResponse resource specific properties */
export interface AddressResponseProperties {
/** 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?: Array<string>;
/** Additional virtual IPs. */
vipMappings?: Array<VirtualIPMapping>;
}
/** 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;
}
/** A web app, a mobile app backend, or an API app. */
export interface Site extends Resource {
/** Site resource specific properties */
properties?: SiteProperties;
/** Managed service identity. */
identity?: ManagedServiceIdentity;
/** Extended Location. */
extendedLocation?: ExtendedLocation;
}
/** Site resource specific properties */
export interface SiteProperties {
/** <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;
/** Hostname SSL states are used to manage the SSL bindings for app's hostnames. */
hostNameSslStates?: Array<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;
/** Configuration of the app. */
siteConfig?: SiteConfig;
/** <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;
/** 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?: "Required" | "Optional" | "OptionalInteractiveUser";
/** 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;
/** Size of the function container. */
containerSize?: number;
/** Maximum allowed daily memory-time quota (applicable on dynamic apps only). */
dailyMemoryTimeQuota?: number;
/** If specified during app creation, the app is cloned from a source app. */
cloningInfo?: CloningInfo;
/**
* HttpsOnly: configures a web site to accept only https requests. Issues redirect for
* http requests
*/
httpsOnly?: boolean;
/** Site redundancy mode */
redundancyMode?: "None" | "Manual" | "Failover" | "ActiveActive" | "GeoRedundant";
/** 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;
}
/** SSL-enabled hostname. */
export interface HostNameSslState {
/** Hostname. */
name?: string;
/** SSL type. */
sslState?: "Disabled" | "SniEnabled" | "IpBasedEnabled";
/** 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?: "Standard" | "Repository";
}
/** Configuration of an App Service app. */
export interface SiteConfig {
/** Number of workers. */
numberOfWorkers?: number;
/** Default documents. */
defaultDocuments?: Array<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 | string;
/** <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?: Array<NameValuePair>;
/** Connection strings. */
connectionStrings?: Array<ConnStringInfo>;
/** Handler mappings. */
handlerMappings?: Array<HandlerMapping>;
/** Document root. */
documentRoot?: string;
/** SCM type. */
scmType?: "None" | "Dropbox" | "Tfs" | "LocalGit" | "GitHub" | "CodePlexGit" | "CodePlexHg" | "BitbucketGit" | "BitbucketHg" | "ExternalGit" | "ExternalHg" | "OneDrive" | "VSO" | "VSTSRM";
/** <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?: "Integrated" | "Classic";
/** Virtual applications. */
virtualApplications?: Array<VirtualApplication>;
/** Site load balancing. */
loadBalancing?: "WeightedRoundRobin" | "LeastRequests" | "LeastResponseTime" | "WeightedTotalTraffic" | "RequestHash" | "PerSiteRoundRobin";
/** 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?: Array<IpSecurityRestriction>;
/** IP security restrictions for scm. */
scmIpSecurityRestrictions?: Array<IpSecurityRestriction>;
/** 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?: "1.0" | "1.1" | "1.2";
/** ScmMinTlsVersion: configures the minimum version of TLS required for SSL requests for SCM site */
scmMinTlsVersion?: "1.0" | "1.1" | "1.2";
/** State of FTP / FTPS service */
ftpsState?: "AllAllowed" | "FtpsOnly" | "Disabled";
/**
* 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;
/** 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?: Record<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?: "MySql" | "SQLServer" | "SQLAzure" | "Custom" | "NotificationHub" | "ServiceBus" | "EventHub" | "ApiHub" | "DocDb" | "RedisCache" | "PostgreSQL";
}
/** 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?: Array<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?: Array<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?: Array<StatusCodesBasedTrigger>;
/** A rule based on request execution time. */
slowRequests?: SlowRequestsBasedTrigger;
/** A rule based on multiple Slow Requests Rule with path */
slowRequestsWithPath?: Array<SlowRequestsBasedTrigger>;
/** A rule based on status codes ranges. */
statusCodesRange?: Array<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?: "Recycle" | "LogEvent" | "CustomAction";
/** 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?: Array<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;
}
/** Push settings for the App. */
export interface PushSettings extends ProxyOnlyResource {
/** PushSettings resource specific properties */
properties?: PushSettingsProperties;
}
/** PushSettings resource specific properties */
export interface PushSettingsProperties {
/** 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;
}
/** 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?: "Default" | "XffProxy" | "ServiceTag";
/** 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?: Record<string, Array<string>>;
}
/** Azure Files or Blob Storage access information value for dictionary storage. */
export interface AzureStorageInfoValue {
/** Type of storage. */
type?: "AzureFiles" | "AzureBlob";
/** 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;
}
/** Specification for an App Service Environment to use for this resource. */
export interface HostingEnvironmentProfile {
/** Resource ID of the App Service Environment. */
id?: 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.
*
* Value may contain a UUID
*/
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?: Record<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 {
}
/** Managed service identity. */
export interface ManagedServiceIdentity {
/** Type of managed service identity. */
type?: "SystemAssigned" | "UserAssigned" | "SystemAssigned, UserAssigned" | "None";
/** 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?: Record<string, UserAssignedIdentity>;
}
/** User Assigned identity. */
export interface UserAssignedIdentity {
}
/** Extended Location. */
export interface ExtendedLocation {
/** Name of extended location. */
name?: string;
}
/** Full view of networking configuration for an ASE. */
export interface AseV3NetworkingConfiguration extends ProxyOnlyResource {
/** AseV3NetworkingConfiguration resource specific properties */
properties?: AseV3NetworkingConfigurationProperties;
}
/** AseV3NetworkingConfiguration resource specific properties */
export interface AseV3NetworkingConfigurationProperties {
/** Property to enable and disable new private endpoint connection creation on ASE */
allowNewPrivateEndpointConnections?: boolean;
}
/** Worker pool of an App Service Environment ARM resource. */
export interface WorkerPoolResource extends ProxyOnlyResource {
/** Core resource properties */
properties?: WorkerPool;
/** Description of a SKU for a scalable resource. */
sku?: SkuDescription;
}
/** Worker pool of an App Service Environment. */
export interface WorkerPool {
/** Worker size ID for referencing this worker pool. */
workerSizeId?: number;
/** Shared or dedicated app hosting. */
computeMode?: "Shared" | "Dedicated" | "Dynamic";
/** VM size of the worker pool instances. */
workerSize?: string;
/** Number of instances in the worker pool. */
workerCount?: number;
}
/** 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?: Array<string>;
/** Capabilities of the SKU, e.g., is traffic manager enabled? */
capabilities?: Array<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;
}
/** Metadata for the metrics. */
export interface ResourceMetricDefinition extends ProxyOnlyResource {
/** ResourceMetricDefinition resource specific properties */
properties?: ResourceMetricDefinitionProperties;
}
/** ResourceMetricDefinition resource specific properties */
export interface ResourceMetricDefinitionProperties {
}
/** Metrics availability and retention. */
export interface ResourceMetricAvailability {
}
/** Usage of the quota resource. */
export interface Usage extends ProxyOnlyResource {
/** Usage resource specific properties */
properties?: UsageProperties;
}
/** Usage resource specific properties */
export interface UsageProperties {
}
/** 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?: Array<string>;
/** Inner errors. */
innerErrors?: Array<ErrorEntity>;
/** Error Details. */
details?: Array<ErrorEntity>;
/** The error target. */
target?: string;
/** Basic error code. */
code?: string;
/** Any details of the error. */
message?: string;
}
/** Remote Private Endpoint Connection ARM resource. */
export interface RemotePrivateEndpointConnectionARMResource extends ProxyOnlyResource {
/** RemotePrivateEndpointConnectionARMResource resource specific properties */
properties?: RemotePrivateEndpointConnectionARMResourceProperties;
}
/** RemotePrivateEndpointConnectionARMResource resource specific properties */
export interface RemotePrivateEndpointConnectionARMResourceProperties {
/** 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 e