/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*
* Code generated by Microsoft (R) AutoRest Code Generator.
* Changes may cause incorrect behavior and will be lost if the code is
* regenerated.
*/
import { BaseResource } from 'ms-rest-azure';
import { CloudError } from 'ms-rest-azure';
import * as moment from 'moment';
export { BaseResource } from 'ms-rest-azure';
export { CloudError } from 'ms-rest-azure';
/**
* @class
* Initializes a new instance of the AppServiceCertificate class.
* @constructor
* Key Vault container for a certificate that is purchased through Azure.
*
* @member {string} [keyVaultId] Key Vault resource Id.
* @member {string} [keyVaultSecretName] Key Vault secret name.
* @member {string} [provisioningState] Status of the Key Vault secret.
* Possible values include: 'Initialized', 'WaitingOnCertificateOrder',
* 'Succeeded', 'CertificateOrderFailed', 'OperationNotPermittedOnKeyVault',
* 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist',
* 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey',
* 'Unknown'
*/
export interface AppServiceCertificate {
keyVaultId?: string;
keyVaultSecretName?: string;
readonly provisioningState?: string;
}
/**
* @class
* Initializes a new instance of the Resource class.
* @constructor
* Azure resource. This resource is tracked in Azure Resource Manager
*
* @member {string} [id] Resource Id.
* @member {string} [name] Resource Name.
* @member {string} [kind] Kind of resource.
* @member {string} location Resource Location.
* @member {string} [type] Resource type.
* @member {object} [tags] Resource tags.
*/
export interface Resource extends BaseResource {
readonly id?: string;
readonly name?: string;
kind?: string;
location: string;
readonly type?: string;
tags?: { [propertyName: string]: string };
}
/**
* @class
* Initializes a new instance of the AppServiceCertificateResource class.
* @constructor
* Key Vault container ARM resource for a certificate that is purchased through
* Azure.
*
* @member {string} [keyVaultId] Key Vault resource Id.
* @member {string} [keyVaultSecretName] Key Vault secret name.
* @member {string} [provisioningState] Status of the Key Vault secret.
* Possible values include: 'Initialized', 'WaitingOnCertificateOrder',
* 'Succeeded', 'CertificateOrderFailed', 'OperationNotPermittedOnKeyVault',
* 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist',
* 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey',
* 'Unknown'
*/
export interface AppServiceCertificateResource extends Resource {
keyVaultId?: string;
keyVaultSecretName?: string;
readonly provisioningState?: string;
}
/**
* @class
* Initializes a new instance of the CertificateDetails class.
* @constructor
* SSL certificate details.
*
* @member {number} [version] Certificate Version.
* @member {string} [serialNumber] Certificate Serial Number.
* @member {string} [thumbprint] Certificate Thumbprint.
* @member {string} [subject] Certificate Subject.
* @member {date} [notBefore] Date Certificate is valid from.
* @member {date} [notAfter] Date Certificate is valid to.
* @member {string} [signatureAlgorithm] Certificate Signature algorithm.
* @member {string} [issuer] Certificate Issuer.
* @member {string} [rawData] Raw certificate data.
*/
export interface CertificateDetails {
readonly version?: number;
readonly serialNumber?: string;
readonly thumbprint?: string;
readonly subject?: string;
readonly notBefore?: Date;
readonly notAfter?: Date;
readonly signatureAlgorithm?: string;
readonly issuer?: string;
readonly rawData?: string;
}
/**
* @class
* Initializes a new instance of the AppServiceCertificateOrder class.
* @constructor
* SSL certificate purchase order.
*
* @member {object} [certificates] State of the Key Vault secret.
* @member {string} [distinguishedName] Certificate distinguished name.
* @member {string} [domainVerificationToken] Domain verification token.
* @member {number} [validityInYears] Duration in years (must be between 1 and
* 3). Default value: 1 .
* @member {number} [keySize] Certificate key size. Default value: 2048 .
* @member {string} productType Certificate product type. Possible values
* include: 'StandardDomainValidatedSsl', 'StandardDomainValidatedWildCardSsl'
* @member {boolean} [autoRenew] true if the certificate should be
* automatically renewed when it expires; otherwise, false.
* Default value: true .
* @member {string} [provisioningState] Status of certificate order. Possible
* values include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'
* @member {string} [status] Current order status. Possible values include:
* 'Pendingissuance', 'Issued', 'Revoked', 'Canceled', 'Denied',
* 'Pendingrevocation', 'PendingRekey', 'Unused', 'Expired', 'NotSubmitted'
* @member {object} [signedCertificate] Signed certificate.
* @member {number} [signedCertificate.version] Certificate Version.
* @member {string} [signedCertificate.serialNumber] Certificate Serial Number.
* @member {string} [signedCertificate.thumbprint] Certificate Thumbprint.
* @member {string} [signedCertificate.subject] Certificate Subject.
* @member {date} [signedCertificate.notBefore] Date Certificate is valid from.
* @member {date} [signedCertificate.notAfter] Date Certificate is valid to.
* @member {string} [signedCertificate.signatureAlgorithm] Certificate
* Signature algorithm.
* @member {string} [signedCertificate.issuer] Certificate Issuer.
* @member {string} [signedCertificate.rawData] Raw certificate data.
* @member {string} [csr] Last CSR that was created for this order.
* @member {object} [intermediate] Intermediate certificate.
* @member {number} [intermediate.version] Certificate Version.
* @member {string} [intermediate.serialNumber] Certificate Serial Number.
* @member {string} [intermediate.thumbprint] Certificate Thumbprint.
* @member {string} [intermediate.subject] Certificate Subject.
* @member {date} [intermediate.notBefore] Date Certificate is valid from.
* @member {date} [intermediate.notAfter] Date Certificate is valid to.
* @member {string} [intermediate.signatureAlgorithm] Certificate Signature
* algorithm.
* @member {string} [intermediate.issuer] Certificate Issuer.
* @member {string} [intermediate.rawData] Raw certificate data.
* @member {object} [root] Root certificate.
* @member {number} [root.version] Certificate Version.
* @member {string} [root.serialNumber] Certificate Serial Number.
* @member {string} [root.thumbprint] Certificate Thumbprint.
* @member {string} [root.subject] Certificate Subject.
* @member {date} [root.notBefore] Date Certificate is valid from.
* @member {date} [root.notAfter] Date Certificate is valid to.
* @member {string} [root.signatureAlgorithm] Certificate Signature algorithm.
* @member {string} [root.issuer] Certificate Issuer.
* @member {string} [root.rawData] Raw certificate data.
* @member {string} [serialNumber] Current serial number of the certificate.
* @member {date} [lastCertificateIssuanceTime] Certificate last issuance time.
* @member {date} [expirationTime] Certificate expiration time.
* @member {boolean} [isPrivateKeyExternal] true if private key is
* external; otherwise, false.
* @member {array} [appServiceCertificateNotRenewableReasons] Reasons why App
* Service Certificate is not renewable at the current moment.
* @member {date} [nextAutoRenewalTimeStamp] Time stamp when the certificate
* would be auto renewed next
*/
export interface AppServiceCertificateOrder extends Resource {
certificates?: { [propertyName: string]: AppServiceCertificate };
distinguishedName?: string;
readonly domainVerificationToken?: string;
validityInYears?: number;
keySize?: number;
productType: string;
autoRenew?: boolean;
readonly provisioningState?: string;
readonly status?: string;
readonly signedCertificate?: CertificateDetails;
csr?: string;
readonly intermediate?: CertificateDetails;
readonly root?: CertificateDetails;
readonly serialNumber?: string;
readonly lastCertificateIssuanceTime?: Date;
readonly expirationTime?: Date;
readonly isPrivateKeyExternal?: boolean;
readonly appServiceCertificateNotRenewableReasons?: string[];
readonly nextAutoRenewalTimeStamp?: Date;
}
/**
* @class
* Initializes a new instance of the ProxyOnlyResource class.
* @constructor
* Azure proxy only resource. This resource is not tracked by Azure Resource
* Manager.
*
* @member {string} [id] Resource Id.
* @member {string} [name] Resource Name.
* @member {string} [kind] Kind of resource.
* @member {string} [type] Resource type.
*/
export interface ProxyOnlyResource extends BaseResource {
readonly id?: string;
readonly name?: string;
kind?: string;
readonly type?: string;
}
/**
* @class
* Initializes a new instance of the AppServiceCertificateOrderPatchResource class.
* @constructor
* ARM resource for a certificate order that is purchased through Azure.
*
* @member {object} [certificates] State of the Key Vault secret.
* @member {string} [distinguishedName] Certificate distinguished name.
* @member {string} [domainVerificationToken] Domain verification token.
* @member {number} [validityInYears] Duration in years (must be between 1 and
* 3). Default value: 1 .
* @member {number} [keySize] Certificate key size. Default value: 2048 .
* @member {string} productType Certificate product type. Possible values
* include: 'StandardDomainValidatedSsl', 'StandardDomainValidatedWildCardSsl'
* @member {boolean} [autoRenew] true if the certificate should be
* automatically renewed when it expires; otherwise, false.
* Default value: true .
* @member {string} [provisioningState] Status of certificate order. Possible
* values include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'
* @member {string} [status] Current order status. Possible values include:
* 'Pendingissuance', 'Issued', 'Revoked', 'Canceled', 'Denied',
* 'Pendingrevocation', 'PendingRekey', 'Unused', 'Expired', 'NotSubmitted'
* @member {object} [signedCertificate] Signed certificate.
* @member {number} [signedCertificate.version] Certificate Version.
* @member {string} [signedCertificate.serialNumber] Certificate Serial Number.
* @member {string} [signedCertificate.thumbprint] Certificate Thumbprint.
* @member {string} [signedCertificate.subject] Certificate Subject.
* @member {date} [signedCertificate.notBefore] Date Certificate is valid from.
* @member {date} [signedCertificate.notAfter] Date Certificate is valid to.
* @member {string} [signedCertificate.signatureAlgorithm] Certificate
* Signature algorithm.
* @member {string} [signedCertificate.issuer] Certificate Issuer.
* @member {string} [signedCertificate.rawData] Raw certificate data.
* @member {string} [csr] Last CSR that was created for this order.
* @member {object} [intermediate] Intermediate certificate.
* @member {number} [intermediate.version] Certificate Version.
* @member {string} [intermediate.serialNumber] Certificate Serial Number.
* @member {string} [intermediate.thumbprint] Certificate Thumbprint.
* @member {string} [intermediate.subject] Certificate Subject.
* @member {date} [intermediate.notBefore] Date Certificate is valid from.
* @member {date} [intermediate.notAfter] Date Certificate is valid to.
* @member {string} [intermediate.signatureAlgorithm] Certificate Signature
* algorithm.
* @member {string} [intermediate.issuer] Certificate Issuer.
* @member {string} [intermediate.rawData] Raw certificate data.
* @member {object} [root] Root certificate.
* @member {number} [root.version] Certificate Version.
* @member {string} [root.serialNumber] Certificate Serial Number.
* @member {string} [root.thumbprint] Certificate Thumbprint.
* @member {string} [root.subject] Certificate Subject.
* @member {date} [root.notBefore] Date Certificate is valid from.
* @member {date} [root.notAfter] Date Certificate is valid to.
* @member {string} [root.signatureAlgorithm] Certificate Signature algorithm.
* @member {string} [root.issuer] Certificate Issuer.
* @member {string} [root.rawData] Raw certificate data.
* @member {string} [serialNumber] Current serial number of the certificate.
* @member {date} [lastCertificateIssuanceTime] Certificate last issuance time.
* @member {date} [expirationTime] Certificate expiration time.
* @member {boolean} [isPrivateKeyExternal] true if private key is
* external; otherwise, false.
* @member {array} [appServiceCertificateNotRenewableReasons] Reasons why App
* Service Certificate is not renewable at the current moment.
* @member {date} [nextAutoRenewalTimeStamp] Time stamp when the certificate
* would be auto renewed next
*/
export interface AppServiceCertificateOrderPatchResource extends ProxyOnlyResource {
certificates?: { [propertyName: string]: AppServiceCertificate };
distinguishedName?: string;
readonly domainVerificationToken?: string;
validityInYears?: number;
keySize?: number;
productType: string;
autoRenew?: boolean;
readonly provisioningState?: string;
readonly status?: string;
readonly signedCertificate?: CertificateDetails;
csr?: string;
readonly intermediate?: CertificateDetails;
readonly root?: CertificateDetails;
readonly serialNumber?: string;
readonly lastCertificateIssuanceTime?: Date;
readonly expirationTime?: Date;
readonly isPrivateKeyExternal?: boolean;
readonly appServiceCertificateNotRenewableReasons?: string[];
readonly nextAutoRenewalTimeStamp?: Date;
}
/**
* @class
* Initializes a new instance of the AppServiceCertificatePatchResource class.
* @constructor
* Key Vault container ARM resource for a certificate that is purchased through
* Azure.
*
* @member {string} [keyVaultId] Key Vault resource Id.
* @member {string} [keyVaultSecretName] Key Vault secret name.
* @member {string} [provisioningState] Status of the Key Vault secret.
* Possible values include: 'Initialized', 'WaitingOnCertificateOrder',
* 'Succeeded', 'CertificateOrderFailed', 'OperationNotPermittedOnKeyVault',
* 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist',
* 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey',
* 'Unknown'
*/
export interface AppServiceCertificatePatchResource extends ProxyOnlyResource {
keyVaultId?: string;
keyVaultSecretName?: string;
readonly provisioningState?: string;
}
/**
* @class
* Initializes a new instance of the CertificateEmail class.
* @constructor
* SSL certificate email.
*
* @member {string} [emailId] Email id.
* @member {date} [timeStamp] Time stamp.
*/
export interface CertificateEmail extends ProxyOnlyResource {
emailId?: string;
timeStamp?: Date;
}
/**
* @class
* Initializes a new instance of the CertificateOrderAction class.
* @constructor
* Certificate order action.
*
* @member {string} [actionType] Action type. Possible values include:
* 'CertificateIssued', 'CertificateOrderCanceled', 'CertificateOrderCreated',
* 'CertificateRevoked', 'DomainValidationComplete', 'FraudDetected',
* 'OrgNameChange', 'OrgValidationComplete', 'SanDrop', 'FraudCleared',
* 'CertificateExpired', 'CertificateExpirationWarning',
* 'FraudDocumentationRequired', 'Unknown'
* @member {date} [createdAt] Time at which the certificate action was
* performed.
*/
export interface CertificateOrderAction extends ProxyOnlyResource {
readonly actionType?: string;
readonly createdAt?: Date;
}
/**
* @class
* Initializes a new instance of the ReissueCertificateOrderRequest class.
* @constructor
* Class representing certificate reissue request.
*
* @member {number} [keySize] Certificate Key Size.
* @member {number} [delayExistingRevokeInHours] Delay in hours to revoke
* existing certificate after the new certificate is issued.
* @member {string} [csr] Csr to be used for re-key operation.
* @member {boolean} [isPrivateKeyExternal] Should we change the ASC type (from
* managed private key to external private key and vice versa).
*/
export interface ReissueCertificateOrderRequest extends ProxyOnlyResource {
keySize?: number;
delayExistingRevokeInHours?: number;
csr?: string;
isPrivateKeyExternal?: boolean;
}
/**
* @class
* Initializes a new instance of the RenewCertificateOrderRequest class.
* @constructor
* Class representing certificate renew request.
*
* @member {number} [keySize] Certificate Key Size.
* @member {string} [csr] Csr to be used for re-key operation.
* @member {boolean} [isPrivateKeyExternal] Should we change the ASC type (from
* managed private key to external private key and vice versa).
*/
export interface RenewCertificateOrderRequest extends ProxyOnlyResource {
keySize?: number;
csr?: string;
isPrivateKeyExternal?: boolean;
}
/**
* @class
* Initializes a new instance of the SiteSeal class.
* @constructor
* Site seal
*
* @member {string} html HTML snippet
*/
export interface SiteSeal {
html: string;
}
/**
* @class
* Initializes a new instance of the SiteSealRequest class.
* @constructor
* Site seal request.
*
* @member {boolean} [lightTheme] If true use the light color
* theme for site seal; otherwise, use the default color theme.
* @member {string} [locale] Locale of site seal.
*/
export interface SiteSealRequest {
lightTheme?: boolean;
locale?: string;
}
/**
* @class
* Initializes a new instance of the VnetRoute class.
* @constructor
* Virtual Network route contract used to pass routing information for a
* Virtual Network.
*
* @member {string} [startAddress] The starting address for this route. This
* may also include a CIDR notation, in which case the end address must not be
* specified.
* @member {string} [endAddress] The ending address for this route. If the
* start address is specified in CIDR notation, this must be omitted.
* @member {string} [routeType] The type of route this is:
* DEFAULT - By default, every app has routes to the local address ranges
* specified by RFC1918
* INHERITED - Routes inherited from the real Virtual Network routes
* STATIC - Static route set on the app only
*
* These values will be used for syncing an app's routes with those from a
* Virtual Network. Possible values include: 'DEFAULT', 'INHERITED', 'STATIC'
*/
export interface VnetRoute extends ProxyOnlyResource {
startAddress?: string;
endAddress?: string;
routeType?: string;
}
/**
* @class
* Initializes a new instance of the VnetInfo class.
* @constructor
* Virtual Network information contract.
*
* @member {string} [vnetResourceId] The Virtual Network's resource ID.
* @member {string} [certThumbprint] The client certificate thumbprint.
* @member {buffer} [certBlob] A certificate file (.cer) blob containing the
* public key of the private key used to authenticate a
* Point-To-Site VPN connection.
* @member {array} [routes] The routes that this Virtual Network connection
* uses.
* @member {boolean} [resyncRequired] true if a resync is
* required; otherwise, false.
* @member {string} [dnsServers] DNS servers to be used by this Virtual
* Network. This should be a comma-separated list of IP addresses.
*/
export interface VnetInfo extends ProxyOnlyResource {
vnetResourceId?: string;
readonly certThumbprint?: string;
certBlob?: Buffer;
readonly routes?: VnetRoute[];
readonly resyncRequired?: boolean;
dnsServers?: string;
}
/**
* @class
* Initializes a new instance of the VnetGateway class.
* @constructor
* The Virtual Network gateway contract. This is used to give the Virtual
* Network gateway access to the VPN package.
*
* @member {string} [vnetName] The Virtual Network name.
* @member {string} vpnPackageUri The URI where the VPN package can be
* downloaded.
*/
export interface VnetGateway extends ProxyOnlyResource {
vnetName?: string;
vpnPackageUri: string;
}
/**
* @class
* Initializes a new instance of the User class.
* @constructor
* User crendentials used for publishing activity.
*
* @member {string} publishingUserName Username used for publishing.
* @member {string} [publishingPassword] Password used for publishing.
* @member {string} [publishingPasswordHash] Password hash used for publishing.
* @member {string} [publishingPasswordHashSalt] Password hash salt used for
* publishing.
* @member {string} [scmUri] Url of SCM site.
*/
export interface User extends ProxyOnlyResource {
publishingUserName: string;
publishingPassword?: string;
publishingPasswordHash?: string;
publishingPasswordHashSalt?: string;
scmUri?: string;
}
/**
* @class
* Initializes a new instance of the Snapshot class.
* @constructor
* A snapshot of an app.
*
* @member {string} [time] The time the snapshot was taken.
*/
export interface Snapshot extends ProxyOnlyResource {
readonly time?: string;
}
/**
* @class
* Initializes a new instance of the ResourceMetricAvailability class.
* @constructor
* Metrics availability and retention.
*
* @member {string} [timeGrain] Time grain .
* @member {string} [retention] Retention period for the current time grain.
*/
export interface ResourceMetricAvailability {
readonly timeGrain?: string;
readonly retention?: string;
}
/**
* @class
* Initializes a new instance of the ResourceMetricDefinition class.
* @constructor
* Metadata for the metrics.
*
* @member {string} [unit] Unit of the metric.
* @member {string} [primaryAggregationType] Primary aggregation type.
* @member {array} [metricAvailabilities] List of time grains supported for the
* metric together with retention period.
* @member {string} [resourceUri] Resource URI.
* @member {object} [properties] Resource metric definition properties.
*/
export interface ResourceMetricDefinition extends ProxyOnlyResource {
readonly unit?: string;
readonly primaryAggregationType?: string;
readonly metricAvailabilities?: ResourceMetricAvailability[];
readonly resourceUri?: string;
readonly properties?: { [propertyName: string]: string };
}
/**
* @class
* Initializes a new instance of the PushSettings class.
* @constructor
* Push settings for the App.
*
* @member {boolean} isPushEnabled Gets or sets a flag indicating whether the
* Push endpoint is enabled.
* @member {string} [tagWhitelistJson] Gets or sets a JSON string containing a
* list of tags that are whitelisted for use by the push registration endpoint.
* @member {string} [tagsRequiringAuth] 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.
* @member {string} [dynamicTagsJson] Gets or sets a JSON string containing a
* list of dynamic tags that will be evaluated from user claims in the push
* registration endpoint.
*/
export interface PushSettings extends ProxyOnlyResource {
isPushEnabled: boolean;
tagWhitelistJson?: string;
tagsRequiringAuth?: string;
dynamicTagsJson?: string;
}
/**
* @class
* Initializes a new instance of the Identifier class.
* @constructor
* A domain specific resource identifier.
*
* @member {string} [identifierId] String representation of the identity.
*/
export interface Identifier extends ProxyOnlyResource {
identifierId?: string;
}
/**
* @class
* Initializes a new instance of the HybridConnectionKey class.
* @constructor
* Hybrid Connection key contract. This has the send key name and value for a
* Hybrid Connection.
*
* @member {string} [sendKeyName] The name of the send key.
* @member {string} [sendKeyValue] The value of the send key.
*/
export interface HybridConnectionKey extends ProxyOnlyResource {
readonly sendKeyName?: string;
readonly sendKeyValue?: string;
}
/**
* @class
* Initializes a new instance of the HybridConnection class.
* @constructor
* Hybrid Connection contract. This is used to configure a Hybrid Connection.
*
* @member {string} [serviceBusNamespace] The name of the Service Bus
* namespace.
* @member {string} [relayName] The name of the Service Bus relay.
* @member {string} [relayArmUri] The ARM URI to the Service Bus relay.
* @member {string} [hostname] The hostname of the endpoint.
* @member {number} [port] The port of the endpoint.
* @member {string} [sendKeyName] The name of the Service Bus key which has
* Send permissions. This is used to authenticate to Service Bus.
* @member {string} [sendKeyValue] The value of the Service Bus key. This is
* used to authenticate to Service Bus. In ARM this key will not be returned
* normally, use the POST /listKeys API instead.
* @member {string} [serviceBusSuffix] The suffix for the service bus endpoint.
* By default this is .servicebus.windows.net
*/
export interface HybridConnection extends ProxyOnlyResource {
serviceBusNamespace?: string;
relayName?: string;
relayArmUri?: string;
hostname?: string;
port?: number;
sendKeyName?: string;
sendKeyValue?: string;
serviceBusSuffix?: string;
}
/**
* @class
* Initializes a new instance of the DeletedSite class.
* @constructor
* A deleted app.
*
* @member {number} [deletedSiteId] Numeric id for the deleted site
* @member {string} [deletedTimestamp] Time in UTC when the app was deleted.
* @member {string} [subscription] Subscription containing the deleted site
* @member {string} [resourceGroup] ResourceGroup that contained the deleted
* site
* @member {string} [deletedSiteName] Name of the deleted site
* @member {string} [slot] Slot of the deleted site
* @member {string} [deletedSiteKind] Kind of site that was deleted
* @member {string} [geoRegionName] Geo Region of the deleted site
*/
export interface DeletedSite extends ProxyOnlyResource {
readonly deletedSiteId?: number;
readonly deletedTimestamp?: string;
readonly subscription?: string;
readonly resourceGroup?: string;
readonly deletedSiteName?: string;
readonly slot?: string;
readonly deletedSiteKind?: string;
readonly geoRegionName?: string;
}
/**
* @class
* Initializes a new instance of the ManagedServiceIdentity class.
* @constructor
* Managed service identity.
*
* @member {string} [type] Type of managed service identity. Possible values
* include: 'SystemAssigned', 'UserAssigned'
* @member {string} [tenantId] Tenant of managed service identity.
* @member {string} [principalId] Principal Id of managed service identity.
* @member {array} [identityIds] Array of UserAssigned managed service
* identities.
*/
export interface ManagedServiceIdentity {
type?: string;
readonly tenantId?: string;
readonly principalId?: string;
identityIds?: string[];
}
/**
* @class
* Initializes a new instance of the SlotSwapStatus class.
* @constructor
* The status of the last successfull slot swap operation.
*
* @member {date} [timestampUtc] The time the last successful slot swap
* completed.
* @member {string} [sourceSlotName] The source slot of the last swap
* operation.
* @member {string} [destinationSlotName] The destination slot of the last swap
* operation.
*/
export interface SlotSwapStatus {
readonly timestampUtc?: Date;
readonly sourceSlotName?: string;
readonly destinationSlotName?: string;
}
/**
* @class
* Initializes a new instance of the CloningInfo class.
* @constructor
* Information needed for cloning operation.
*
* @member {uuid} [correlationId] Correlation ID of cloning operation. This ID
* ties multiple cloning operations
* together to use the same snapshot.
* @member {boolean} [overwrite] true to overwrite destination
* app; otherwise, false.
* @member {boolean} [cloneCustomHostNames] true to clone custom
* hostnames from source app; otherwise, false.
* @member {boolean} [cloneSourceControl] true to clone source
* control from source app; otherwise, false.
* @member {string} sourceWebAppId 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.
* @member {string} [hostingEnvironment] App Service Environment.
* @member {object} [appSettingsOverrides] 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.
* @member {boolean} [configureLoadBalancing] true to configure
* load balancing for source and destination app.
* @member {string} [trafficManagerProfileId] 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}.
* @member {string} [trafficManagerProfileName] Name of Traffic Manager profile
* to create. This is only needed if Traffic Manager profile does not already
* exist.
*/
export interface CloningInfo {
correlationId?: string;
overwrite?: boolean;
cloneCustomHostNames?: boolean;
cloneSourceControl?: boolean;
sourceWebAppId: string;
hostingEnvironment?: string;
appSettingsOverrides?: { [propertyName: string]: string };
configureLoadBalancing?: boolean;
trafficManagerProfileId?: string;
trafficManagerProfileName?: string;
}
/**
* @class
* Initializes a new instance of the HostingEnvironmentProfile class.
* @constructor
* Specification for an App Service Environment to use for this resource.
*
* @member {string} [id] Resource ID of the App Service Environment.
* @member {string} [name] Name of the App Service Environment.
* @member {string} [type] Resource type of the App Service Environment.
*/
export interface HostingEnvironmentProfile {
id?: string;
readonly name?: string;
readonly type?: string;
}
/**
* @class
* Initializes a new instance of the IpSecurityRestriction class.
* @constructor
* IP security restriction on an app.
*
* @member {string} ipAddress 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.
* @member {string} [subnetMask] Subnet mask for the range of IP addresses the
* restriction is valid for.
* @member {string} [action] Allow or Deny access for this IP range.
* @member {string} [tag] Defines what this IP filter will be used for. This is
* to support IP filtering on proxies. Possible values include: 'Default',
* 'XffProxy'
* @member {number} [priority] Priority of IP restriction rule.
* @member {string} [name] IP restriction rule name.
* @member {string} [description] IP restriction rule description.
*/
export interface IpSecurityRestriction {
ipAddress: string;
subnetMask?: string;
action?: string;
tag?: string;
priority?: number;
name?: string;
description?: string;
}
/**
* @class
* Initializes a new instance of the ApiDefinitionInfo class.
* @constructor
* Information about the formal API definition for the app.
*
* @member {string} [url] The URL of the API definition.
*/
export interface ApiDefinitionInfo {
url?: string;
}
/**
* @class
* Initializes a new instance of the CorsSettings class.
* @constructor
* Cross-Origin Resource Sharing (CORS) settings for the app.
*
* @member {array} [allowedOrigins] 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.
*/
export interface CorsSettings {
allowedOrigins?: string[];
}
/**
* @class
* Initializes a new instance of the AutoHealCustomAction class.
* @constructor
* Custom action to be executed
* when an auto heal rule is triggered.
*
* @member {string} [exe] Executable to be run.
* @member {string} [parameters] Parameters for the executable.
*/
export interface AutoHealCustomAction {
exe?: string;
parameters?: string;
}
/**
* @class
* Initializes a new instance of the AutoHealActions class.
* @constructor
* Actions which to take by the auto-heal module when a rule is triggered.
*
* @member {string} [actionType] Predefined action to be taken. Possible values
* include: 'Recycle', 'LogEvent', 'CustomAction'
* @member {object} [customAction] Custom action to be taken.
* @member {string} [customAction.exe] Executable to be run.
* @member {string} [customAction.parameters] Parameters for the executable.
* @member {string} [minProcessExecutionTime] Minimum time the process must
* execute
* before taking the action
*/
export interface AutoHealActions {
actionType?: string;
customAction?: AutoHealCustomAction;
minProcessExecutionTime?: string;
}
/**
* @class
* Initializes a new instance of the SlowRequestsBasedTrigger class.
* @constructor
* Trigger based on request execution time.
*
* @member {string} [timeTaken] Time taken.
* @member {number} [count] Request Count.
* @member {string} [timeInterval] Time interval.
*/
export interface SlowRequestsBasedTrigger {
timeTaken?: string;
count?: number;
timeInterval?: string;
}
/**
* @class
* Initializes a new instance of the StatusCodesBasedTrigger class.
* @constructor
* Trigger based on status code.
*
* @member {number} [status] HTTP status code.
* @member {number} [subStatus] Request Sub Status.
* @member {number} [win32Status] Win32 error code.
* @member {number} [count] Request Count.
* @member {string} [timeInterval] Time interval.
*/
export interface StatusCodesBasedTrigger {
status?: number;
subStatus?: number;
win32Status?: number;
count?: number;
timeInterval?: string;
}
/**
* @class
* Initializes a new instance of the RequestsBasedTrigger class.
* @constructor
* Trigger based on total requests.
*
* @member {number} [count] Request Count.
* @member {string} [timeInterval] Time interval.
*/
export interface RequestsBasedTrigger {
count?: number;
timeInterval?: string;
}
/**
* @class
* Initializes a new instance of the AutoHealTriggers class.
* @constructor
* Triggers for auto-heal.
*
* @member {object} [requests] A rule based on total requests.
* @member {number} [requests.count] Request Count.
* @member {string} [requests.timeInterval] Time interval.
* @member {number} [privateBytesInKB] A rule based on private bytes.
* @member {array} [statusCodes] A rule based on status codes.
* @member {object} [slowRequests] A rule based on request execution time.
* @member {string} [slowRequests.timeTaken] Time taken.
* @member {number} [slowRequests.count] Request Count.
* @member {string} [slowRequests.timeInterval] Time interval.
*/
export interface AutoHealTriggers {
requests?: RequestsBasedTrigger;
privateBytesInKB?: number;
statusCodes?: StatusCodesBasedTrigger[];
slowRequests?: SlowRequestsBasedTrigger;
}
/**
* @class
* Initializes a new instance of the AutoHealRules class.
* @constructor
* Rules that can be defined for auto-heal.
*
* @member {object} [triggers] Conditions that describe when to execute the
* auto-heal actions.
* @member {object} [triggers.requests] A rule based on total requests.
* @member {number} [triggers.requests.count] Request Count.
* @member {string} [triggers.requests.timeInterval] Time interval.
* @member {number} [triggers.privateBytesInKB] A rule based on private bytes.
* @member {array} [triggers.statusCodes] A rule based on status codes.
* @member {object} [triggers.slowRequests] A rule based on request execution
* time.
* @member {string} [triggers.slowRequests.timeTaken] Time taken.
* @member {number} [triggers.slowRequests.count] Request Count.
* @member {string} [triggers.slowRequests.timeInterval] Time interval.
* @member {object} [actions] Actions to be executed when a rule is triggered.
* @member {string} [actions.actionType] Predefined action to be taken.
* Possible values include: 'Recycle', 'LogEvent', 'CustomAction'
* @member {object} [actions.customAction] Custom action to be taken.
* @member {string} [actions.customAction.exe] Executable to be run.
* @member {string} [actions.customAction.parameters] Parameters for the
* executable.
* @member {string} [actions.minProcessExecutionTime] Minimum time the process
* must execute
* before taking the action
*/
export interface AutoHealRules {
triggers?: AutoHealTriggers;
actions?: AutoHealActions;
}
/**
* @class
* Initializes a new instance of the SiteLimits class.
* @constructor
* Metric limits set on an app.
*
* @member {number} [maxPercentageCpu] Maximum allowed CPU usage percentage.
* @member {number} [maxMemoryInMb] Maximum allowed memory usage in MB.
* @member {number} [maxDiskSizeInMb] Maximum allowed disk size usage in MB.
*/
export interface SiteLimits {
maxPercentageCpu?: number;
maxMemoryInMb?: number;
maxDiskSizeInMb?: number;
}
/**
* @class
* Initializes a new instance of the RampUpRule class.
* @constructor
* Routing rules for ramp up testing. This rule allows to redirect static
* traffic % to a slot or to gradually change routing % based on performance.
*
* @member {string} [actionHostName] Hostname of a slot to which the traffic
* will be redirected if decided to. E.g. myapp-stage.azurewebsites.net.
* @member {number} [reroutePercentage] Percentage of the traffic which will be
* redirected to ActionHostName.
* @member {number} [changeStep] In auto ramp up scenario this is the step to
* to add/remove from ReroutePercentage until it reaches
* MinReroutePercentage or MaxReroutePercentage. Site
* metrics are checked every N minutes specificed in
* ChangeIntervalInMinutes.
* Custom decision algorithm can be provided in TiPCallback site extension
* which URL can be specified in ChangeDecisionCallbackUrl.
* @member {number} [changeIntervalInMinutes] Specifies interval in mimuntes to
* reevaluate ReroutePercentage.
* @member {number} [minReroutePercentage] Specifies lower boundary above which
* ReroutePercentage will stay.
* @member {number} [maxReroutePercentage] Specifies upper boundary below which
* ReroutePercentage will stay.
* @member {string} [changeDecisionCallbackUrl] 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/
* @member {string} [name] Name of the routing rule. The recommended name would
* be to point to the slot which will receive the traffic in the experiment.
*/
export interface RampUpRule {
actionHostName?: string;
reroutePercentage?: number;
changeStep?: number;
changeIntervalInMinutes?: number;
minReroutePercentage?: number;
maxReroutePercentage?: number;
changeDecisionCallbackUrl?: string;
name?: string;
}
/**
* @class
* Initializes a new instance of the Experiments class.
* @constructor
* Routing rules in production experiments.
*
* @member {array} [rampUpRules] List of ramp-up rules.
*/
export interface Experiments {
rampUpRules?: RampUpRule[];
}
/**
* @class
* Initializes a new instance of the VirtualDirectory class.
* @constructor
* Directory for virtual application.
*
* @member {string} [virtualPath] Path to virtual application.
* @member {string} [physicalPath] Physical path.
*/
export interface VirtualDirectory {
virtualPath?: string;
physicalPath?: string;
}
/**
* @class
* Initializes a new instance of the VirtualApplication class.
* @constructor
* Virtual application in an app.
*
* @member {string} [virtualPath] Virtual path.
* @member {string} [physicalPath] Physical path.
* @member {boolean} [preloadEnabled] true if preloading is
* enabled; otherwise, false.
* @member {array} [virtualDirectories] Virtual directories for virtual
* application.
*/
export interface VirtualApplication {
virtualPath?: string;
physicalPath?: string;
preloadEnabled?: boolean;
virtualDirectories?: VirtualDirectory[];
}
/**
* @class
* Initializes a new instance of the HandlerMapping class.
* @constructor
* 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.
*
* @member {string} [extension] Requests with this extension will be handled
* using the specified FastCGI application.
* @member {string} [scriptProcessor] The absolute path to the FastCGI
* application.
* @member {string} [argumentsProperty] Command-line arguments to be passed to
* the script processor.
*/
export interface HandlerMapping {
extension?: string;
scriptProcessor?: string;
argumentsProperty?: string;
}
/**
* @class
* Initializes a new instance of the SiteMachineKey class.
* @constructor
* MachineKey of an app.
*
* @member {string} [validation] MachineKey validation.
* @member {string} [validationKey] Validation key.
* @member {string} [decryption] Algorithm used for decryption.
* @member {string} [decryptionKey] Decryption key.
*/
export interface SiteMachineKey {
validation?: string;
validationKey?: string;
decryption?: string;
decryptionKey?: string;
}
/**
* @class
* Initializes a new instance of the ConnStringInfo class.
* @constructor
* Database connection string information.
*
* @member {string} [name] Name of connection string.
* @member {string} [connectionString] Connection string value.
* @member {string} [type] Type of database. Possible values include: 'MySql',
* 'SQLServer', 'SQLAzure', 'Custom', 'NotificationHub', 'ServiceBus',
* 'EventHub', 'ApiHub', 'DocDb', 'RedisCache', 'PostgreSQL'
*/
export interface ConnStringInfo {
name?: string;
connectionString?: string;
type?: string;
}
/**
* @class
* Initializes a new instance of the AzureStorageInfoValue class.
* @constructor
* Azure Files or Blob Storage access information value for dictionary storage.
*
* @member {string} [type] Type of storage. Possible values include:
* 'AzureFiles', 'AzureBlob'
* @member {string} [accountName] Name of the storage account.
* @member {string} [shareName] Name of the file share (container name, for
* Blob storage).
* @member {string} [accessKey] Access key for the storage account.
* @member {string} [mountPath] Path to mount the storage within the site's
* runtime environment.
* @member {string} [state] State of the storage account. Possible values
* include: 'Ok', 'InvalidCredentials', 'InvalidShare'
*/
export interface AzureStorageInfoValue {
type?: string;
accountName?: string;
shareName?: string;
accessKey?: string;
mountPath?: string;
readonly state?: string;
}
/**
* @class
* Initializes a new instance of the NameValuePair class.
* @constructor
* Name value pair.
*
* @member {string} [name] Pair name.
* @member {string} [value] Pair value.
*/
export interface NameValuePair {
name?: string;
value?: string;
}
/**
* @class
* Initializes a new instance of the SiteConfig class.
* @constructor
* Configuration of an App Service app.
*
* @member {number} [numberOfWorkers] Number of workers.
* @member {array} [defaultDocuments] Default documents.
* @member {string} [netFrameworkVersion] .NET Framework version. Default
* value: 'v4.6' .
* @member {string} [phpVersion] Version of PHP.
* @member {string} [pythonVersion] Version of Python.
* @member {string} [nodeVersion] Version of Node.js.
* @member {string} [linuxFxVersion] Linux App Framework and version
* @member {string} [windowsFxVersion] Xenon App Framework and version
* @member {boolean} [requestTracingEnabled] true if request
* tracing is enabled; otherwise, false.
* @member {date} [requestTracingExpirationTime] Request tracing expiration
* time.
* @member {boolean} [remoteDebuggingEnabled] true if remote
* debugging is enabled; otherwise, false.
* @member {string} [remoteDebuggingVersion] Remote debugging version.
* @member {boolean} [httpLoggingEnabled] true if HTTP logging is
* enabled; otherwise, false.
* @member {number} [logsDirectorySizeLimit] HTTP logs directory size limit.
* @member {boolean} [detailedErrorLoggingEnabled] true if
* detailed error logging is enabled; otherwise, false.
* @member {string} [publishingUsername] Publishing user name.
* @member {array} [appSettings] Application settings.
* @member {object} [azureStorageAccounts] User-provided Azure storage
* accounts.
* @member {array} [connectionStrings] Connection strings.
* @member {object} [machineKey] Site MachineKey.
* @member {string} [machineKey.validation] MachineKey validation.
* @member {string} [machineKey.validationKey] Validation key.
* @member {string} [machineKey.decryption] Algorithm used for decryption.
* @member {string} [machineKey.decryptionKey] Decryption key.
* @member {array} [handlerMappings] Handler mappings.
* @member {string} [documentRoot] Document root.
* @member {string} [scmType] SCM type. Possible values include: 'None',
* 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg',
* 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive',
* 'VSO'
* @member {boolean} [use32BitWorkerProcess] true to use 32-bit
* worker process; otherwise, false.
* @member {boolean} [webSocketsEnabled] true if WebSocket is
* enabled; otherwise, false.
* @member {boolean} [alwaysOn] true if Always On is enabled;
* otherwise, false.
* @member {string} [javaVersion] Java version.
* @member {string} [javaContainer] Java container.
* @member {string} [javaContainerVersion] Java container version.
* @member {string} [appCommandLine] App command line to launch.
* @member {string} [managedPipelineMode] Managed pipeline mode. Possible
* values include: 'Integrated', 'Classic'
* @member {array} [virtualApplications] Virtual applications.
* @member {string} [loadBalancing] Site load balancing. Possible values
* include: 'WeightedRoundRobin', 'LeastRequests', 'LeastResponseTime',
* 'WeightedTotalTraffic', 'RequestHash'
* @member {object} [experiments] This is work around for polymophic types.
* @member {array} [experiments.rampUpRules] List of ramp-up rules.
* @member {object} [limits] Site limits.
* @member {number} [limits.maxPercentageCpu] Maximum allowed CPU usage
* percentage.
* @member {number} [limits.maxMemoryInMb] Maximum allowed memory usage in MB.
* @member {number} [limits.maxDiskSizeInMb] Maximum allowed disk size usage in
* MB.
* @member {boolean} [autoHealEnabled] true if Auto Heal is
* enabled; otherwise, false.
* @member {object} [autoHealRules] Auto Heal rules.
* @member {object} [autoHealRules.triggers] Conditions that describe when to
* execute the auto-heal actions.
* @member {object} [autoHealRules.triggers.requests] A rule based on total
* requests.
* @member {number} [autoHealRules.triggers.requests.count] Request Count.
* @member {string} [autoHealRules.triggers.requests.timeInterval] Time
* interval.
* @member {number} [autoHealRules.triggers.privateBytesInKB] A rule based on
* private bytes.
* @member {array} [autoHealRules.triggers.statusCodes] A rule based on status
* codes.
* @member {object} [autoHealRules.triggers.slowRequests] A rule based on
* request execution time.
* @member {string} [autoHealRules.triggers.slowRequests.timeTaken] Time taken.
* @member {number} [autoHealRules.triggers.slowRequests.count] Request Count.
* @member {string} [autoHealRules.triggers.slowRequests.timeInterval] Time
* interval.
* @member {object} [autoHealRules.actions] Actions to be executed when a rule
* is triggered.
* @member {string} [autoHealRules.actions.actionType] Predefined action to be
* taken. Possible values include: 'Recycle', 'LogEvent', 'CustomAction'
* @member {object} [autoHealRules.actions.customAction] Custom action to be
* taken.
* @member {string} [autoHealRules.actions.customAction.exe] Executable to be
* run.
* @member {string} [autoHealRules.actions.customAction.parameters] Parameters
* for the executable.
* @member {string} [autoHealRules.actions.minProcessExecutionTime] Minimum
* time the process must execute
* before taking the action
* @member {string} [tracingOptions] Tracing options.
* @member {string} [vnetName] Virtual Network name.
* @member {object} [cors] Cross-Origin Resource Sharing (CORS) settings.
* @member {array} [cors.allowedOrigins] 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.
* @member {object} [push] Push endpoint settings.
* @member {boolean} [push.isPushEnabled] Gets or sets a flag indicating
* whether the Push endpoint is enabled.
* @member {string} [push.tagWhitelistJson] Gets or sets a JSON string
* containing a list of tags that are whitelisted for use by the push
* registration endpoint.
* @member {string} [push.tagsRequiringAuth] 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.
* @member {string} [push.dynamicTagsJson] Gets or sets a JSON string
* containing a list of dynamic tags that will be evaluated from user claims in
* the push registration endpoint.
* @member {object} [apiDefinition] Information about the formal API definition
* for the app.
* @member {string} [apiDefinition.url] The URL of the API definition.
* @member {string} [autoSwapSlotName] Auto-swap slot name.
* @member {boolean} [localMySqlEnabled] true to enable local
* MySQL; otherwise, false. Default value: false .
* @member {number} [managedServiceIdentityId] Managed Service Identity Id
* @member {number} [xManagedServiceIdentityId] Explicit Managed Service
* Identity Id
* @member {array} [ipSecurityRestrictions] IP security restrictions.
* @member {boolean} [http20Enabled] Http20Enabled: configures a web site to
* allow clients to connect over http2.0. Default value: true .
* @member {string} [minTlsVersion] MinTlsVersion: configures the minimum
* version of TLS required for SSL requests. Possible values include: '1.0',
* '1.1', '1.2'
* @member {string} [ftpsState] State of FTP / FTPS service. Possible values
* include: 'AllAllowed', 'FtpsOnly', 'Disabled'
* @member {number} [reservedInstanceCount] Number of reserved instances.
* This setting only applies to the Consumption Plan
*/
export interface SiteConfig {
numberOfWorkers?: number;
defaultDocuments?: string[];
netFrameworkVersion?: string;
phpVersion?: string;
pythonVersion?: string;
nodeVersion?: string;
linuxFxVersion?: string;
windowsFxVersion?: string;
requestTracingEnabled?: boolean;
requestTracingExpirationTime?: Date;
remoteDebuggingEnabled?: boolean;
remoteDebuggingVersion?: string;
httpLoggingEnabled?: boolean;
logsDirectorySizeLimit?: number;
detailedErrorLoggingEnabled?: boolean;
publishingUsername?: string;
appSettings?: NameValuePair[];
azureStorageAccounts?: { [propertyName: string]: AzureStorageInfoValue };
connectionStrings?: ConnStringInfo[];
readonly machineKey?: SiteMachineKey;
handlerMappings?: HandlerMapping[];
documentRoot?: string;
scmType?: string;
use32BitWorkerProcess?: boolean;
webSocketsEnabled?: boolean;
alwaysOn?: boolean;
javaVersion?: string;
javaContainer?: string;
javaContainerVersion?: string;
appCommandLine?: string;
managedPipelineMode?: string;
virtualApplications?: VirtualApplication[];
loadBalancing?: string;
experiments?: Experiments;
limits?: SiteLimits;
autoHealEnabled?: boolean;
autoHealRules?: AutoHealRules;
tracingOptions?: string;
vnetName?: string;
cors?: CorsSettings;
push?: PushSettings;
apiDefinition?: ApiDefinitionInfo;
autoSwapSlotName?: string;
localMySqlEnabled?: boolean;
managedServiceIdentityId?: number;
xManagedServiceIdentityId?: number;
ipSecurityRestrictions?: IpSecurityRestriction[];
http20Enabled?: boolean;
minTlsVersion?: string;
ftpsState?: string;
reservedInstanceCount?: number;
}
/**
* @class
* Initializes a new instance of the HostNameSslState class.
* @constructor
* SSL-enabled hostname.
*
* @member {string} [name] Hostname.
* @member {string} [sslState] SSL type. Possible values include: 'Disabled',
* 'SniEnabled', 'IpBasedEnabled'
* @member {string} [virtualIP] Virtual IP address assigned to the hostname if
* IP based SSL is enabled.
* @member {string} [thumbprint] SSL certificate thumbprint.
* @member {boolean} [toUpdate] Set to true to update existing
* hostname.
* @member {string} [hostType] Indicates whether the hostname is a standard or
* repository hostname. Possible values include: 'Standard', 'Repository'
*/
export interface HostNameSslState {
name?: string;
sslState?: string;
virtualIP?: string;
thumbprint?: string;
toUpdate?: boolean;
hostType?: string;
}
/**
* @class
* Initializes a new instance of the Site class.
* @constructor
* A web app, a mobile app backend, or an API app.
*
* @member {string} [state] Current state of the app.
* @member {array} [hostNames] Hostnames associated with the app.
* @member {string} [repositorySiteName] Name of the repository site.
* @member {string} [usageState] State indicating whether the app has exceeded
* its quota usage. Read-only. Possible values include: 'Normal', 'Exceeded'
* @member {boolean} [enabled] true if the app is enabled;
* otherwise, false. Setting this value to false disables the app
* (takes the app offline).
* @member {array} [enabledHostNames] Enabled hostnames for the app.Hostnames
* need to be assigned (see HostNames) AND enabled. Otherwise,
* the app is not served on those hostnames.
* @member {string} [availabilityState] Management information availability
* state for the app. Possible values include: 'Normal', 'Limited',
* 'DisasterRecoveryMode'
* @member {array} [hostNameSslStates] Hostname SSL states are used to manage
* the SSL bindings for app's hostnames.
* @member {string} [serverFarmId] Resource ID of the associated App Service
* plan, formatted as:
* "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
* @member {boolean} [reserved] true if reserved; otherwise,
* false. Default value: false .
* @member {boolean} [isXenon] Obsolete: Hyper-V sandbox. Default value: false
* .
* @member {boolean} [hyperV] Hyper-V sandbox. Default value: false .
* @member {date} [lastModifiedTimeUtc] Last time the app was modified, in UTC.
* Read-only.
* @member {object} [siteConfig] Configuration of the app.
* @member {number} [siteConfig.numberOfWorkers] Number of workers.
* @member {array} [siteConfig.defaultDocuments] Default documents.
* @member {string} [siteConfig.netFrameworkVersion] .NET Framework version.
* @member {string} [siteConfig.phpVersion] Version of PHP.
* @member {string} [siteConfig.pythonVersion] Version of Python.
* @member {string} [siteConfig.nodeVersion] Version of Node.js.
* @member {string} [siteConfig.linuxFxVersion] Linux App Framework and version
* @member {string} [siteConfig.windowsFxVersion] Xenon App Framework and
* version
* @member {boolean} [siteConfig.requestTracingEnabled] true if
* request tracing is enabled; otherwise, false.
* @member {date} [siteConfig.requestTracingExpirationTime] Request tracing
* expiration time.
* @member {boolean} [siteConfig.remoteDebuggingEnabled] true if
* remote debugging is enabled; otherwise, false.
* @member {string} [siteConfig.remoteDebuggingVersion] Remote debugging
* version.
* @member {boolean} [siteConfig.httpLoggingEnabled] true if HTTP
* logging is enabled; otherwise, false.
* @member {number} [siteConfig.logsDirectorySizeLimit] HTTP logs directory
* size limit.
* @member {boolean} [siteConfig.detailedErrorLoggingEnabled] true
* if detailed error logging is enabled; otherwise, false.
* @member {string} [siteConfig.publishingUsername] Publishing user name.
* @member {array} [siteConfig.appSettings] Application settings.
* @member {object} [siteConfig.azureStorageAccounts] User-provided Azure
* storage accounts.
* @member {array} [siteConfig.connectionStrings] Connection strings.
* @member {object} [siteConfig.machineKey] Site MachineKey.
* @member {string} [siteConfig.machineKey.validation] MachineKey validation.
* @member {string} [siteConfig.machineKey.validationKey] Validation key.
* @member {string} [siteConfig.machineKey.decryption] Algorithm used for
* decryption.
* @member {string} [siteConfig.machineKey.decryptionKey] Decryption key.
* @member {array} [siteConfig.handlerMappings] Handler mappings.
* @member {string} [siteConfig.documentRoot] Document root.
* @member {string} [siteConfig.scmType] SCM type. Possible values include:
* 'None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg',
* 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive',
* 'VSO'
* @member {boolean} [siteConfig.use32BitWorkerProcess] true to
* use 32-bit worker process; otherwise, false.
* @member {boolean} [siteConfig.webSocketsEnabled] true if
* WebSocket is enabled; otherwise, false.
* @member {boolean} [siteConfig.alwaysOn] true if Always On is
* enabled; otherwise, false.
* @member {string} [siteConfig.javaVersion] Java version.
* @member {string} [siteConfig.javaContainer] Java container.
* @member {string} [siteConfig.javaContainerVersion] Java container version.
* @member {string} [siteConfig.appCommandLine] App command line to launch.
* @member {string} [siteConfig.managedPipelineMode] Managed pipeline mode.
* Possible values include: 'Integrated', 'Classic'
* @member {array} [siteConfig.virtualApplications] Virtual applications.
* @member {string} [siteConfig.loadBalancing] Site load balancing. Possible
* values include: 'WeightedRoundRobin', 'LeastRequests', 'LeastResponseTime',
* 'WeightedTotalTraffic', 'RequestHash'
* @member {object} [siteConfig.experiments] This is work around for polymophic
* types.
* @member {array} [siteConfig.experiments.rampUpRules] List of ramp-up rules.
* @member {object} [siteConfig.limits] Site limits.
* @member {number} [siteConfig.limits.maxPercentageCpu] Maximum allowed CPU
* usage percentage.
* @member {number} [siteConfig.limits.maxMemoryInMb] Maximum allowed memory
* usage in MB.
* @member {number} [siteConfig.limits.maxDiskSizeInMb] Maximum allowed disk
* size usage in MB.
* @member {boolean} [siteConfig.autoHealEnabled] true if Auto
* Heal is enabled; otherwise, false.
* @member {object} [siteConfig.autoHealRules] Auto Heal rules.
* @member {object} [siteConfig.autoHealRules.triggers] Conditions that
* describe when to execute the auto-heal actions.
* @member {object} [siteConfig.autoHealRules.triggers.requests] A rule based
* on total requests.
* @member {number} [siteConfig.autoHealRules.triggers.requests.count] Request
* Count.
* @member {string} [siteConfig.autoHealRules.triggers.requests.timeInterval]
* Time interval.
* @member {number} [siteConfig.autoHealRules.triggers.privateBytesInKB] A rule
* based on private bytes.
* @member {array} [siteConfig.autoHealRules.triggers.statusCodes] A rule based
* on status codes.
* @member {object} [siteConfig.autoHealRules.triggers.slowRequests] A rule
* based on request execution time.
* @member {string} [siteConfig.autoHealRules.triggers.slowRequests.timeTaken]
* Time taken.
* @member {number} [siteConfig.autoHealRules.triggers.slowRequests.count]
* Request Count.
* @member {string}
* [siteConfig.autoHealRules.triggers.slowRequests.timeInterval] Time interval.
* @member {object} [siteConfig.autoHealRules.actions] Actions to be executed
* when a rule is triggered.
* @member {string} [siteConfig.autoHealRules.actions.actionType] Predefined
* action to be taken. Possible values include: 'Recycle', 'LogEvent',
* 'CustomAction'
* @member {object} [siteConfig.autoHealRules.actions.customAction] Custom
* action to be taken.
* @member {string} [siteConfig.autoHealRules.actions.customAction.exe]
* Executable to be run.
* @member {string} [siteConfig.autoHealRules.actions.customAction.parameters]
* Parameters for the executable.
* @member {string} [siteConfig.autoHealRules.actions.minProcessExecutionTime]
* Minimum time the process must execute
* before taking the action
* @member {string} [siteConfig.tracingOptions] Tracing options.
* @member {string} [siteConfig.vnetName] Virtual Network name.
* @member {object} [siteConfig.cors] Cross-Origin Resource Sharing (CORS)
* settings.
* @member {array} [siteConfig.cors.allowedOrigins] 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.
* @member {object} [siteConfig.push] Push endpoint settings.
* @member {boolean} [siteConfig.push.isPushEnabled] Gets or sets a flag
* indicating whether the Push endpoint is enabled.
* @member {string} [siteConfig.push.tagWhitelistJson] Gets or sets a JSON
* string containing a list of tags that are whitelisted for use by the push
* registration endpoint.
* @member {string} [siteConfig.push.tagsRequiringAuth] 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.
* @member {string} [siteConfig.push.dynamicTagsJson] Gets or sets a JSON
* string containing a list of dynamic tags that will be evaluated from user
* claims in the push registration endpoint.
* @member {object} [siteConfig.apiDefinition] Information about the formal API
* definition for the app.
* @member {string} [siteConfig.apiDefinition.url] The URL of the API
* definition.
* @member {string} [siteConfig.autoSwapSlotName] Auto-swap slot name.
* @member {boolean} [siteConfig.localMySqlEnabled] true to enable
* local MySQL; otherwise, false.
* @member {number} [siteConfig.managedServiceIdentityId] Managed Service
* Identity Id
* @member {number} [siteConfig.xManagedServiceIdentityId] Explicit Managed
* Service Identity Id
* @member {array} [siteConfig.ipSecurityRestrictions] IP security
* restrictions.
* @member {boolean} [siteConfig.http20Enabled] Http20Enabled: configures a web
* site to allow clients to connect over http2.0
* @member {string} [siteConfig.minTlsVersion] MinTlsVersion: configures the
* minimum version of TLS required for SSL requests. Possible values include:
* '1.0', '1.1', '1.2'
* @member {string} [siteConfig.ftpsState] State of FTP / FTPS service.
* Possible values include: 'AllAllowed', 'FtpsOnly', 'Disabled'
* @member {number} [siteConfig.reservedInstanceCount] Number of reserved
* instances.
* This setting only applies to the Consumption Plan
* @member {array} [trafficManagerHostNames] Azure Traffic Manager hostnames
* associated with the app. Read-only.
* @member {boolean} [scmSiteAlsoStopped] true to stop SCM (KUDU)
* site when the app is stopped; otherwise, false. The default is
* false. Default value: false .
* @member {string} [targetSwapSlot] Specifies which deployment slot this app
* will swap into. Read-only.
* @member {object} [hostingEnvironmentProfile] App Service Environment to use
* for the app.
* @member {string} [hostingEnvironmentProfile.id] Resource ID of the App
* Service Environment.
* @member {string} [hostingEnvironmentProfile.name] Name of the App Service
* Environment.
* @member {string} [hostingEnvironmentProfile.type] Resource type of the App
* Service Environment.
* @member {boolean} [clientAffinityEnabled] true to enable client
* affinity; false to stop sending session affinity cookies, which
* route client requests in the same session to the same instance. Default is
* true.
* @member {boolean} [clientCertEnabled] true to enable client
* certificate authentication (TLS mutual authentication); otherwise,
* false. Default is false.
* @member {boolean} [hostNamesDisabled] true to disable the
* public hostnames of the app; otherwise, false.
* If true, the app is only accessible via API management process.
* @member {string} [outboundIpAddresses] List of IP addresses that the app
* uses for outbound connections (e.g. database access). Includes VIPs from
* tenants that site can be hosted with current settings. Read-only.
* @member {string} [possibleOutboundIpAddresses] List of IP addresses that the
* app uses for outbound connections (e.g. database access). Includes VIPs from
* all tenants. Read-only.
* @member {number} [containerSize] Size of the function container.
* @member {number} [dailyMemoryTimeQuota] Maximum allowed daily memory-time
* quota (applicable on dynamic apps only).
* @member {date} [suspendedTill] App suspended till in case memory-time quota
* is exceeded.
* @member {number} [maxNumberOfWorkers] Maximum number of workers.
* This only applies to Functions container.
* @member {object} [cloningInfo] If specified during app creation, the app is
* cloned from a source app.
* @member {uuid} [cloningInfo.correlationId] Correlation ID of cloning
* operation. This ID ties multiple cloning operations
* together to use the same snapshot.
* @member {boolean} [cloningInfo.overwrite] true to overwrite
* destination app; otherwise, false.
* @member {boolean} [cloningInfo.cloneCustomHostNames] true to
* clone custom hostnames from source app; otherwise, false.
* @member {boolean} [cloningInfo.cloneSourceControl] true to
* clone source control from source app; otherwise, false.
* @member {string} [cloningInfo.sourceWebAppId] 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.
* @member {string} [cloningInfo.hostingEnvironment] App Service Environment.
* @member {object} [cloningInfo.appSettingsOverrides] 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.
* @member {boolean} [cloningInfo.configureLoadBalancing] true to
* configure load balancing for source and destination app.
* @member {string} [cloningInfo.trafficManagerProfileId] 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}.
* @member {string} [cloningInfo.trafficManagerProfileName] Name of Traffic
* Manager profile to create. This is only needed if Traffic Manager profile
* does not already exist.
* @member {string} [resourceGroup] Name of the resource group the app belongs
* to. Read-only.
* @member {boolean} [isDefaultContainer] true if the app is a
* default container; otherwise, false.
* @member {string} [defaultHostName] Default hostname of the app. Read-only.
* @member {object} [slotSwapStatus] Status of the last deployment slot swap
* operation.
* @member {date} [slotSwapStatus.timestampUtc] The time the last successful
* slot swap completed.
* @member {string} [slotSwapStatus.sourceSlotName] The source slot of the last
* swap operation.
* @member {string} [slotSwapStatus.destinationSlotName] The destination slot
* of the last swap operation.
* @member {boolean} [httpsOnly] HttpsOnly: configures a web site to accept
* only https requests. Issues redirect for
* http requests
* @member {object} [identity]
* @member {string} [identity.type] Type of managed service identity. Possible
* values include: 'SystemAssigned', 'UserAssigned'
* @member {string} [identity.tenantId] Tenant of managed service identity.
* @member {string} [identity.principalId] Principal Id of managed service
* identity.
* @member {array} [identity.identityIds] Array of UserAssigned managed service
* identities.
*/
export interface Site extends Resource {
readonly state?: string;
readonly hostNames?: string[];
readonly repositorySiteName?: string;
readonly usageState?: string;
enabled?: boolean;
readonly enabledHostNames?: string[];
readonly availabilityState?: string;
hostNameSslStates?: HostNameSslState[];
serverFarmId?: string;
reserved?: boolean;
isXenon?: boolean;
hyperV?: boolean;
readonly lastModifiedTimeUtc?: Date;
siteConfig?: SiteConfig;
readonly trafficManagerHostNames?: string[];
scmSiteAlsoStopped?: boolean;
readonly targetSwapSlot?: string;
hostingEnvironmentProfile?: HostingEnvironmentProfile;
clientAffinityEnabled?: boolean;
clientCertEnabled?: boolean;
hostNamesDisabled?: boolean;
readonly outboundIpAddresses?: string;
readonly possibleOutboundIpAddresses?: string;
containerSize?: number;
dailyMemoryTimeQuota?: number;
readonly suspendedTill?: Date;
readonly maxNumberOfWorkers?: number;
cloningInfo?: CloningInfo;
readonly resourceGroup?: string;
readonly isDefaultContainer?: boolean;
readonly defaultHostName?: string;
readonly slotSwapStatus?: SlotSwapStatus;
httpsOnly?: boolean;
identity?: ManagedServiceIdentity;
}
/**
* @class
* Initializes a new instance of the Capability class.
* @constructor
* Describes the capabilities/features allowed for a specific SKU.
*
* @member {string} [name] Name of the SKU capability.
* @member {string} [value] Value of the SKU capability.
* @member {string} [reason] Reason of the SKU capability.
*/
export interface Capability {
name?: string;
value?: string;
reason?: string;
}
/**
* @class
* Initializes a new instance of the SkuCapacity class.
* @constructor
* Description of the App Service plan scale options.
*
* @member {number} [minimum] Minimum number of workers for this App Service
* plan SKU.
* @member {number} [maximum] Maximum number of workers for this App Service
* plan SKU.
* @member {number} [default] Default number of workers for this App Service
* plan SKU.
* @member {string} [scaleType] Available scale configurations for an App
* Service plan.
*/
export interface SkuCapacity {
minimum?: number;
maximum?: number;
default?: number;
scaleType?: string;
}
/**
* @class
* Initializes a new instance of the SkuDescription class.
* @constructor
* Description of a SKU for a scalable resource.
*
* @member {string} [name] Name of the resource SKU.
* @member {string} [tier] Service tier of the resource SKU.
* @member {string} [size] Size specifier of the resource SKU.
* @member {string} [family] Family code of the resource SKU.
* @member {number} [capacity] Current number of instances assigned to the
* resource.
* @member {object} [skuCapacity] Min, max, and default scale values of the
* SKU.
* @member {number} [skuCapacity.minimum] Minimum number of workers for this
* App Service plan SKU.
* @member {number} [skuCapacity.maximum] Maximum number of workers for this
* App Service plan SKU.
* @member {number} [skuCapacity.default] Default number of workers for this
* App Service plan SKU.
* @member {string} [skuCapacity.scaleType] Available scale configurations for
* an App Service plan.
* @member {array} [locations] Locations of the SKU.
* @member {array} [capabilities] Capabilities of the SKU, e.g., is traffic
* manager enabled?
*/
export interface SkuDescription {
name?: string;
tier?: string;
size?: string;
family?: string;
capacity?: number;
skuCapacity?: SkuCapacity;
locations?: string[];
capabilities?: Capability[];
}
/**
* @class
* Initializes a new instance of the AppServicePlan class.
* @constructor
* App Service plan.
*
* @member {string} [workerTierName] Target worker tier assigned to the App
* Service plan.
* @member {string} [status] App Service plan status. Possible values include:
* 'Ready', 'Pending', 'Creating'
* @member {string} [subscription] App Service plan subscription.
* @member {string} [adminSiteName] App Service plan administration site.
* @member {object} [hostingEnvironmentProfile] Specification for the App
* Service Environment to use for the App Service plan.
* @member {string} [hostingEnvironmentProfile.id] Resource ID of the App
* Service Environment.
* @member {string} [hostingEnvironmentProfile.name] Name of the App Service
* Environment.
* @member {string} [hostingEnvironmentProfile.type] Resource type of the App
* Service Environment.
* @member {number} [maximumNumberOfWorkers] Maximum number of instances that
* can be assigned to this App Service plan.
* @member {string} [geoRegion] Geographical location for the App Service plan.
* @member {boolean} [perSiteScaling] If true, apps assigned to
* this App Service plan can be scaled independently.
* If false, apps assigned to this App Service plan will scale to
* all instances of the plan. Default value: false .
* @member {number} [maximumElasticWorkerCount] Maximum number of total workers
* allowed for this ElasticScaleEnabled App Service Plan
* @member {number} [numberOfSites] Number of apps assigned to this App Service
* plan.
* @member {boolean} [isSpot] If true, this App Service Plan owns
* spot instances.
* @member {date} [spotExpirationTime] The time when the server farm expires.
* Valid only if it is a spot server farm.
* @member {date} [freeOfferExpirationTime] The time when the server farm free
* offer expires.
* @member {string} [resourceGroup] Resource group of the App Service plan.
* @member {boolean} [reserved] If Linux app service plan true,
* false otherwise. Default value: false .
* @member {boolean} [isXenon] Obsolete: If Hyper-V container app service plan
* true, false otherwise. Default value: false .
* @member {boolean} [hyperV] If Hyper-V container app service plan
* true, false otherwise. Default value: false .
* @member {number} [targetWorkerCount] Scaling worker count.
* @member {number} [targetWorkerSizeId] Scaling worker size ID.
* @member {string} [provisioningState] Provisioning state of the App Service
* Environment. Possible values include: 'Succeeded', 'Failed', 'Canceled',
* 'InProgress', 'Deleting'
* @member {object} [sku]
* @member {string} [sku.name] Name of the resource SKU.
* @member {string} [sku.tier] Service tier of the resource SKU.
* @member {string} [sku.size] Size specifier of the resource SKU.
* @member {string} [sku.family] Family code of the resource SKU.
* @member {number} [sku.capacity] Current number of instances assigned to the
* resource.
* @member {object} [sku.skuCapacity] Min, max, and default scale values of the
* SKU.
* @member {number} [sku.skuCapacity.minimum] Minimum number of workers for
* this App Service plan SKU.
* @member {number} [sku.skuCapacity.maximum] Maximum number of workers for
* this App Service plan SKU.
* @member {number} [sku.skuCapacity.default] Default number of workers for
* this App Service plan SKU.
* @member {string} [sku.skuCapacity.scaleType] Available scale configurations
* for an App Service plan.
* @member {array} [sku.locations] Locations of the SKU.
* @member {array} [sku.capabilities] Capabilities of the SKU, e.g., is traffic
* manager enabled?
*/
export interface AppServicePlan extends Resource {
workerTierName?: string;
readonly status?: string;
readonly subscription?: string;
adminSiteName?: string;
hostingEnvironmentProfile?: HostingEnvironmentProfile;
readonly maximumNumberOfWorkers?: number;
readonly geoRegion?: string;
perSiteScaling?: boolean;
maximumElasticWorkerCount?: number;
readonly numberOfSites?: number;
isSpot?: boolean;
spotExpirationTime?: Date;
freeOfferExpirationTime?: Date;
readonly resourceGroup?: string;
reserved?: boolean;
isXenon?: boolean;
hyperV?: boolean;
targetWorkerCount?: number;
targetWorkerSizeId?: number;
readonly provisioningState?: string;
sku?: SkuDescription;
}
/**
* @class
* Initializes a new instance of the DefaultErrorResponseErrorDetailsItem class.
* @constructor
* Detailed errors.
*
* @member {string} [code] Standardized string to programmatically identify the
* error.
* @member {string} [message] Detailed error description and debugging
* information.
* @member {string} [target] Detailed error description and debugging
* information.
*/
export interface DefaultErrorResponseErrorDetailsItem {
readonly code?: string;
readonly message?: string;
readonly target?: string;
}
/**
* @class
* Initializes a new instance of the DefaultErrorResponseError class.
* @constructor
* Error model.
*
* @member {string} [code] Standardized string to programmatically identify the
* error.
* @member {string} [message] Detailed error description and debugging
* information.
* @member {string} [target] Detailed error description and debugging
* information.
* @member {array} [details]
* @member {string} [innererror] More information to debug error.
*/
export interface DefaultErrorResponseError {
readonly code?: string;
readonly message?: string;
readonly target?: string;
details?: DefaultErrorResponseErrorDetailsItem[];
readonly innererror?: string;
}
/**
* @class
* Initializes a new instance of the DefaultErrorResponse class.
* @constructor
* App Service error response.
*
* @member {object} [error] Error model.
* @member {string} [error.code] Standardized string to programmatically
* identify the error.
* @member {string} [error.message] Detailed error description and debugging
* information.
* @member {string} [error.target] Detailed error description and debugging
* information.
* @member {array} [error.details]
* @member {string} [error.innererror] More information to debug error.
*/
export interface DefaultErrorResponse {
readonly error?: DefaultErrorResponseError;
}
/**
* @class
* Initializes a new instance of the NameIdentifier class.
* @constructor
* Identifies an object.
*
* @member {string} [name] Name of the object.
*/
export interface NameIdentifier {
name?: string;
}
/**
* @class
* Initializes a new instance of the LogSpecification class.
* @constructor
* Log Definition of a single resource metric.
*
* @member {string} [name]
* @member {string} [displayName]
* @member {string} [blobDuration]
*/
export interface LogSpecification {
name?: string;
displayName?: string;
blobDuration?: string;
}
/**
* @class
* Initializes a new instance of the MetricAvailability class.
* @constructor
* Retention policy of a resource metric.
*
* @member {string} [timeGrain]
* @member {string} [blobDuration]
*/
export interface MetricAvailability {
timeGrain?: string;
blobDuration?: string;
}
/**
* @class
* Initializes a new instance of the Dimension class.
* @constructor
* Dimension of a resource metric. For e.g. instance specific HTTP requests for
* a web app,
* where instance name is dimension of the metric HTTP request
*
* @member {string} [name]
* @member {string} [displayName]
* @member {string} [internalName]
* @member {boolean} [toBeExportedForShoebox]
*/
export interface Dimension {
name?: string;
displayName?: string;
internalName?: string;
toBeExportedForShoebox?: boolean;
}
/**
* @class
* Initializes a new instance of the MetricSpecification class.
* @constructor
* Definition of a single resource metric.
*
* @member {string} [name]
* @member {string} [displayName]
* @member {string} [displayDescription]
* @member {string} [unit]
* @member {string} [aggregationType]
* @member {boolean} [supportsInstanceLevelAggregation]
* @member {boolean} [enableRegionalMdmAccount]
* @member {string} [sourceMdmAccount]
* @member {string} [sourceMdmNamespace]
* @member {string} [metricFilterPattern]
* @member {boolean} [fillGapWithZero]
* @member {boolean} [isInternal]
* @member {array} [dimensions]
* @member {string} [category]
* @member {array} [availabilities]
*/
export interface MetricSpecification {
name?: string;
displayName?: string;
displayDescription?: string;
unit?: string;
aggregationType?: string;
supportsInstanceLevelAggregation?: boolean;
enableRegionalMdmAccount?: boolean;
sourceMdmAccount?: string;
sourceMdmNamespace?: string;
metricFilterPattern?: string;
fillGapWithZero?: boolean;
isInternal?: boolean;
dimensions?: Dimension[];
category?: string;
availabilities?: MetricAvailability[];
}
/**
* @class
* Initializes a new instance of the ServiceSpecification class.
* @constructor
* Resource metrics service provided by Microsoft.Insights resource provider.
*
* @member {array} [metricSpecifications]
* @member {array} [logSpecifications]
*/
export interface ServiceSpecification {
metricSpecifications?: MetricSpecification[];
logSpecifications?: LogSpecification[];
}
/**
* @class
* Initializes a new instance of the CsmOperationDescriptionProperties class.
* @constructor
* Properties available for a Microsoft.Web resource provider operation.
*
* @member {object} [serviceSpecification]
* @member {array} [serviceSpecification.metricSpecifications]
* @member {array} [serviceSpecification.logSpecifications]
*/
export interface CsmOperationDescriptionProperties {
serviceSpecification?: ServiceSpecification;
}
/**
* @class
* Initializes a new instance of the CsmOperationDisplay class.
* @constructor
* Meta data about operation used for display in portal.
*
* @member {string} [provider]
* @member {string} [resource]
* @member {string} [operation]
* @member {string} [description]
*/
export interface CsmOperationDisplay {
provider?: string;
resource?: string;
operation?: string;
description?: string;
}
/**
* @class
* Initializes a new instance of the CsmOperationDescription class.
* @constructor
* Description of an operation available for Microsoft.Web resource provider.
*
* @member {string} [name]
* @member {object} [display]
* @member {string} [display.provider]
* @member {string} [display.resource]
* @member {string} [display.operation]
* @member {string} [display.description]
* @member {string} [origin]
* @member {object} [properties]
* @member {object} [properties.serviceSpecification]
* @member {array} [properties.serviceSpecification.metricSpecifications]
* @member {array} [properties.serviceSpecification.logSpecifications]
*/
export interface CsmOperationDescription {
name?: string;
display?: CsmOperationDisplay;
origin?: string;
properties?: CsmOperationDescriptionProperties;
}
/**
* @class
* Initializes a new instance of the Address class.
* @constructor
* Address information for domain registration.
*
* @member {string} address1 First line of an Address.
* @member {string} [address2] The second line of the Address. Optional.
* @member {string} city The city for the address.
* @member {string} country The country for the address.
* @member {string} postalCode The postal code for the address.
* @member {string} state The state or province for the address.
*/
export interface Address {
address1: string;
address2?: string;
city: string;
country: string;
postalCode: string;
state: string;
}
/**
* @class
* Initializes a new instance of the Contact class.
* @constructor
* 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.
*
* @member {object} [addressMailing] Mailing address.
* @member {string} [addressMailing.address1] First line of an Address.
* @member {string} [addressMailing.address2] The second line of the Address.
* Optional.
* @member {string} [addressMailing.city] The city for the address.
* @member {string} [addressMailing.country] The country for the address.
* @member {string} [addressMailing.postalCode] The postal code for the
* address.
* @member {string} [addressMailing.state] The state or province for the
* address.
* @member {string} email Email address.
* @member {string} [fax] Fax number.
* @member {string} [jobTitle] Job title.
* @member {string} nameFirst First name.
* @member {string} nameLast Last name.
* @member {string} [nameMiddle] Middle name.
* @member {string} [organization] Organization contact belongs to.
* @member {string} phone Phone number.
*/
export interface Contact {
addressMailing?: Address;
email: string;
fax?: string;
jobTitle?: string;
nameFirst: string;
nameLast: string;
nameMiddle?: string;
organization?: string;
phone: string;
}
/**
* @class
* Initializes a new instance of the HostName class.
* @constructor
* Details of a hostname derived from a domain.
*
* @member {string} [name] Name of the hostname.
* @member {array} [siteNames] 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.
* @member {string} [azureResourceName] 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.
* @member {string} [azureResourceType] Type of the Azure resource the hostname
* is assigned to. Possible values include: 'Website', 'TrafficManager'
* @member {string} [customHostNameDnsRecordType] Type of the DNS record.
* Possible values include: 'CName', 'A'
* @member {string} [hostNameType] Type of the hostname. Possible values
* include: 'Verified', 'Managed'
*/
export interface HostName {
name?: string;
siteNames?: string[];
azureResourceName?: string;
azureResourceType?: string;
customHostNameDnsRecordType?: string;
hostNameType?: string;
}
/**
* @class
* Initializes a new instance of the DomainPurchaseConsent class.
* @constructor
* Domain purchase consent object, representing acceptance of applicable legal
* agreements.
*
* @member {array} [agreementKeys] List of applicable legal agreement keys.
* This list can be retrieved using ListLegalAgreements API under
* TopLevelDomain resource.
* @member {string} [agreedBy] Client IP address.
* @member {date} [agreedAt] Timestamp when the agreements were accepted.
*/
export interface DomainPurchaseConsent {
agreementKeys?: string[];
agreedBy?: string;
agreedAt?: Date;
}
/**
* @class
* Initializes a new instance of the Domain class.
* @constructor
* Information about a domain.
*
* @member {object} contactAdmin Administrative contact.
* @member {object} [contactAdmin.addressMailing] Mailing address.
* @member {string} [contactAdmin.addressMailing.address1] First line of an
* Address.
* @member {string} [contactAdmin.addressMailing.address2] The second line of
* the Address. Optional.
* @member {string} [contactAdmin.addressMailing.city] The city for the
* address.
* @member {string} [contactAdmin.addressMailing.country] The country for the
* address.
* @member {string} [contactAdmin.addressMailing.postalCode] The postal code
* for the address.
* @member {string} [contactAdmin.addressMailing.state] The state or province
* for the address.
* @member {string} [contactAdmin.email] Email address.
* @member {string} [contactAdmin.fax] Fax number.
* @member {string} [contactAdmin.jobTitle] Job title.
* @member {string} [contactAdmin.nameFirst] First name.
* @member {string} [contactAdmin.nameLast] Last name.
* @member {string} [contactAdmin.nameMiddle] Middle name.
* @member {string} [contactAdmin.organization] Organization contact belongs
* to.
* @member {string} [contactAdmin.phone] Phone number.
* @member {object} contactBilling Billing contact.
* @member {object} [contactBilling.addressMailing] Mailing address.
* @member {string} [contactBilling.addressMailing.address1] First line of an
* Address.
* @member {string} [contactBilling.addressMailing.address2] The second line of
* the Address. Optional.
* @member {string} [contactBilling.addressMailing.city] The city for the
* address.
* @member {string} [contactBilling.addressMailing.country] The country for the
* address.
* @member {string} [contactBilling.addressMailing.postalCode] The postal code
* for the address.
* @member {string} [contactBilling.addressMailing.state] The state or province
* for the address.
* @member {string} [contactBilling.email] Email address.
* @member {string} [contactBilling.fax] Fax number.
* @member {string} [contactBilling.jobTitle] Job title.
* @member {string} [contactBilling.nameFirst] First name.
* @member {string} [contactBilling.nameLast] Last name.
* @member {string} [contactBilling.nameMiddle] Middle name.
* @member {string} [contactBilling.organization] Organization contact belongs
* to.
* @member {string} [contactBilling.phone] Phone number.
* @member {object} contactRegistrant Registrant contact.
* @member {object} [contactRegistrant.addressMailing] Mailing address.
* @member {string} [contactRegistrant.addressMailing.address1] First line of
* an Address.
* @member {string} [contactRegistrant.addressMailing.address2] The second line
* of the Address. Optional.
* @member {string} [contactRegistrant.addressMailing.city] The city for the
* address.
* @member {string} [contactRegistrant.addressMailing.country] The country for
* the address.
* @member {string} [contactRegistrant.addressMailing.postalCode] The postal
* code for the address.
* @member {string} [contactRegistrant.addressMailing.state] The state or
* province for the address.
* @member {string} [contactRegistrant.email] Email address.
* @member {string} [contactRegistrant.fax] Fax number.
* @member {string} [contactRegistrant.jobTitle] Job title.
* @member {string} [contactRegistrant.nameFirst] First name.
* @member {string} [contactRegistrant.nameLast] Last name.
* @member {string} [contactRegistrant.nameMiddle] Middle name.
* @member {string} [contactRegistrant.organization] Organization contact
* belongs to.
* @member {string} [contactRegistrant.phone] Phone number.
* @member {object} contactTech Technical contact.
* @member {object} [contactTech.addressMailing] Mailing address.
* @member {string} [contactTech.addressMailing.address1] First line of an
* Address.
* @member {string} [contactTech.addressMailing.address2] The second line of
* the Address. Optional.
* @member {string} [contactTech.addressMailing.city] The city for the address.
* @member {string} [contactTech.addressMailing.country] The country for the
* address.
* @member {string} [contactTech.addressMailing.postalCode] The postal code for
* the address.
* @member {string} [contactTech.addressMailing.state] The state or province
* for the address.
* @member {string} [contactTech.email] Email address.
* @member {string} [contactTech.fax] Fax number.
* @member {string} [contactTech.jobTitle] Job title.
* @member {string} [contactTech.nameFirst] First name.
* @member {string} [contactTech.nameLast] Last name.
* @member {string} [contactTech.nameMiddle] Middle name.
* @member {string} [contactTech.organization] Organization contact belongs to.
* @member {string} [contactTech.phone] Phone number.
* @member {string} [registrationStatus] Domain registration status. Possible
* values include: 'Active', 'Awaiting', 'Cancelled', 'Confiscated',
* 'Disabled', 'Excluded', 'Expired', 'Failed', 'Held', 'Locked', 'Parked',
* 'Pending', 'Reserved', 'Reverted', 'Suspended', 'Transferred', 'Unknown',
* 'Unlocked', 'Unparked', 'Updated', 'JsonConverterFailed'
* @member {string} [provisioningState] Domain provisioning state. Possible
* values include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'
* @member {array} [nameServers] Name servers.
* @member {boolean} [privacy] true if domain privacy is enabled
* for this domain; otherwise, false.
* @member {date} [createdTime] Domain creation timestamp.
* @member {date} [expirationTime] Domain expiration timestamp.
* @member {date} [lastRenewedTime] Timestamp when the domain was renewed last
* time.
* @member {boolean} [autoRenew] true if the domain should be
* automatically renewed; otherwise, false. Default value: true .
* @member {boolean} [readyForDnsRecordManagement] true if Azure
* can assign this domain to App Service apps; otherwise, false.
* This value will be true if domain registration status is active
* and
* it is hosted on name servers Azure has programmatic access to.
* @member {array} [managedHostNames] All hostnames derived from the domain and
* assigned to Azure resources.
* @member {object} consent Legal agreement consent.
* @member {array} [consent.agreementKeys] List of applicable legal agreement
* keys. This list can be retrieved using ListLegalAgreements API under
* TopLevelDomain resource.
* @member {string} [consent.agreedBy] Client IP address.
* @member {date} [consent.agreedAt] Timestamp when the agreements were
* accepted.
* @member {array} [domainNotRenewableReasons] Reasons why domain is not
* renewable.
* @member {string} [dnsType] Current DNS type. Possible values include:
* 'AzureDns', 'DefaultDomainRegistrarDns'
* @member {string} [dnsZoneId] Azure DNS Zone to use
* @member {string} [targetDnsType] Target DNS type (would be used for
* migration). Possible values include: 'AzureDns', 'DefaultDomainRegistrarDns'
* @member {string} [authCode]
*/
export interface Domain extends Resource {
contactAdmin: Contact;
contactBilling: Contact;
contactRegistrant: Contact;
contactTech: Contact;
readonly registrationStatus?: string;
readonly provisioningState?: string;
readonly nameServers?: string[];
privacy?: boolean;
readonly createdTime?: Date;
readonly expirationTime?: Date;
readonly lastRenewedTime?: Date;
autoRenew?: boolean;
readonly readyForDnsRecordManagement?: boolean;
readonly managedHostNames?: HostName[];
consent: DomainPurchaseConsent;
readonly domainNotRenewableReasons?: string[];
dnsType?: string;
dnsZoneId?: string;
targetDnsType?: string;
authCode?: string;
}
/**
* @class
* Initializes a new instance of the DomainAvailablilityCheckResult class.
* @constructor
* Domain availablility check result.
*
* @member {string} [name] Name of the domain.
* @member {boolean} [available] true if domain can be purchased
* using CreateDomain API; otherwise, false.
* @member {string} [domainType] Valid values are Regular domain: Azure will
* charge the full price of domain registration, SoftDeleted: Purchasing this
* domain will simply restore it and this operation will not cost anything.
* Possible values include: 'Regular', 'SoftDeleted'
*/
export interface DomainAvailablilityCheckResult {
name?: string;
available?: boolean;
domainType?: string;
}
/**
* @class
* Initializes a new instance of the DomainControlCenterSsoRequest class.
* @constructor
* Single sign-on request information for domain management.
*
* @member {string} [url] URL where the single sign-on request is to be made.
* @member {string} [postParameterKey] Post parameter key.
* @member {string} [postParameterValue] Post parameter value. Client should
* use 'application/x-www-form-urlencoded' encoding for this value.
*/
export interface DomainControlCenterSsoRequest {
readonly url?: string;
readonly postParameterKey?: string;
readonly postParameterValue?: string;
}
/**
* @class
* Initializes a new instance of the DomainOwnershipIdentifier class.
* @constructor
* Domain ownership Identifier.
*
* @member {string} [ownershipId] Ownership Id.
*/
export interface DomainOwnershipIdentifier extends ProxyOnlyResource {
ownershipId?: string;
}
/**
* @class
* Initializes a new instance of the DomainPatchResource class.
* @constructor
* ARM resource for a domain.
*
* @member {object} contactAdmin Administrative contact.
* @member {object} [contactAdmin.addressMailing] Mailing address.
* @member {string} [contactAdmin.addressMailing.address1] First line of an
* Address.
* @member {string} [contactAdmin.addressMailing.address2] The second line of
* the Address. Optional.
* @member {string} [contactAdmin.addressMailing.city] The city for the
* address.
* @member {string} [contactAdmin.addressMailing.country] The country for the
* address.
* @member {string} [contactAdmin.addressMailing.postalCode] The postal code
* for the address.
* @member {string} [contactAdmin.addressMailing.state] The state or province
* for the address.
* @member {string} [contactAdmin.email] Email address.
* @member {string} [contactAdmin.fax] Fax number.
* @member {string} [contactAdmin.jobTitle] Job title.
* @member {string} [contactAdmin.nameFirst] First name.
* @member {string} [contactAdmin.nameLast] Last name.
* @member {string} [contactAdmin.nameMiddle] Middle name.
* @member {string} [contactAdmin.organization] Organization contact belongs
* to.
* @member {string} [contactAdmin.phone] Phone number.
* @member {object} contactBilling Billing contact.
* @member {object} [contactBilling.addressMailing] Mailing address.
* @member {string} [contactBilling.addressMailing.address1] First line of an
* Address.
* @member {string} [contactBilling.addressMailing.address2] The second line of
* the Address. Optional.
* @member {string} [contactBilling.addressMailing.city] The city for the
* address.
* @member {string} [contactBilling.addressMailing.country] The country for the
* address.
* @member {string} [contactBilling.addressMailing.postalCode] The postal code
* for the address.
* @member {string} [contactBilling.addressMailing.state] The state or province
* for the address.
* @member {string} [contactBilling.email] Email address.
* @member {string} [contactBilling.fax] Fax number.
* @member {string} [contactBilling.jobTitle] Job title.
* @member {string} [contactBilling.nameFirst] First name.
* @member {string} [contactBilling.nameLast] Last name.
* @member {string} [contactBilling.nameMiddle] Middle name.
* @member {string} [contactBilling.organization] Organization contact belongs
* to.
* @member {string} [contactBilling.phone] Phone number.
* @member {object} contactRegistrant Registrant contact.
* @member {object} [contactRegistrant.addressMailing] Mailing address.
* @member {string} [contactRegistrant.addressMailing.address1] First line of
* an Address.
* @member {string} [contactRegistrant.addressMailing.address2] The second line
* of the Address. Optional.
* @member {string} [contactRegistrant.addressMailing.city] The city for the
* address.
* @member {string} [contactRegistrant.addressMailing.country] The country for
* the address.
* @member {string} [contactRegistrant.addressMailing.postalCode] The postal
* code for the address.
* @member {string} [contactRegistrant.addressMailing.state] The state or
* province for the address.
* @member {string} [contactRegistrant.email] Email address.
* @member {string} [contactRegistrant.fax] Fax number.
* @member {string} [contactRegistrant.jobTitle] Job title.
* @member {string} [contactRegistrant.nameFirst] First name.
* @member {string} [contactRegistrant.nameLast] Last name.
* @member {string} [contactRegistrant.nameMiddle] Middle name.
* @member {string} [contactRegistrant.organization] Organization contact
* belongs to.
* @member {string} [contactRegistrant.phone] Phone number.
* @member {object} contactTech Technical contact.
* @member {object} [contactTech.addressMailing] Mailing address.
* @member {string} [contactTech.addressMailing.address1] First line of an
* Address.
* @member {string} [contactTech.addressMailing.address2] The second line of
* the Address. Optional.
* @member {string} [contactTech.addressMailing.city] The city for the address.
* @member {string} [contactTech.addressMailing.country] The country for the
* address.
* @member {string} [contactTech.addressMailing.postalCode] The postal code for
* the address.
* @member {string} [contactTech.addressMailing.state] The state or province
* for the address.
* @member {string} [contactTech.email] Email address.
* @member {string} [contactTech.fax] Fax number.
* @member {string} [contactTech.jobTitle] Job title.
* @member {string} [contactTech.nameFirst] First name.
* @member {string} [contactTech.nameLast] Last name.
* @member {string} [contactTech.nameMiddle] Middle name.
* @member {string} [contactTech.organization] Organization contact belongs to.
* @member {string} [contactTech.phone] Phone number.
* @member {string} [registrationStatus] Domain registration status. Possible
* values include: 'Active', 'Awaiting', 'Cancelled', 'Confiscated',
* 'Disabled', 'Excluded', 'Expired', 'Failed', 'Held', 'Locked', 'Parked',
* 'Pending', 'Reserved', 'Reverted', 'Suspended', 'Transferred', 'Unknown',
* 'Unlocked', 'Unparked', 'Updated', 'JsonConverterFailed'
* @member {string} [provisioningState] Domain provisioning state. Possible
* values include: 'Succeeded', 'Failed', 'Canceled', 'InProgress', 'Deleting'
* @member {array} [nameServers] Name servers.
* @member {boolean} [privacy] true if domain privacy is enabled
* for this domain; otherwise, false.
* @member {date} [createdTime] Domain creation timestamp.
* @member {date} [expirationTime] Domain expiration timestamp.
* @member {date} [lastRenewedTime] Timestamp when the domain was renewed last
* time.
* @member {boolean} [autoRenew] true if the domain should be
* automatically renewed; otherwise, false. Default value: true .
* @member {boolean} [readyForDnsRecordManagement] true if Azure
* can assign this domain to App Service apps; otherwise, false.
* This value will be true if domain registration status is active
* and
* it is hosted on name servers Azure has programmatic access to.
* @member {array} [managedHostNames] All hostnames derived from the domain and
* assigned to Azure resources.
* @member {object} consent Legal agreement consent.
* @member {array} [consent.agreementKeys] List of applicable legal agreement
* keys. This list can be retrieved using ListLegalAgreements API under
* TopLevelDomain resource.
* @member {string} [consent.agreedBy] Client IP address.
* @member {date} [consent.agreedAt] Timestamp when the agreements were
* accepted.
* @member {array} [domainNotRenewableReasons] Reasons why domain is not
* renewable.
* @member {string} [dnsType] Current DNS type. Possible values include:
* 'AzureDns', 'DefaultDomainRegistrarDns'
* @member {string} [dnsZoneId] Azure DNS Zone to use
* @member {string} [targetDnsType] Target DNS type (would be used for
* migration). Possible values include: 'AzureDns', 'DefaultDomainRegistrarDns'
* @member {string} [authCode]
*/
export interface DomainPatchResource extends ProxyOnlyResource {
contactAdmin: Contact;
contactBilling: Contact;
contactRegistrant: Contact;
contactTech: Contact;
readonly registrationStatus?: string;
readonly provisioningState?: string;
readonly nameServers?: string[];
privacy?: boolean;
readonly createdTime?: Date;
readonly expirationTime?: Date;
readonly lastRenewedTime?: Date;
autoRenew?: boolean;
readonly readyForDnsRecordManagement?: boolean;
readonly managedHostNames?: HostName[];
consent: DomainPurchaseConsent;
readonly domainNotRenewableReasons?: string[];
dnsType?: string;
dnsZoneId?: string;
targetDnsType?: string;
authCode?: string;
}
/**
* @class
* Initializes a new instance of the DomainRecommendationSearchParameters class.
* @constructor
* Domain recommendation search parameters.
*
* @member {string} [keywords] Keywords to be used for generating domain
* recommendations.
* @member {number} [maxDomainRecommendations] Maximum number of
* recommendations.
*/
export interface DomainRecommendationSearchParameters {
keywords?: string;
maxDomainRecommendations?: number;
}
/**
* @class
* Initializes a new instance of the TldLegalAgreement class.
* @constructor
* Legal agreement for a top level domain.
*
* @member {string} agreementKey Unique identifier for the agreement.
* @member {string} title Agreement title.
* @member {string} content Agreement details.
* @member {string} [url] URL where a copy of the agreement details is hosted.
*/
export interface TldLegalAgreement {
agreementKey: string;
title: string;
content: string;
url?: string;
}
/**
* @class
* Initializes a new instance of the TopLevelDomain class.
* @constructor
* A top level domain object.
*
* @member {boolean} [privacy] If true, then the top level domain
* supports domain privacy; otherwise, false.
*/
export interface TopLevelDomain extends ProxyOnlyResource {
privacy?: boolean;
}
/**
* @class
* Initializes a new instance of the TopLevelDomainAgreementOption class.
* @constructor
* Options for retrieving the list of top level domain legal agreements.
*
* @member {boolean} [includePrivacy] If true, then the list of
* agreements will include agreements for domain privacy as well; otherwise,
* false.
* @member {boolean} [forTransfer] If true, then the list of
* agreements will include agreements for domain transfer as well; otherwise,
* false.
*/
export interface TopLevelDomainAgreementOption {
includePrivacy?: boolean;
forTransfer?: boolean;
}
/**
* @class
* Initializes a new instance of the Certificate class.
* @constructor
* SSL certificate for an app.
*
* @member {string} [friendlyName] Friendly name of the certificate.
* @member {string} [subjectName] Subject name of the certificate.
* @member {array} [hostNames] Host names the certificate applies to.
* @member {buffer} [pfxBlob] Pfx blob.
* @member {string} [siteName] App name.
* @member {string} [selfLink] Self link.
* @member {string} [issuer] Certificate issuer.
* @member {date} [issueDate] Certificate issue Date.
* @member {date} [expirationDate] Certificate expriration date.
* @member {string} password Certificate password.
* @member {string} [thumbprint] Certificate thumbprint.
* @member {boolean} [valid] Is the certificate valid?.
* @member {buffer} [cerBlob] Raw bytes of .cer file
* @member {string} [publicKeyHash] Public key hash.
* @member {object} [hostingEnvironmentProfile] Specification for the App
* Service Environment to use for the certificate.
* @member {string} [hostingEnvironmentProfile.id] Resource ID of the App
* Service Environment.
* @member {string} [hostingEnvironmentProfile.name] Name of the App Service
* Environment.
* @member {string} [hostingEnvironmentProfile.type] Resource type of the App
* Service Environment.
* @member {string} [keyVaultId] Key Vault Csm resource Id.
* @member {string} [keyVaultSecretName] Key Vault secret name.
* @member {string} [keyVaultSecretStatus] Status of the Key Vault secret.
* Possible values include: 'Initialized', 'WaitingOnCertificateOrder',
* 'Succeeded', 'CertificateOrderFailed', 'OperationNotPermittedOnKeyVault',
* 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist',
* 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey',
* 'Unknown'
* @member {string} [serverFarmId] Resource ID of the associated App Service
* plan, formatted as:
* "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
*/
export interface Certificate extends Resource {
readonly friendlyName?: string;
readonly subjectName?: string;
hostNames?: string[];
pfxBlob?: Buffer;
readonly siteName?: string;
readonly selfLink?: string;
readonly issuer?: string;
readonly issueDate?: Date;
readonly expirationDate?: Date;
password: string;
readonly thumbprint?: string;
readonly valid?: boolean;
readonly cerBlob?: Buffer;
readonly publicKeyHash?: string;
readonly hostingEnvironmentProfile?: HostingEnvironmentProfile;
keyVaultId?: string;
keyVaultSecretName?: string;
readonly keyVaultSecretStatus?: string;
serverFarmId?: string;
}
/**
* @class
* Initializes a new instance of the CertificatePatchResource class.
* @constructor
* ARM resource for a certificate.
*
* @member {string} [friendlyName] Friendly name of the certificate.
* @member {string} [subjectName] Subject name of the certificate.
* @member {array} [hostNames] Host names the certificate applies to.
* @member {buffer} [pfxBlob] Pfx blob.
* @member {string} [siteName] App name.
* @member {string} [selfLink] Self link.
* @member {string} [issuer] Certificate issuer.
* @member {date} [issueDate] Certificate issue Date.
* @member {date} [expirationDate] Certificate expriration date.
* @member {string} password Certificate password.
* @member {string} [thumbprint] Certificate thumbprint.
* @member {boolean} [valid] Is the certificate valid?.
* @member {buffer} [cerBlob] Raw bytes of .cer file
* @member {string} [publicKeyHash] Public key hash.
* @member {object} [hostingEnvironmentProfile] Specification for the App
* Service Environment to use for the certificate.
* @member {string} [hostingEnvironmentProfile.id] Resource ID of the App
* Service Environment.
* @member {string} [hostingEnvironmentProfile.name] Name of the App Service
* Environment.
* @member {string} [hostingEnvironmentProfile.type] Resource type of the App
* Service Environment.
* @member {string} [keyVaultId] Key Vault Csm resource Id.
* @member {string} [keyVaultSecretName] Key Vault secret name.
* @member {string} [keyVaultSecretStatus] Status of the Key Vault secret.
* Possible values include: 'Initialized', 'WaitingOnCertificateOrder',
* 'Succeeded', 'CertificateOrderFailed', 'OperationNotPermittedOnKeyVault',
* 'AzureServiceUnauthorizedToAccessKeyVault', 'KeyVaultDoesNotExist',
* 'KeyVaultSecretDoesNotExist', 'UnknownError', 'ExternalPrivateKey',
* 'Unknown'
* @member {string} [serverFarmId] Resource ID of the associated App Service
* plan, formatted as:
* "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
*/
export interface CertificatePatchResource extends ProxyOnlyResource {
readonly friendlyName?: string;
readonly subjectName?: string;
hostNames?: string[];
pfxBlob?: Buffer;
readonly siteName?: string;
readonly selfLink?: string;
readonly issuer?: string;
readonly issueDate?: Date;
readonly expirationDate?: Date;
password: string;
readonly thumbprint?: string;
readonly valid?: boolean;
readonly cerBlob?: Buffer;
readonly publicKeyHash?: string;
readonly hostingEnvironmentProfile?: HostingEnvironmentProfile;
keyVaultId?: string;
keyVaultSecretName?: string;
readonly keyVaultSecretStatus?: string;
serverFarmId?: string;
}
/**
* @class
* Initializes a new instance of the VirtualNetworkProfile class.
* @constructor
* Specification for using a Virtual Network.
*
* @member {string} [id] Resource id of the Virtual Network.
* @member {string} [name] Name of the Virtual Network (read-only).
* @member {string} [type] Resource type of the Virtual Network (read-only).
* @member {string} [subnet] Subnet within the Virtual Network.
*/
export interface VirtualNetworkProfile {
id?: string;
readonly name?: string;
readonly type?: string;
subnet?: string;
}
/**
* @class
* Initializes a new instance of the WorkerPool class.
* @constructor
* Worker pool of an App Service Environment.
*
* @member {number} [workerSizeId] Worker size ID for referencing this worker
* pool.
* @member {string} [computeMode] Shared or dedicated app hosting. Possible
* values include: 'Shared', 'Dedicated', 'Dynamic'
* @member {string} [workerSize] VM size of the worker pool instances.
* @member {number} [workerCount] Number of instances in the worker pool.
* @member {array} [instanceNames] Names of all instances in the worker pool
* (read only).
*/
export interface WorkerPool {
workerSizeId?: number;
computeMode?: string;
workerSize?: string;
workerCount?: number;
readonly instanceNames?: string[];
}
/**
* @class
* Initializes a new instance of the VirtualIPMapping class.
* @constructor
* Virtual IP mapping.
*
* @member {string} [virtualIP] Virtual IP address.
* @member {number} [internalHttpPort] Internal HTTP port.
* @member {number} [internalHttpsPort] Internal HTTPS port.
* @member {boolean} [inUse] Is virtual IP mapping in use.
*/
export interface VirtualIPMapping {
virtualIP?: string;
internalHttpPort?: number;
internalHttpsPort?: number;
inUse?: boolean;
}
/**
* @class
* Initializes a new instance of the StampCapacity class.
* @constructor
* Stamp capacity information.
*
* @member {string} [name] Name of the stamp.
* @member {number} [availableCapacity] Available capacity (# of machines,
* bytes of storage etc...).
* @member {number} [totalCapacity] Total capacity (# of machines, bytes of
* storage etc...).
* @member {string} [unit] Name of the unit.
* @member {string} [computeMode] Shared/dedicated workers. Possible values
* include: 'Shared', 'Dedicated', 'Dynamic'
* @member {string} [workerSize] Size of the machines. Possible values include:
* 'Small', 'Medium', 'Large', 'D1', 'D2', 'D3', 'Default'
* @member {number} [workerSizeId] Size ID of machines:
* 0 - Small
* 1 - Medium
* 2 - Large
* @member {boolean} [excludeFromCapacityAllocation] If true, it
* includes basic apps.
* Basic apps are not used for capacity allocation.
* @member {boolean} [isApplicableForAllComputeModes] true if
* capacity is applicable for all apps; otherwise, false.
* @member {string} [siteMode] Shared or Dedicated.
* @member {boolean} [isLinux] Is this a linux stamp capacity
*/
export interface StampCapacity {
name?: string;
availableCapacity?: number;
totalCapacity?: number;
unit?: string;
computeMode?: string;
workerSize?: string;
workerSizeId?: number;
excludeFromCapacityAllocation?: boolean;
isApplicableForAllComputeModes?: boolean;
siteMode?: string;
isLinux?: boolean;
}
/**
* @class
* Initializes a new instance of the NetworkAccessControlEntry class.
* @constructor
* Network access control entry.
*
* @member {string} [action] Action object. Possible values include: 'Permit',
* 'Deny'
* @member {string} [description] Description of network access control entry.
* @member {number} [order] Order of precedence.
* @member {string} [remoteSubnet] Remote subnet.
*/
export interface NetworkAccessControlEntry {
action?: string;
description?: string;
order?: number;
remoteSubnet?: string;
}
/**
* @class
* Initializes a new instance of the AppServiceEnvironment class.
* @constructor
* Description of an App Service Environment.
*
* @member {string} name Name of the App Service Environment.
* @member {string} location Location of the App Service Environment, e.g.
* "West US".
* @member {string} [provisioningState] Provisioning state of the App Service
* Environment. Possible values include: 'Succeeded', 'Failed', 'Canceled',
* 'InProgress', 'Deleting'
* @member {string} [status] Current status of the App Service Environment.
* Possible values include: 'Preparing', 'Ready', 'Scaling', 'Deleting'
* @member {string} [vnetName] Name of the Virtual Network for the App Service
* Environment.
* @member {string} [vnetResourceGroupName] Resource group of the Virtual
* Network.
* @member {string} [vnetSubnetName] Subnet of the Virtual Network.
* @member {object} virtualNetwork Description of the Virtual Network.
* @member {string} [virtualNetwork.id] Resource id of the Virtual Network.
* @member {string} [virtualNetwork.name] Name of the Virtual Network
* (read-only).
* @member {string} [virtualNetwork.type] Resource type of the Virtual Network
* (read-only).
* @member {string} [virtualNetwork.subnet] Subnet within the Virtual Network.
* @member {string} [internalLoadBalancingMode] Specifies which endpoints to
* serve internally in the Virtual Network for the App Service Environment.
* Possible values include: 'None', 'Web', 'Publishing'
* @member {string} [multiSize] Front-end VM size, e.g. "Medium", "Large".
* @member {number} [multiRoleCount] Number of front-end instances.
* @member {array} workerPools Description of worker pools with worker size
* IDs, VM sizes, and number of workers in each pool.
* @member {number} [ipsslAddressCount] Number of IP SSL addresses reserved for
* the App Service Environment.
* @member {string} [databaseEdition] Edition of the metadata database for the
* App Service Environment, e.g. "Standard".
* @member {string} [databaseServiceObjective] Service objective of the
* metadata database for the App Service Environment, e.g. "S0".
* @member {number} [upgradeDomains] Number of upgrade domains of the App
* Service Environment.
* @member {string} [subscriptionId] Subscription of the App Service
* Environment.
* @member {string} [dnsSuffix] DNS suffix of the App Service Environment.
* @member {string} [lastAction] Last deployment action on the App Service
* Environment.
* @member {string} [lastActionResult] Result of the last deployment action on
* the App Service Environment.
* @member {string} [allowedMultiSizes] List of comma separated strings
* describing which VM sizes are allowed for front-ends.
* @member {string} [allowedWorkerSizes] List of comma separated strings
* describing which VM sizes are allowed for workers.
* @member {number} [maximumNumberOfMachines] Maximum number of VMs in the App
* Service Environment.
* @member {array} [vipMappings] Description of IP SSL mapping for the App
* Service Environment.
* @member {array} [environmentCapacities] Current total, used, and available
* worker capacities.
* @member {array} [networkAccessControlList] Access control list for
* controlling traffic to the App Service Environment.
* @member {boolean} [environmentIsHealthy] True/false indicating whether the
* App Service Environment is healthy.
* @member {string} [environmentStatus] Detailed message about with results of
* the last check of the App Service Environment.
* @member {string} [resourceGroup] Resource group of the App Service
* Environment.
* @member {number} [frontEndScaleFactor] Scale factor for front-ends.
* @member {number} [defaultFrontEndScaleFactor] Default Scale Factor for
* FrontEnds.
* @member {string} [apiManagementAccountId] API Management Account associated
* with the App Service Environment.
* @member {boolean} [suspended] true if the App Service
* Environment is suspended; otherwise, false. The environment can
* be suspended, e.g. when the management endpoint is no longer available
* (most likely because NSG blocked the incoming traffic).
* @member {boolean} [dynamicCacheEnabled] True/false indicating whether the
* App Service Environment is suspended. The environment can be suspended e.g.
* when the management endpoint is no longer available
* (most likely because NSG blocked the incoming traffic).
* @member {array} [clusterSettings] Custom settings for changing the behavior
* of the App Service Environment.
* @member {array} [userWhitelistedIpRanges] User added ip ranges to whitelist
* on ASE db
* @member {boolean} [hasLinuxWorkers] Flag that displays whether an ASE has
* linux workers or not
* @member {string} [sslCertKeyVaultId] Key Vault ID for ILB App Service
* Environment default SSL certificate
* @member {string} [sslCertKeyVaultSecretName] Key Vault Secret Name for ILB
* App Service Environment default SSL certificate
*/
export interface AppServiceEnvironment {
name: string;
location: string;
readonly provisioningState?: string;
readonly status?: string;
vnetName?: string;
vnetResourceGroupName?: string;
vnetSubnetName?: string;
virtualNetwork: VirtualNetworkProfile;
internalLoadBalancingMode?: string;
multiSize?: string;
multiRoleCount?: number;
workerPools: WorkerPool[];
ipsslAddressCount?: number;
readonly databaseEdition?: string;
readonly databaseServiceObjective?: string;
readonly upgradeDomains?: number;
readonly subscriptionId?: string;
dnsSuffix?: string;
readonly lastAction?: string;
readonly lastActionResult?: string;
readonly allowedMultiSizes?: string;
readonly allowedWorkerSizes?: string;
readonly maximumNumberOfMachines?: number;
readonly vipMappings?: VirtualIPMapping[];
readonly environmentCapacities?: StampCapacity[];
networkAccessControlList?: NetworkAccessControlEntry[];
readonly environmentIsHealthy?: boolean;
readonly environmentStatus?: string;
readonly resourceGroup?: string;
frontEndScaleFactor?: number;
readonly defaultFrontEndScaleFactor?: number;
apiManagementAccountId?: string;
suspended?: boolean;
dynamicCacheEnabled?: boolean;
clusterSettings?: NameValuePair[];
userWhitelistedIpRanges?: string[];
hasLinuxWorkers?: boolean;
sslCertKeyVaultId?: string;
sslCertKeyVaultSecretName?: string;
}
/**
* @class
* Initializes a new instance of the LocalizableString class.
* @constructor
* Localizable string object containing the name and a localized value.
*
* @member {string} [value] Non-localized name.
* @member {string} [localizedValue] Localized name.
*/
export interface LocalizableString {
value?: string;
localizedValue?: string;
}
/**
* @class
* Initializes a new instance of the CsmUsageQuota class.
* @constructor
* Usage of the quota resource.
*
* @member {string} [unit] Units of measurement for the quota resourse.
* @member {date} [nextResetTime] Next reset time for the resource counter.
* @member {number} [currentValue] The current value of the resource counter.
* @member {number} [limit] The resource limit.
* @member {object} [name] Quota name.
* @member {string} [name.value] Non-localized name.
* @member {string} [name.localizedValue] Localized name.
*/
export interface CsmUsageQuota {
unit?: string;
nextResetTime?: Date;
currentValue?: number;
limit?: number;
name?: LocalizableString;
}
/**
* @class
* Initializes a new instance of the ErrorEntity class.
* @constructor
* Body of the error response returned from the API.
*
* @member {string} [extendedCode] Type of error.
* @member {string} [messageTemplate] Message template.
* @member {array} [parameters] Parameters for the template.
* @member {array} [innerErrors] Inner errors.
* @member {string} [code] Basic error code.
* @member {string} [message] Any details of the error.
*/
export interface ErrorEntity {
extendedCode?: string;
messageTemplate?: string;
parameters?: string[];
innerErrors?: ErrorEntity[];
code?: string;
message?: string;
}
/**
* @class
* Initializes a new instance of the Operation class.
* @constructor
* An operation on a resource.
*
* @member {string} [id] Operation ID.
* @member {string} [name] Operation name.
* @member {string} [status] The current status of the operation. Possible
* values include: 'InProgress', 'Failed', 'Succeeded', 'TimedOut', 'Created'
* @member {array} [errors] Any errors associate with the operation.
* @member {date} [createdTime] Time when operation has started.
* @member {date} [modifiedTime] Time when operation has been updated.
* @member {date} [expirationTime] Time when operation will expire.
* @member {uuid} [geoMasterOperationId] Applicable only for stamp operation
* ids.
*/
export interface Operation {
id?: string;
name?: string;
status?: string;
errors?: ErrorEntity[];
createdTime?: Date;
modifiedTime?: Date;
expirationTime?: Date;
geoMasterOperationId?: string;
}
/**
* @class
* Initializes a new instance of the ResourceMetricName class.
* @constructor
* Name of a metric for any resource .
*
* @member {string} [value] metric name value.
* @member {string} [localizedValue] Localized metric name value.
*/
export interface ResourceMetricName {
readonly value?: string;
readonly localizedValue?: string;
}
/**
* @class
* Initializes a new instance of the ResourceMetricProperty class.
* @constructor
* Resource metric property.
*
* @member {string} [key] Key for resource metric property.
* @member {string} [value] Value of pair.
*/
export interface ResourceMetricProperty {
key?: string;
value?: string;
}
/**
* @class
* Initializes a new instance of the ResourceMetricValue class.
* @constructor
* Value of resource metric.
*
* @member {string} [timestamp] Value timestamp.
* @member {number} [average] Value average.
* @member {number} [minimum] Value minimum.
* @member {number} [maximum] Value maximum.
* @member {number} [total] Value total.
* @member {number} [count] Value count.
* @member {array} [properties] Resource metric properties collection.
*/
export interface ResourceMetricValue {
readonly timestamp?: string;
readonly average?: number;
readonly minimum?: number;
readonly maximum?: number;
readonly total?: number;
readonly count?: number;
readonly properties?: ResourceMetricProperty[];
}
/**
* @class
* Initializes a new instance of the ResourceMetric class.
* @constructor
* Object representing a metric for any resource .
*
* @member {object} [name] Name of metric.
* @member {string} [name.value] metric name value.
* @member {string} [name.localizedValue] Localized metric name value.
* @member {string} [unit] Metric unit.
* @member {string} [timeGrain] Metric granularity. E.g PT1H, PT5M, P1D
* @member {date} [startTime] Metric start time.
* @member {date} [endTime] Metric end time.
* @member {string} [resourceId] Metric resource Id.
* @member {string} [id] Resource Id.
* @member {array} [metricValues] Metric values.
* @member {array} [properties] Resource metric properties collection.
*/
export interface ResourceMetric {
readonly name?: ResourceMetricName;
readonly unit?: string;
readonly timeGrain?: string;
readonly startTime?: Date;
readonly endTime?: Date;
readonly resourceId?: string;
readonly id?: string;
readonly metricValues?: ResourceMetricValue[];
readonly properties?: ResourceMetricProperty[];
}
/**
* @class
* Initializes a new instance of the Solution class.
* @constructor
* Class Representing Solution for problems detected.
*
* @member {number} [id] Solution Id.
* @member {string} [displayName] Display Name of the solution
* @member {number} [order] Order of the solution.
* @member {string} [description] Description of the solution
* @member {string} [type] Type of Solution. Possible values include:
* 'QuickSolution', 'DeepInvestigation', 'BestPractices'
* @member {array} [data] Solution Data.
* @member {array} [metadata] Solution Metadata.
*/
export interface Solution {
id?: number;
displayName?: string;
order?: number;
description?: string;
type?: string;
data?: NameValuePair[][];
metadata?: NameValuePair[][];
}
/**
* @class
* Initializes a new instance of the DetectorAbnormalTimePeriod class.
* @constructor
* Class representing Abnormal Time Period detected.
*
* @member {date} [startTime] Start time of the corelated event
* @member {date} [endTime] End time of the corelated event
* @member {string} [message] Message describing the event
* @member {string} [source] Represents the name of the Detector
* @member {number} [priority] Represents the rank of the Detector
* @member {array} [metaData] Downtime metadata
* @member {string} [type] Represents the type of the Detector. Possible values
* include: 'ServiceIncident', 'AppDeployment', 'AppCrash',
* 'RuntimeIssueDetected', 'AseDeployment', 'UserIssue', 'PlatformIssue',
* 'Other'
* @member {array} [solutions] List of proposed solutions
*/
export interface DetectorAbnormalTimePeriod {
startTime?: Date;
endTime?: Date;
message?: string;
source?: string;
priority?: number;
metaData?: NameValuePair[][];
type?: string;
solutions?: Solution[];
}
/**
* @class
* Initializes a new instance of the AbnormalTimePeriod class.
* @constructor
* Class representing Abnormal Time Period identified in diagnosis
*
* @member {date} [startTime] Start time of the downtime
* @member {date} [endTime] End time of the downtime
* @member {array} [events] List of Possible Cause of downtime
* @member {array} [solutions] List of proposed solutions
*/
export interface AbnormalTimePeriod {
startTime?: Date;
endTime?: Date;
events?: DetectorAbnormalTimePeriod[];
solutions?: Solution[];
}
/**
* @class
* Initializes a new instance of the DetectorDefinition class.
* @constructor
* Class representing detector definition
*
* @member {string} [displayName] Display name of the detector
* @member {string} [description] Description of the detector
* @member {number} [rank] Detector Rank
* @member {boolean} [isEnabled] Flag representing whether detector is enabled
* or not.
*/
export interface DetectorDefinition extends ProxyOnlyResource {
readonly displayName?: string;
readonly description?: string;
readonly rank?: number;
readonly isEnabled?: boolean;
}
/**
* @class
* Initializes a new instance of the DiagnosticMetricSample class.
* @constructor
* Class representing Diagnostic Metric
*
* @member {date} [timestamp] Time at which metric is measured
* @member {string} [roleInstance] Role Instance. Null if this counter is not
* per instance
* This is returned and should be whichever instance name we desire to be
* returned
* i.e. CPU and Memory return RDWORKERNAME (LargeDed..._IN_0)
* where RDWORKERNAME is Machine name below and RoleInstance name in
* parenthesis
* @member {number} [total] Total value of the metric. If multiple measurements
* are made this will have sum of all.
* @member {number} [maximum] Maximum of the metric sampled during the time
* period
* @member {number} [minimum] Minimum of the metric sampled during the time
* period
* @member {boolean} [isAggregated] Whether the values are aggregates across
* all workers or not
*/
export interface DiagnosticMetricSample {
timestamp?: Date;
roleInstance?: string;
total?: number;
maximum?: number;
minimum?: number;
isAggregated?: boolean;
}
/**
* @class
* Initializes a new instance of the DiagnosticMetricSet class.
* @constructor
* Class representing Diagnostic Metric information
*
* @member {string} [name] Name of the metric
* @member {string} [unit] Metric's unit
* @member {date} [startTime] Start time of the period
* @member {date} [endTime] End time of the period
* @member {string} [timeGrain] Presented time grain. Supported grains at the
* moment are PT1M, PT1H, P1D
* @member {array} [values] Collection of metric values for the selected period
* based on the
* {Microsoft.Web.Hosting.Administration.DiagnosticMetricSet.TimeGrain}
*/
export interface DiagnosticMetricSet {
name?: string;
unit?: string;
startTime?: Date;
endTime?: Date;
timeGrain?: string;
values?: DiagnosticMetricSample[];
}
/**
* @class
* Initializes a new instance of the DataSource class.
* @constructor
* Class representing data source used by the detectors
*
* @member {array} [instructions] Instrunctions if any for the data source
* @member {array} [dataSourceUri] Datasource Uri Links
*/
export interface DataSource {
instructions?: string[];
dataSourceUri?: NameValuePair[];
}
/**
* @class
* Initializes a new instance of the ResponseMetaData class.
* @constructor
* @member {object} [dataSource] Source of the Data
* @member {array} [dataSource.instructions] Instrunctions if any for the data
* source
* @member {array} [dataSource.dataSourceUri] Datasource Uri Links
*/
export interface ResponseMetaData {
dataSource?: DataSource;
}
/**
* @class
* Initializes a new instance of the AnalysisData class.
* @constructor
* Class Representing Detector Evidence used for analysis
*
* @member {string} [source] Name of the Detector
* @member {object} [detectorDefinition] Detector Definition
* @member {string} [detectorDefinition.displayName] Display name of the
* detector
* @member {string} [detectorDefinition.description] Description of the
* detector
* @member {number} [detectorDefinition.rank] Detector Rank
* @member {boolean} [detectorDefinition.isEnabled] Flag representing whether
* detector is enabled or not.
* @member {array} [metrics] Source Metrics
* @member {array} [data] Additional Source Data
* @member {object} [detectorMetaData] Detector Meta Data
* @member {object} [detectorMetaData.dataSource] Source of the Data
* @member {array} [detectorMetaData.dataSource.instructions] Instrunctions if
* any for the data source
* @member {array} [detectorMetaData.dataSource.dataSourceUri] Datasource Uri
* Links
*/
export interface AnalysisData {
source?: string;
detectorDefinition?: DetectorDefinition;
metrics?: DiagnosticMetricSet[];
data?: NameValuePair[][];
detectorMetaData?: ResponseMetaData;
}
/**
* @class
* Initializes a new instance of the AnalysisDefinition class.
* @constructor
* Definition of Analysis
*
* @member {string} [description] Description of the Analysis
*/
export interface AnalysisDefinition extends ProxyOnlyResource {
readonly description?: string;
}
/**
* @class
* Initializes a new instance of the DataTableResponseColumn class.
* @constructor
* Column definition
*
* @member {string} [columnName] Name of the column
* @member {string} [dataType] Data type which looks like 'String' or 'Int32'.
* @member {string} [columnType] Column Type
*/
export interface DataTableResponseColumn {
columnName?: string;
dataType?: string;
columnType?: string;
}
/**
* @class
* Initializes a new instance of the DataTableResponseObject class.
* @constructor
* Data Table which defines columns and raw row values
*
* @member {string} [tableName] Name of the table
* @member {array} [columns] List of columns with data types
* @member {array} [rows] Raw row values
*/
export interface DataTableResponseObject {
tableName?: string;
columns?: DataTableResponseColumn[];
rows?: string[][];
}
/**
* @class
* Initializes a new instance of the DetectorInfo class.
* @constructor
* Definition of Detector
*
* @member {string} [description] Short description of the detector and its
* purpose
* @member {string} [category] Support Category
* @member {string} [subCategory] Support Sub Category
* @member {string} [supportTopicId] Support Topic Id
*/
export interface DetectorInfo {
readonly description?: string;
readonly category?: string;
readonly subCategory?: string;
readonly supportTopicId?: string;
}
/**
* @class
* Initializes a new instance of the Rendering class.
* @constructor
* Instructions for rendering the data
*
* @member {string} [type] Rendering Type. Possible values include: 'NoGraph',
* 'Table', 'TimeSeries', 'TimeSeriesPerInstance'
* @member {string} [title] Title of data
* @member {string} [description] Description of the data that will help it be
* interpreted
*/
export interface Rendering {
type?: string;
title?: string;
description?: string;
}
/**
* @class
* Initializes a new instance of the DiagnosticData class.
* @constructor
* Set of data with rendering instructions
*
* @member {object} [table] Data in table form
* @member {string} [table.tableName] Name of the table
* @member {array} [table.columns] List of columns with data types
* @member {array} [table.rows] Raw row values
* @member {object} [renderingProperties] Properties that describe how the
* table should be rendered
* @member {string} [renderingProperties.type] Rendering Type. Possible values
* include: 'NoGraph', 'Table', 'TimeSeries', 'TimeSeriesPerInstance'
* @member {string} [renderingProperties.title] Title of data
* @member {string} [renderingProperties.description] Description of the data
* that will help it be interpreted
*/
export interface DiagnosticData {
table?: DataTableResponseObject;
renderingProperties?: Rendering;
}
/**
* @class
* Initializes a new instance of the DetectorResponse class.
* @constructor
* Class representing Response from Detector
*
* @member {object} [metadata] metadata for the detector
* @member {string} [metadata.description] Short description of the detector
* and its purpose
* @member {string} [metadata.category] Support Category
* @member {string} [metadata.subCategory] Support Sub Category
* @member {string} [metadata.supportTopicId] Support Topic Id
* @member {array} [dataset] Data Set
*/
export interface DetectorResponse extends ProxyOnlyResource {
metadata?: DetectorInfo;
dataset?: DiagnosticData[];
}
/**
* @class
* Initializes a new instance of the DiagnosticAnalysis class.
* @constructor
* Class representing a diagnostic analysis done on an application
*
* @member {date} [startTime] Start time of the period
* @member {date} [endTime] End time of the period
* @member {array} [abnormalTimePeriods] List of time periods.
* @member {array} [payload] Data by each detector
* @member {array} [nonCorrelatedDetectors] Data by each detector for detectors
* that did not corelate
*/
export interface DiagnosticAnalysis extends ProxyOnlyResource {
startTime?: Date;
endTime?: Date;
abnormalTimePeriods?: AbnormalTimePeriod[];
payload?: AnalysisData[];
nonCorrelatedDetectors?: DetectorDefinition[];
}
/**
* @class
* Initializes a new instance of the DiagnosticCategory class.
* @constructor
* Class representing detector definition
*
* @member {string} [description] Description of the diagnostic category
*/
export interface DiagnosticCategory extends ProxyOnlyResource {
readonly description?: string;
}
/**
* @class
* Initializes a new instance of the DiagnosticDetectorResponse class.
* @constructor
* Class representing Reponse from Diagnostic Detectors
*
* @member {date} [startTime] Start time of the period
* @member {date} [endTime] End time of the period
* @member {boolean} [issueDetected] Flag representing Issue was detected.
* @member {object} [detectorDefinition] Detector's definition
* @member {string} [detectorDefinition.displayName] Display name of the
* detector
* @member {string} [detectorDefinition.description] Description of the
* detector
* @member {number} [detectorDefinition.rank] Detector Rank
* @member {boolean} [detectorDefinition.isEnabled] Flag representing whether
* detector is enabled or not.
* @member {array} [metrics] Metrics provided by the detector
* @member {array} [abnormalTimePeriods] List of Correlated events found by the
* detector
* @member {array} [data] Additional Data that detector wants to send.
* @member {object} [responseMetaData] Meta Data
* @member {object} [responseMetaData.dataSource] Source of the Data
* @member {array} [responseMetaData.dataSource.instructions] Instrunctions if
* any for the data source
* @member {array} [responseMetaData.dataSource.dataSourceUri] Datasource Uri
* Links
*/
export interface DiagnosticDetectorResponse extends ProxyOnlyResource {
startTime?: Date;
endTime?: Date;
issueDetected?: boolean;
detectorDefinition?: DetectorDefinition;
metrics?: DiagnosticMetricSet[];
abnormalTimePeriods?: DetectorAbnormalTimePeriod[];
data?: NameValuePair[][];
responseMetaData?: ResponseMetaData;
}
/**
* @class
* Initializes a new instance of the StackMinorVersion class.
* @constructor
* Application stack minor version.
*
* @member {string} [displayVersion] Application stack minor version (display
* only).
* @member {string} [runtimeVersion] Application stack minor version (runtime
* only).
* @member {boolean} [isDefault] true if this is the default minor
* version; otherwise, false.
*/
export interface StackMinorVersion {
displayVersion?: string;
runtimeVersion?: string;
isDefault?: boolean;
}
/**
* @class
* Initializes a new instance of the StackMajorVersion class.
* @constructor
* Application stack major version.
*
* @member {string} [displayVersion] Application stack major version (display
* only).
* @member {string} [runtimeVersion] Application stack major version (runtime
* only).
* @member {boolean} [isDefault] true if this is the default major
* version; otherwise, false.
* @member {array} [minorVersions] Minor versions associated with the major
* version.
*/
export interface StackMajorVersion {
displayVersion?: string;
runtimeVersion?: string;
isDefault?: boolean;
minorVersions?: StackMinorVersion[];
}
/**
* @class
* Initializes a new instance of the ApplicationStack class.
* @constructor
* Application stack.
*
* @member {string} [name] Application stack name.
* @member {string} [display] Application stack display name.
* @member {string} [dependency] Application stack dependency.
* @member {array} [majorVersions] List of major versions available.
* @member {array} [frameworks] List of frameworks associated with application
* stack.
*/
export interface ApplicationStack {
name?: string;
display?: string;
dependency?: string;
majorVersions?: StackMajorVersion[];
frameworks?: ApplicationStack[];
}
/**
* @class
* Initializes a new instance of the Recommendation class.
* @constructor
* Represents a recommendation result generated by the recommendation engine.
*
* @member {date} [creationTime] Timestamp when this instance was created.
* @member {uuid} [recommendationId] A GUID value that each recommendation
* object is associated with.
* @member {string} [resourceId] Full ARM resource ID string that this
* recommendation object is associated with.
* @member {string} [resourceScope] Name of a resource type this recommendation
* applies, e.g. Subscription, ServerFarm, Site. Possible values include:
* 'ServerFarm', 'Subscription', 'WebSite'
* @member {string} [ruleName] Unique name of the rule.
* @member {string} [displayName] UI friendly name of the rule (may not be
* unique).
* @member {string} [message] Recommendation text.
* @member {string} [level] Level indicating how critical this recommendation
* can impact. Possible values include: 'Critical', 'Warning', 'Information',
* 'NonUrgentSuggestion'
* @member {string} [channels] List of channels that this recommendation can
* apply. Possible values include: 'Notification', 'Api', 'Email', 'Webhook',
* 'All'
* @member {array} [categoryTags] The list of category tags that this
* recommendation belongs to.
* @member {string} [actionName] Name of action recommended by this object.
* @member {number} [enabled] True if this recommendation is still valid (i.e.
* "actionable"). False if it is invalid.
* @member {array} [states] The list of states of this recommendation. If it's
* null then it shoud be considered "Active".
* @member {date} [startTime] The beginning time in UTC of a range that the
* recommendation refers to.
* @member {date} [endTime] The end time in UTC of a range that the
* recommendation refers to.
* @member {date} [nextNotificationTime] When to notify this recommendation
* next in UTC. Null means that this will never be notified anymore.
* @member {date} [notificationExpirationTime] Date and time in UTC when this
* notification expires.
* @member {date} [notifiedTime] Last timestamp in UTC this instance was
* actually notified. Null means that this recommendation hasn't been notified
* yet.
* @member {number} [score] A metric value measured by the rule.
* @member {boolean} [isDynamic] True if this is associated with a dynamically
* added rule
* @member {string} [extensionName] Extension name of the portal if exists.
* @member {string} [bladeName] Deep link to a blade on the portal.
* @member {string} [forwardLink] Forward link to an external document
* associated with the rule.
*/
export interface Recommendation extends ProxyOnlyResource {
creationTime?: Date;
recommendationId?: string;
resourceId?: string;
resourceScope?: string;
ruleName?: string;
displayName?: string;
message?: string;
level?: string;
channels?: string;
readonly categoryTags?: string[];
actionName?: string;
enabled?: number;
states?: string[];
startTime?: Date;
endTime?: Date;
nextNotificationTime?: Date;
notificationExpirationTime?: Date;
notifiedTime?: Date;
score?: number;
isDynamic?: boolean;
extensionName?: string;
bladeName?: string;
forwardLink?: string;
}
/**
* @class
* Initializes a new instance of the RecommendationRule class.
* @constructor
* Represents a recommendation rule that the recommendation engine can perform.
*
* @member {string} [recommendationName] Unique name of the rule.
* @member {string} [displayName] UI friendly name of the rule.
* @member {string} [message] Localized name of the rule (Good for UI).
* @member {uuid} [recommendationId] Recommendation ID of an associated
* recommendation object tied to the rule, if exists.
* If such an object doesn't exist, it is set to null.
* @member {string} [description] Localized detailed description of the rule.
* @member {string} [actionName] Name of action that is recommended by this
* rule in string.
* @member {string} [level] Level of impact indicating how critical this rule
* is. Possible values include: 'Critical', 'Warning', 'Information',
* 'NonUrgentSuggestion'
* @member {string} [channels] List of available channels that this rule
* applies. Possible values include: 'Notification', 'Api', 'Email', 'Webhook',
* 'All'
* @member {array} [categoryTags] The list of category tags that this
* recommendation rule belongs to.
* @member {boolean} [isDynamic] True if this is associated with a dynamically
* added rule
* @member {string} [extensionName] Extension name of the portal if exists.
* Applicable to dynamic rule only.
* @member {string} [bladeName] Deep link to a blade on the portal. Applicable
* to dynamic rule only.
* @member {string} [forwardLink] Forward link to an external document
* associated with the rule. Applicable to dynamic rule only.
*/
export interface RecommendationRule extends ProxyOnlyResource {
recommendationName?: string;
displayName?: string;
message?: string;
recommendationId?: string;
description?: string;
actionName?: string;
level?: string;
channels?: string;
readonly categoryTags?: string[];
isDynamic?: boolean;
extensionName?: string;
bladeName?: string;
forwardLink?: string;
}
/**
* @class
* Initializes a new instance of the BillingMeter class.
* @constructor
* App Service billing entity that contains information about meter which the
* Azure billing system utilizes to charge users for services.
*
* @member {string} [meterId] Meter GUID onboarded in Commerce
* @member {string} [billingLocation] Azure Location of billable resource
* @member {string} [shortName] Short Name from App Service Azure pricing Page
* @member {string} [friendlyName] Friendly name of the meter
* @member {string} [resourceType] App Service ResourceType meter used for
* @member {string} [osType] App Service OS type meter used for
*/
export interface BillingMeter extends ProxyOnlyResource {
meterId?: string;
billingLocation?: string;
shortName?: string;
friendlyName?: string;
resourceType?: string;
osType?: string;
}
/**
* @class
* Initializes a new instance of the CsmMoveResourceEnvelope class.
* @constructor
* Object with a list of the resources that need to be moved and the resource
* group they should be moved to.
*
* @member {string} [targetResourceGroup]
* @member {array} [resources]
*/
export interface CsmMoveResourceEnvelope {
targetResourceGroup?: string;
resources?: string[];
}
/**
* @class
* Initializes a new instance of the GeoRegion class.
* @constructor
* Geographical region.
*
* @member {string} [description] Region description.
* @member {string} [displayName] Display name for region.
*/
export interface GeoRegion extends ProxyOnlyResource {
readonly description?: string;
readonly displayName?: string;
}
/**
* @class
* Initializes a new instance of the HostingEnvironmentDeploymentInfo class.
* @constructor
* Information needed to create resources on an App Service Environment.
*
* @member {string} [name] Name of the App Service Environment.
* @member {string} [location] Location of the App Service Environment.
*/
export interface HostingEnvironmentDeploymentInfo {
name?: string;
location?: string;
}
/**
* @class
* Initializes a new instance of the DeploymentLocations class.
* @constructor
* List of available locations (regions or App Service Environments) for
* deployment of App Service resources.
*
* @member {array} [locations] Available regions.
* @member {array} [hostingEnvironments] Available App Service Environments
* with full descriptions of the environments.
* @member {array} [hostingEnvironmentDeploymentInfos] Available App Service
* Environments with basic information.
*/
export interface DeploymentLocations {
locations?: GeoRegion[];
hostingEnvironments?: AppServiceEnvironment[];
hostingEnvironmentDeploymentInfos?: HostingEnvironmentDeploymentInfo[];
}
/**
* @class
* Initializes a new instance of the GlobalCsmSkuDescription class.
* @constructor
* A Global SKU Description.
*
* @member {string} [name] Name of the resource SKU.
* @member {string} [tier] Service Tier of the resource SKU.
* @member {string} [size] Size specifier of the resource SKU.
* @member {string} [family] Family code of the resource SKU.
* @member {object} [capacity] Min, max, and default scale values of the SKU.
* @member {number} [capacity.minimum] Minimum number of workers for this App
* Service plan SKU.
* @member {number} [capacity.maximum] Maximum number of workers for this App
* Service plan SKU.
* @member {number} [capacity.default] Default number of workers for this App
* Service plan SKU.
* @member {string} [capacity.scaleType] Available scale configurations for an
* App Service plan.
* @member {array} [locations] Locations of the SKU.
* @member {array} [capabilities] Capabilities of the SKU, e.g., is traffic
* manager enabled?
*/
export interface GlobalCsmSkuDescription {
name?: string;
tier?: string;
size?: string;
family?: string;
capacity?: SkuCapacity;
locations?: string[];
capabilities?: Capability[];
}
/**
* @class
* Initializes a new instance of the PremierAddOnOffer class.
* @constructor
* Premier add-on offer.
*
* @member {string} [sku] Premier add on SKU.
* @member {string} [product] Premier add on offer Product.
* @member {string} [vendor] Premier add on offer Vendor.
* @member {boolean} [promoCodeRequired] true if promotion code is
* required; otherwise, false.
* @member {number} [quota] Premier add on offer Quota.
* @member {string} [webHostingPlanRestrictions] App Service plans this offer
* is restricted to. Possible values include: 'None', 'Free', 'Shared',
* 'Basic', 'Standard', 'Premium'
* @member {string} [privacyPolicyUrl] Privacy policy URL.
* @member {string} [legalTermsUrl] Legal terms URL.
* @member {string} [marketplacePublisher] Marketplace publisher.
* @member {string} [marketplaceOffer] Marketplace offer.
*/
export interface PremierAddOnOffer extends ProxyOnlyResource {
sku?: string;
product?: string;
vendor?: string;
promoCodeRequired?: boolean;
quota?: number;
webHostingPlanRestrictions?: string;
privacyPolicyUrl?: string;
legalTermsUrl?: string;
marketplacePublisher?: string;
marketplaceOffer?: string;
}
/**
* @class
* Initializes a new instance of the ResourceNameAvailability class.
* @constructor
* Information regarding availbility of a resource name.
*
* @member {boolean} [nameAvailable] true indicates name is valid
* and available. false indicates the name is invalid,
* unavailable, or both.
* @member {string} [reason] Invalid indicates the name provided
* does not match Azure App Service naming requirements.
* AlreadyExists indicates that the name is already in use and is
* therefore unavailable. Possible values include: 'Invalid', 'AlreadyExists'
* @member {string} [message] If reason == invalid, provide the user with the
* reason why the given name is invalid, and provide the resource naming
* requirements so that the user can select a valid name. If reason ==
* AlreadyExists, explain that resource name is already in use, and direct them
* to select a different name.
*/
export interface ResourceNameAvailability {
nameAvailable?: boolean;
reason?: string;
message?: string;
}
/**
* @class
* Initializes a new instance of the ResourceNameAvailabilityRequest class.
* @constructor
* Resource name availability request content.
*
* @member {string} name Resource name to verify.
* @member {string} type Resource type used for verification. Possible values
* include: 'Site', 'Slot', 'HostingEnvironment', 'PublishingUser',
* 'Microsoft.Web/sites', 'Microsoft.Web/sites/slots',
* 'Microsoft.Web/hostingEnvironments', 'Microsoft.Web/publishingUsers'
* @member {boolean} [isFqdn] Is fully qualified domain name.
*/
export interface ResourceNameAvailabilityRequest {
name: string;
type: string;
isFqdn?: boolean;
}
/**
* @class
* Initializes a new instance of the SkuInfos class.
* @constructor
* Collection of SKU information.
*
* @member {string} [resourceType] Resource type that this SKU applies to.
* @member {array} [skus] List of SKUs the subscription is able to use.
*/
export interface SkuInfos {
resourceType?: string;
skus?: GlobalCsmSkuDescription[];
}
/**
* @class
* Initializes a new instance of the SourceControl class.
* @constructor
* The source control OAuth token.
*
* @member {string} [token] OAuth access token.
* @member {string} [tokenSecret] OAuth access token secret.
* @member {string} [refreshToken] OAuth refresh token.
* @member {date} [expirationTime] OAuth token expiration.
*/
export interface SourceControl extends ProxyOnlyResource {
token?: string;
tokenSecret?: string;
refreshToken?: string;
expirationTime?: Date;
}
/**
* @class
* Initializes a new instance of the ValidateRequest class.
* @constructor
* Resource validation request content.
*
* @member {string} name Resource name to verify.
* @member {string} type Resource type used for verification. Possible values
* include: 'ServerFarm', 'Site'
* @member {string} location Expected location of the resource.
* @member {string} [serverFarmId] ARM resource ID of an App Service plan that
* would host the app.
* @member {string} [skuName] Name of the target SKU for the App Service plan.
* @member {boolean} [needLinuxWorkers] true if App Service plan
* is for Linux workers; otherwise, false.
* @member {boolean} [isSpot] true if App Service plan is for Spot
* instances; otherwise, false.
* @member {number} [capacity] Target capacity of the App Service plan (number
* of VM's).
* @member {string} [hostingEnvironment] Name of App Service Environment where
* app or App Service plan should be created.
* @member {boolean} [isXenon] true if App Service plan is running
* as a windows container
*/
export interface ValidateRequest {
name: string;
type: string;
location: string;
serverFarmId?: string;
skuName?: string;
needLinuxWorkers?: boolean;
isSpot?: boolean;
capacity?: number;
hostingEnvironment?: string;
isXenon?: boolean;
}
/**
* @class
* Initializes a new instance of the ValidateResponseError class.
* @constructor
* Error details for when validation fails.
*
* @member {string} [code] Validation error code.
* @member {string} [message] Validation error message.
*/
export interface ValidateResponseError {
code?: string;
message?: string;
}
/**
* @class
* Initializes a new instance of the ValidateResponse class.
* @constructor
* Describes the result of resource validation.
*
* @member {string} [status] Result of validation.
* @member {object} [error] Error details for the case when validation fails.
* @member {string} [error.code] Validation error code.
* @member {string} [error.message] Validation error message.
*/
export interface ValidateResponse {
status?: string;
error?: ValidateResponseError;
}
/**
* @class
* Initializes a new instance of the VnetParameters class.
* @constructor
* The required set of inputs to validate a VNET
*
* @member {string} [vnetResourceGroup] The Resource Group of the VNET to be
* validated
* @member {string} [vnetName] The name of the VNET to be validated
* @member {string} [vnetSubnetName] The subnet name to be validated
*/
export interface VnetParameters extends ProxyOnlyResource {
vnetResourceGroup?: string;
vnetName?: string;
vnetSubnetName?: string;
}
/**
* @class
* Initializes a new instance of the VnetValidationTestFailure class.
* @constructor
* A class that describes a test that failed during NSG and UDR validation.
*
* @member {string} [testName] The name of the test that failed.
* @member {string} [details] The details of what caused the failure, e.g. the
* blocking rule name, etc.
*/
export interface VnetValidationTestFailure extends ProxyOnlyResource {
testName?: string;
details?: string;
}
/**
* @class
* Initializes a new instance of the VnetValidationFailureDetails class.
* @constructor
* A class that describes the reason for a validation failure.
*
* @member {boolean} [failed] A flag describing whether or not validation
* failed.
* @member {array} [failedTests] A list of tests that failed in the validation.
*/
export interface VnetValidationFailureDetails extends ProxyOnlyResource {
failed?: boolean;
failedTests?: VnetValidationTestFailure[];
}
/**
* @class
* Initializes a new instance of the FileSystemApplicationLogsConfig class.
* @constructor
* Application logs to file system configuration.
*
* @member {string} [level] Log level. Possible values include: 'Off',
* 'Verbose', 'Information', 'Warning', 'Error'. Default value: 'Off' .
*/
export interface FileSystemApplicationLogsConfig {
level?: string;
}
/**
* @class
* Initializes a new instance of the AzureTableStorageApplicationLogsConfig class.
* @constructor
* Application logs to Azure table storage configuration.
*
* @member {string} [level] Log level. Possible values include: 'Off',
* 'Verbose', 'Information', 'Warning', 'Error'
* @member {string} sasUrl SAS URL to an Azure table with add/query/delete
* permissions.
*/
export interface AzureTableStorageApplicationLogsConfig {
level?: string;
sasUrl: string;
}
/**
* @class
* Initializes a new instance of the AzureBlobStorageApplicationLogsConfig class.
* @constructor
* Application logs azure blob storage configuration.
*
* @member {string} [level] Log level. Possible values include: 'Off',
* 'Verbose', 'Information', 'Warning', 'Error'
* @member {string} [sasUrl] SAS url to a azure blob container with
* read/write/list/delete permissions.
* @member {number} [retentionInDays] Retention in days.
* Remove blobs older than X days.
* 0 or lower means no retention.
*/
export interface AzureBlobStorageApplicationLogsConfig {
level?: string;
sasUrl?: string;
retentionInDays?: number;
}
/**
* @class
* Initializes a new instance of the ApplicationLogsConfig class.
* @constructor
* Application logs configuration.
*
* @member {object} [fileSystem] Application logs to file system configuration.
* @member {string} [fileSystem.level] Log level. Possible values include:
* 'Off', 'Verbose', 'Information', 'Warning', 'Error'
* @member {object} [azureTableStorage] Application logs to azure table storage
* configuration.
* @member {string} [azureTableStorage.level] Log level. Possible values
* include: 'Off', 'Verbose', 'Information', 'Warning', 'Error'
* @member {string} [azureTableStorage.sasUrl] SAS URL to an Azure table with
* add/query/delete permissions.
* @member {object} [azureBlobStorage] Application logs to blob storage
* configuration.
* @member {string} [azureBlobStorage.level] Log level. Possible values
* include: 'Off', 'Verbose', 'Information', 'Warning', 'Error'
* @member {string} [azureBlobStorage.sasUrl] SAS url to a azure blob container
* with read/write/list/delete permissions.
* @member {number} [azureBlobStorage.retentionInDays] Retention in days.
* Remove blobs older than X days.
* 0 or lower means no retention.
*/
export interface ApplicationLogsConfig {
fileSystem?: FileSystemApplicationLogsConfig;
azureTableStorage?: AzureTableStorageApplicationLogsConfig;
azureBlobStorage?: AzureBlobStorageApplicationLogsConfig;
}
/**
* @class
* Initializes a new instance of the AzureBlobStorageHttpLogsConfig class.
* @constructor
* Http logs to azure blob storage configuration.
*
* @member {string} [sasUrl] SAS url to a azure blob container with
* read/write/list/delete permissions.
* @member {number} [retentionInDays] Retention in days.
* Remove blobs older than X days.
* 0 or lower means no retention.
* @member {boolean} [enabled] True if configuration is enabled, false if it is
* disabled and null if configuration is not set.
*/
export interface AzureBlobStorageHttpLogsConfig {
sasUrl?: string;
retentionInDays?: number;
enabled?: boolean;
}
/**
* @class
* Initializes a new instance of the AzureStoragePropertyDictionaryResource class.
* @constructor
* AzureStorageInfo dictionary resource.
*
* @member {object} [properties] Azure storage accounts.
*/
export interface AzureStoragePropertyDictionaryResource extends ProxyOnlyResource {
properties?: { [propertyName: string]: AzureStorageInfoValue };
}
/**
* @class
* Initializes a new instance of the DatabaseBackupSetting class.
* @constructor
* Database backup settings.
*
* @member {string} databaseType Database type (e.g. SqlAzure / MySql).
* Possible values include: 'SqlAzure', 'MySql', 'LocalMySql', 'PostgreSql'
* @member {string} [name]
* @member {string} [connectionStringName] Contains a connection string name
* that is linked to the SiteConfig.ConnectionStrings.
* This is used during restore with overwrite connection strings options.
* @member {string} [connectionString] Contains a connection string to a
* database which is being backed up or restored. If the restore should happen
* to a new database, the database name inside is the new one.
*/
export interface DatabaseBackupSetting {
databaseType: string;
name?: string;
connectionStringName?: string;
connectionString?: string;
}
/**
* @class
* Initializes a new instance of the BackupItem class.
* @constructor
* Backup description.
*
* @member {number} [backupId] Id of the backup.
* @member {string} [storageAccountUrl] SAS URL for the storage account
* container which contains this backup.
* @member {string} [blobName] Name of the blob which contains data for this
* backup.
* @member {string} [backupItemName] Name of this backup.
* @member {string} [status] Backup status. Possible values include:
* 'InProgress', 'Failed', 'Succeeded', 'TimedOut', 'Created', 'Skipped',
* 'PartiallySucceeded', 'DeleteInProgress', 'DeleteFailed', 'Deleted'
* @member {number} [sizeInBytes] Size of the backup in bytes.
* @member {date} [created] Timestamp of the backup creation.
* @member {string} [log] Details regarding this backup. Might contain an error
* message.
* @member {array} [databases] List of databases included in the backup.
* @member {boolean} [scheduled] True if this backup has been created due to a
* schedule being triggered.
* @member {date} [lastRestoreTimeStamp] Timestamp of a last restore operation
* which used this backup.
* @member {date} [finishedTimeStamp] Timestamp when this backup finished.
* @member {string} [correlationId] Unique correlation identifier. Please use
* this along with the timestamp while communicating with Azure support.
* @member {number} [websiteSizeInBytes] Size of the original web app which has
* been backed up.
*/
export interface BackupItem extends ProxyOnlyResource {
readonly backupId?: number;
readonly storageAccountUrl?: string;
readonly blobName?: string;
readonly backupItemName?: string;
readonly status?: string;
readonly sizeInBytes?: number;
readonly created?: Date;
readonly log?: string;
readonly databases?: DatabaseBackupSetting[];
readonly scheduled?: boolean;
readonly lastRestoreTimeStamp?: Date;
readonly finishedTimeStamp?: Date;
readonly correlationId?: string;
readonly websiteSizeInBytes?: number;
}
/**
* @class
* Initializes a new instance of the BackupSchedule class.
* @constructor
* Description of a backup schedule. Describes how often should be the backup
* performed and what should be the retention policy.
*
* @member {number} frequencyInterval How often the backup should be executed
* (e.g. for weekly backup, this should be set to 7 and FrequencyUnit should be
* set to Day). Default value: 7 .
* @member {string} frequencyUnit The unit of time for how often the backup
* should be executed (e.g. for weekly backup, this should be set to Day and
* FrequencyInterval should be set to 7). Possible values include: 'Day',
* 'Hour'. Default value: 'Day' .
* @member {boolean} keepAtLeastOneBackup True if the retention policy should
* always keep at least one backup in the storage account, regardless how old
* it is; false otherwise. Default value: true .
* @member {number} retentionPeriodInDays After how many days backups should be
* deleted. Default value: 30 .
* @member {date} [startTime] When the schedule should start working.
* @member {date} [lastExecutionTime] Last time when this schedule was
* triggered.
*/
export interface BackupSchedule {
frequencyInterval: number;
frequencyUnit: string;
keepAtLeastOneBackup: boolean;
retentionPeriodInDays: number;
startTime?: Date;
readonly lastExecutionTime?: Date;
}
/**
* @class
* Initializes a new instance of the BackupRequest class.
* @constructor
* Description of a backup which will be performed.
*
* @member {string} [backupName] Name of the backup.
* @member {boolean} [enabled] True if the backup schedule is enabled (must be
* included in that case), false if the backup schedule should be disabled.
* @member {string} storageAccountUrl SAS URL to the container.
* @member {object} [backupSchedule] Schedule for the backup if it is executed
* periodically.
* @member {number} [backupSchedule.frequencyInterval] How often the backup
* should be executed (e.g. for weekly backup, this should be set to 7 and
* FrequencyUnit should be set to Day)
* @member {string} [backupSchedule.frequencyUnit] The unit of time for how
* often the backup should be executed (e.g. for weekly backup, this should be
* set to Day and FrequencyInterval should be set to 7). Possible values
* include: 'Day', 'Hour'
* @member {boolean} [backupSchedule.keepAtLeastOneBackup] True if the
* retention policy should always keep at least one backup in the storage
* account, regardless how old it is; false otherwise.
* @member {number} [backupSchedule.retentionPeriodInDays] After how many days
* backups should be deleted.
* @member {date} [backupSchedule.startTime] When the schedule should start
* working.
* @member {date} [backupSchedule.lastExecutionTime] Last time when this
* schedule was triggered.
* @member {array} [databases] Databases included in the backup.
*/
export interface BackupRequest extends ProxyOnlyResource {
backupName?: string;
enabled?: boolean;
storageAccountUrl: string;
backupSchedule?: BackupSchedule;
databases?: DatabaseBackupSetting[];
}
/**
* @class
* Initializes a new instance of the ConnStringValueTypePair class.
* @constructor
* Database connection string value to type pair.
*
* @member {string} value Value of pair.
* @member {string} type Type of database. Possible values include: 'MySql',
* 'SQLServer', 'SQLAzure', 'Custom', 'NotificationHub', 'ServiceBus',
* 'EventHub', 'ApiHub', 'DocDb', 'RedisCache', 'PostgreSQL'
*/
export interface ConnStringValueTypePair {
value: string;
type: string;
}
/**
* @class
* Initializes a new instance of the ConnectionStringDictionary class.
* @constructor
* String dictionary resource.
*
* @member {object} [properties] Connection strings.
*/
export interface ConnectionStringDictionary extends ProxyOnlyResource {
properties?: { [propertyName: string]: ConnStringValueTypePair };
}
/**
* @class
* Initializes a new instance of the ContinuousWebJob class.
* @constructor
* Continuous Web Job Information.
*
* @member {string} [status] Job status. Possible values include:
* 'Initializing', 'Starting', 'Running', 'PendingRestart', 'Stopped'
* @member {string} [detailedStatus] Detailed status.
* @member {string} [logUrl] Log URL.
* @member {string} [runCommand] Run command.
* @member {string} [url] Job URL.
* @member {string} [extraInfoUrl] Extra Info URL.
* @member {string} [webJobType] Job type. Possible values include:
* 'Continuous', 'Triggered'
* @member {string} [error] Error information.
* @member {boolean} [usingSdk] Using SDK?
* @member {object} [settings] Job settings.
*/
export interface ContinuousWebJob extends ProxyOnlyResource {
status?: string;
detailedStatus?: string;
logUrl?: string;
runCommand?: string;
url?: string;
extraInfoUrl?: string;
webJobType?: string;
error?: string;
usingSdk?: boolean;
settings?: { [propertyName: string]: any };
}
/**
* @class
* Initializes a new instance of the CsmPublishingProfileOptions class.
* @constructor
* Publishing options for requested profile.
*
* @member {string} [format] Name of the format. Valid values are:
* FileZilla3
* WebDeploy -- default
* Ftp. Possible values include: 'FileZilla3', 'WebDeploy', 'Ftp'
* @member {boolean} [includeDisasterRecoveryEndpoints] Include the
* DisasterRecover endpoint if true
*/
export interface CsmPublishingProfileOptions {
format?: string;
includeDisasterRecoveryEndpoints?: boolean;
}
/**
* @class
* Initializes a new instance of the CsmSlotEntity class.
* @constructor
* Deployment slot parameters.
*
* @member {string} targetSlot Destination deployment slot during swap
* operation.
* @member {boolean} preserveVnet true to preserve Virtual Network
* to the slot during swap; otherwise, false.
*/
export interface CsmSlotEntity {
targetSlot: string;
preserveVnet: boolean;
}
/**
* @class
* Initializes a new instance of the CustomHostnameAnalysisResult class.
* @constructor
* Custom domain analysis.
*
* @member {boolean} [isHostnameAlreadyVerified] true if hostname
* is already verified; otherwise, false.
* @member {string} [customDomainVerificationTest] DNS verification test
* result. Possible values include: 'Passed', 'Failed', 'Skipped'
* @member {object} [customDomainVerificationFailureInfo] Raw failure
* information if DNS verification fails.
* @member {string} [customDomainVerificationFailureInfo.extendedCode] Type of
* error.
* @member {string} [customDomainVerificationFailureInfo.messageTemplate]
* Message template.
* @member {array} [customDomainVerificationFailureInfo.parameters] Parameters
* for the template.
* @member {array} [customDomainVerificationFailureInfo.innerErrors] Inner
* errors.
* @member {string} [customDomainVerificationFailureInfo.code] Basic error
* code.
* @member {string} [customDomainVerificationFailureInfo.message] Any details
* of the error.
* @member {boolean} [hasConflictOnScaleUnit] true if there is a
* conflict on a scale unit; otherwise, false.
* @member {boolean} [hasConflictAcrossSubscription] true if htere
* is a conflict across subscriptions; otherwise, false.
* @member {string} [conflictingAppResourceId] Name of the conflicting app on
* scale unit if it's within the same subscription.
* @member {array} [cNameRecords] CName records controller can see for this
* hostname.
* @member {array} [txtRecords] TXT records controller can see for this
* hostname.
* @member {array} [aRecords] A records controller can see for this hostname.
* @member {array} [alternateCNameRecords] Alternate CName records controller
* can see for this hostname.
* @member {array} [alternateTxtRecords] Alternate TXT records controller can
* see for this hostname.
*/
export interface CustomHostnameAnalysisResult extends ProxyOnlyResource {
readonly isHostnameAlreadyVerified?: boolean;
readonly customDomainVerificationTest?: string;
readonly customDomainVerificationFailureInfo?: ErrorEntity;
readonly hasConflictOnScaleUnit?: boolean;
readonly hasConflictAcrossSubscription?: boolean;
readonly conflictingAppResourceId?: string;
cNameRecords?: string[];
txtRecords?: string[];
aRecords?: string[];
alternateCNameRecords?: string[];
alternateTxtRecords?: string[];
}
/**
* @class
* Initializes a new instance of the DeletedAppRestoreRequest class.
* @constructor
* Details about restoring a deleted app.
*
* @member {string} [deletedSiteId] ARM resource ID of the deleted app.
* Example:
* /subscriptions/{subId}/providers/Microsoft.Web/deletedSites/{deletedSiteId}
* @member {boolean} [recoverConfiguration] If true, deleted site
* configuration, in addition to content, will be restored.
* @member {string} [snapshotTime] Point in time to restore the deleted app
* from, formatted as a DateTime string.
* If unspecified, default value is the time that the app was deleted.
* @member {boolean} [useDRSecondary] If true, the snapshot is retrieved from
* DRSecondary endpoint.
*/
export interface DeletedAppRestoreRequest extends ProxyOnlyResource {
deletedSiteId?: string;
recoverConfiguration?: boolean;
snapshotTime?: string;
useDRSecondary?: boolean;
}
/**
* @class
* Initializes a new instance of the Deployment class.
* @constructor
* User crendentials used for publishing activity.
*
* @member {number} [status] Deployment status.
* @member {string} [message] Details about deployment status.
* @member {string} [author] Who authored the deployment.
* @member {string} [deployer] Who performed the deployment.
* @member {string} [authorEmail] Author email.
* @member {date} [startTime] Start time.
* @member {date} [endTime] End time.
* @member {boolean} [active] True if deployment is currently active, false if
* completed and null if not started.
* @member {string} [details] Details on deployment.
*/
export interface Deployment extends ProxyOnlyResource {
status?: number;
message?: string;
author?: string;
deployer?: string;
authorEmail?: string;
startTime?: Date;
endTime?: Date;
active?: boolean;
details?: string;
}
/**
* @class
* Initializes a new instance of the EnabledConfig class.
* @constructor
* Enabled configuration.
*
* @member {boolean} [enabled] True if configuration is enabled, false if it is
* disabled and null if configuration is not set.
*/
export interface EnabledConfig {
enabled?: boolean;
}
/**
* @class
* Initializes a new instance of the FileSystemHttpLogsConfig class.
* @constructor
* Http logs to file system configuration.
*
* @member {number} [retentionInMb] Maximum size in megabytes that http log
* files can use.
* When reached old log files will be removed to make space for new ones.
* Value can range between 25 and 100.
* @member {number} [retentionInDays] Retention in days.
* Remove files older than X days.
* 0 or lower means no retention.
* @member {boolean} [enabled] True if configuration is enabled, false if it is
* disabled and null if configuration is not set.
*/
export interface FileSystemHttpLogsConfig {
retentionInMb?: number;
retentionInDays?: number;
enabled?: boolean;
}
/**
* @class
* Initializes a new instance of the FunctionEnvelope class.
* @constructor
* Web Job Information.
*
* @member {string} [functionAppId] Function App ID.
* @member {string} [scriptRootPathHref] Script root path URI.
* @member {string} [scriptHref] Script URI.
* @member {string} [configHref] Config URI.
* @member {string} [secretsFileHref] Secrets file URI.
* @member {string} [href] Function URI.
* @member {object} [config] Config information.
* @member {object} [files] File list.
* @member {string} [testData] Test data used when testing via the Azure
* Portal.
*/
export interface FunctionEnvelope extends ProxyOnlyResource {
functionAppId?: string;
scriptRootPathHref?: string;
scriptHref?: string;
configHref?: string;
secretsFileHref?: string;
href?: string;
config?: any;
files?: { [propertyName: string]: string };
testData?: string;
}
/**
* @class
* Initializes a new instance of the FunctionSecrets class.
* @constructor
* Function secrets.
*
* @member {string} [key] Secret key.
* @member {string} [triggerUrl] Trigger URL.
*/
export interface FunctionSecrets extends ProxyOnlyResource {
key?: string;
triggerUrl?: string;
}
/**
* @class
* Initializes a new instance of the HostNameBinding class.
* @constructor
* A hostname binding object.
*
* @member {string} [siteName] App Service app name.
* @member {string} [domainId] Fully qualified ARM domain resource URI.
* @member {string} [azureResourceName] Azure resource name.
* @member {string} [azureResourceType] Azure resource type. Possible values
* include: 'Website', 'TrafficManager'
* @member {string} [customHostNameDnsRecordType] Custom DNS record type.
* Possible values include: 'CName', 'A'
* @member {string} [hostNameType] Hostname type. Possible values include:
* 'Verified', 'Managed'
* @member {string} [sslState] SSL type. Possible values include: 'Disabled',
* 'SniEnabled', 'IpBasedEnabled'
* @member {string} [thumbprint] SSL certificate thumbprint
* @member {string} [virtualIP] Virtual IP address assigned to the hostname if
* IP based SSL is enabled.
*/
export interface HostNameBinding extends ProxyOnlyResource {
siteName?: string;
domainId?: string;
azureResourceName?: string;
azureResourceType?: string;
customHostNameDnsRecordType?: string;
hostNameType?: string;
sslState?: string;
thumbprint?: string;
readonly virtualIP?: string;
}
/**
* @class
* Initializes a new instance of the HttpLogsConfig class.
* @constructor
* Http logs configuration.
*
* @member {object} [fileSystem] Http logs to file system configuration.
* @member {number} [fileSystem.retentionInMb] Maximum size in megabytes that
* http log files can use.
* When reached old log files will be removed to make space for new ones.
* Value can range between 25 and 100.
* @member {number} [fileSystem.retentionInDays] Retention in days.
* Remove files older than X days.
* 0 or lower means no retention.
* @member {boolean} [fileSystem.enabled] True if configuration is enabled,
* false if it is disabled and null if configuration is not set.
* @member {object} [azureBlobStorage] Http logs to azure blob storage
* configuration.
* @member {string} [azureBlobStorage.sasUrl] SAS url to a azure blob container
* with read/write/list/delete permissions.
* @member {number} [azureBlobStorage.retentionInDays] Retention in days.
* Remove blobs older than X days.
* 0 or lower means no retention.
* @member {boolean} [azureBlobStorage.enabled] True if configuration is
* enabled, false if it is disabled and null if configuration is not set.
*/
export interface HttpLogsConfig {
fileSystem?: FileSystemHttpLogsConfig;
azureBlobStorage?: AzureBlobStorageHttpLogsConfig;
}
/**
* @class
* Initializes a new instance of the MSDeploy class.
* @constructor
* MSDeploy ARM PUT information
*
* @member {string} [packageUri] Package URI
* @member {string} [connectionString] SQL Connection String
* @member {string} [dbType] Database Type
* @member {string} [setParametersXmlFileUri] URI of MSDeploy Parameters file.
* Must not be set if SetParameters is used.
* @member {object} [setParameters] MSDeploy Parameters. Must not be set if
* SetParametersXmlFileUri is used.
* @member {boolean} [skipAppData] Controls whether the MSDeploy operation
* skips the App_Data directory.
* If set to true, the existing App_Data directory on the
* destination
* will not be deleted, and any App_Data directory in the source will be
* ignored.
* Setting is false by default.
* @member {boolean} [appOffline] Sets the AppOffline rule while the MSDeploy
* operation executes.
* Setting is false by default.
*/
export interface MSDeploy extends ProxyOnlyResource {
packageUri?: string;
connectionString?: string;
dbType?: string;
setParametersXmlFileUri?: string;
setParameters?: { [propertyName: string]: string };
skipAppData?: boolean;
appOffline?: boolean;
}
/**
* @class
* Initializes a new instance of the MSDeployLogEntry class.
* @constructor
* MSDeploy log entry
*
* @member {date} [time] Timestamp of log entry
* @member {string} [type] Log entry type. Possible values include: 'Message',
* 'Warning', 'Error'
* @member {string} [message] Log entry message
*/
export interface MSDeployLogEntry {
readonly time?: Date;
readonly type?: string;
readonly message?: string;
}
/**
* @class
* Initializes a new instance of the MSDeployLog class.
* @constructor
* MSDeploy log
*
* @member {array} [entries] List of log entry messages
*/
export interface MSDeployLog extends ProxyOnlyResource {
readonly entries?: MSDeployLogEntry[];
}
/**
* @class
* Initializes a new instance of the MSDeployStatus class.
* @constructor
* MSDeploy ARM response
*
* @member {string} [deployer] Username of deployer
* @member {string} [provisioningState] Provisioning state. Possible values
* include: 'accepted', 'running', 'succeeded', 'failed', 'canceled'
* @member {date} [startTime] Start time of deploy operation
* @member {date} [endTime] End time of deploy operation
* @member {boolean} [complete] Whether the deployment operation has completed
*/
export interface MSDeployStatus extends ProxyOnlyResource {
readonly deployer?: string;
readonly provisioningState?: string;
readonly startTime?: Date;
readonly endTime?: Date;
readonly complete?: boolean;
}
/**
* @class
* Initializes a new instance of the MigrateMySqlRequest class.
* @constructor
* MySQL migration request.
*
* @member {string} connectionString Connection string to the remote MySQL
* database.
* @member {string} migrationType The type of migration operation to be done.
* Possible values include: 'LocalToRemote', 'RemoteToLocal'
*/
export interface MigrateMySqlRequest extends ProxyOnlyResource {
connectionString: string;
migrationType: string;
}
/**
* @class
* Initializes a new instance of the MigrateMySqlStatus class.
* @constructor
* MySQL migration status.
*
* @member {string} [migrationOperationStatus] Status of the migration task.
* Possible values include: 'InProgress', 'Failed', 'Succeeded', 'TimedOut',
* 'Created'
* @member {string} [operationId] Operation ID for the migration task.
* @member {boolean} [localMySqlEnabled] True if the web app has in app MySql
* enabled
*/
export interface MigrateMySqlStatus extends ProxyOnlyResource {
readonly migrationOperationStatus?: string;
readonly operationId?: string;
readonly localMySqlEnabled?: boolean;
}
/**
* @class
* Initializes a new instance of the RelayServiceConnectionEntity class.
* @constructor
* Hybrid Connection for an App Service app.
*
* @member {string} [entityName]
* @member {string} [entityConnectionString]
* @member {string} [resourceType]
* @member {string} [resourceConnectionString]
* @member {string} [hostname]
* @member {number} [port]
* @member {string} [biztalkUri]
*/
export interface RelayServiceConnectionEntity extends ProxyOnlyResource {
entityName?: string;
entityConnectionString?: string;
resourceType?: string;
resourceConnectionString?: string;
hostname?: string;
port?: number;
biztalkUri?: string;
}
/**
* @class
* Initializes a new instance of the NetworkFeatures class.
* @constructor
* Full view of network features for an app (presently VNET integration and
* Hybrid Connections).
*
* @member {string} [virtualNetworkName] The Virtual Network name.
* @member {object} [virtualNetworkConnection] The Virtual Network summary
* view.
* @member {string} [virtualNetworkConnection.vnetResourceId] The Virtual
* Network's resource ID.
* @member {string} [virtualNetworkConnection.certThumbprint] The client
* certificate thumbprint.
* @member {buffer} [virtualNetworkConnection.certBlob] A certificate file
* (.cer) blob containing the public key of the private key used to
* authenticate a
* Point-To-Site VPN connection.
* @member {array} [virtualNetworkConnection.routes] The routes that this
* Virtual Network connection uses.
* @member {boolean} [virtualNetworkConnection.resyncRequired]
* true if a resync is required; otherwise, false.
* @member {string} [virtualNetworkConnection.dnsServers] DNS servers to be
* used by this Virtual Network. This should be a comma-separated list of IP
* addresses.
* @member {array} [hybridConnections] The Hybrid Connections summary view.
* @member {array} [hybridConnectionsV2] The Hybrid Connection V2 (Service Bus)
* view.
*/
export interface NetworkFeatures extends ProxyOnlyResource {
readonly virtualNetworkName?: string;
readonly virtualNetworkConnection?: VnetInfo;
readonly hybridConnections?: RelayServiceConnectionEntity[];
readonly hybridConnectionsV2?: HybridConnection[];
}
/**
* @class
* Initializes a new instance of the NetworkTrace class.
* @constructor
* Network trace
*
* @member {string} [path] Local file path for the captured network trace file.
* @member {string} [status] Current status of the network trace operation,
* same as Operation.Status (InProgress/Succeeded/Failed).
* @member {string} [message] Detailed message of a network trace operation,
* e.g. error message in case of failure.
*/
export interface NetworkTrace {
path?: string;
status?: string;
message?: string;
}
/**
* @class
* Initializes a new instance of the PerfMonSample class.
* @constructor
* Performance monitor sample in a set.
*
* @member {date} [time] Point in time for which counter was measured.
* @member {string} [instanceName] Name of the server on which the measurement
* is made.
* @member {number} [value] Value of counter at a certain time.
*/
export interface PerfMonSample {
time?: Date;
instanceName?: string;
value?: number;
}
/**
* @class
* Initializes a new instance of the PerfMonSet class.
* @constructor
* Metric information.
*
* @member {string} [name] Unique key name of the counter.
* @member {date} [startTime] Start time of the period.
* @member {date} [endTime] End time of the period.
* @member {string} [timeGrain] Presented time grain.
* @member {array} [values] Collection of workers that are active during this
* time.
*/
export interface PerfMonSet {
name?: string;
startTime?: Date;
endTime?: Date;
timeGrain?: string;
values?: PerfMonSample[];
}
/**
* @class
* Initializes a new instance of the PerfMonResponse class.
* @constructor
* Performance monitor API response.
*
* @member {string} [code] The response code.
* @member {string} [message] The message.
* @member {object} [data] The performance monitor counters.
* @member {string} [data.name] Unique key name of the counter.
* @member {date} [data.startTime] Start time of the period.
* @member {date} [data.endTime] End time of the period.
* @member {string} [data.timeGrain] Presented time grain.
* @member {array} [data.values] Collection of workers that are active during
* this time.
*/
export interface PerfMonResponse {
code?: string;
message?: string;
data?: PerfMonSet;
}
/**
* @class
* Initializes a new instance of the PremierAddOn class.
* @constructor
* Premier add-on.
*
* @member {string} [sku] Premier add on SKU.
* @member {string} [product] Premier add on Product.
* @member {string} [vendor] Premier add on Vendor.
* @member {string} [marketplacePublisher] Premier add on Marketplace
* publisher.
* @member {string} [marketplaceOffer] Premier add on Marketplace offer.
*/
export interface PremierAddOn extends Resource {
sku?: string;
product?: string;
vendor?: string;
marketplacePublisher?: string;
marketplaceOffer?: string;
}
/**
* @class
* Initializes a new instance of the PremierAddOnPatchResource class.
* @constructor
* ARM resource for a PremierAddOn.
*
* @member {string} [sku] Premier add on SKU.
* @member {string} [product] Premier add on Product.
* @member {string} [vendor] Premier add on Vendor.
* @member {string} [marketplacePublisher] Premier add on Marketplace
* publisher.
* @member {string} [marketplaceOffer] Premier add on Marketplace offer.
*/
export interface PremierAddOnPatchResource extends ProxyOnlyResource {
sku?: string;
product?: string;
vendor?: string;
marketplacePublisher?: string;
marketplaceOffer?: string;
}
/**
* @class
* Initializes a new instance of the PrivateAccessSubnet class.
* @constructor
* Description of a Virtual Network subnet that is useable for private site
* access.
*
* @member {string} [name] The name of the subnet.
* @member {number} [key] The key (ID) of the subnet.
*/
export interface PrivateAccessSubnet {
name?: string;
key?: number;
}
/**
* @class
* Initializes a new instance of the PrivateAccessVirtualNetwork class.
* @constructor
* Description of a Virtual Network that is useable for private site access.
*
* @member {string} [name] The name of the Virtual Network.
* @member {number} [key] The key (ID) of the Virtual Network.
* @member {string} [resourceId] The ARM uri of the Virtual Network
* @member {array} [subnets] A List of subnets that access is allowed to on
* this Virtual Network. An empty array (but not null) is interpreted to mean
* that all subnets are allowed within this Virtual Network.
*/
export interface PrivateAccessVirtualNetwork {
name?: string;
key?: number;
resourceId?: string;
subnets?: PrivateAccessSubnet[];
}
/**
* @class
* Initializes a new instance of the PrivateAccess class.
* @constructor
* Description of the parameters of Private Access for a Web Site.
*
* @member {boolean} [enabled] Whether private access is enabled or not.
* @member {array} [virtualNetworks] The Virtual Networks (and subnets) allowed
* to access the site privately.
*/
export interface PrivateAccess extends ProxyOnlyResource {
enabled?: boolean;
virtualNetworks?: PrivateAccessVirtualNetwork[];
}
/**
* @class
* Initializes a new instance of the ProcessThreadInfo class.
* @constructor
* Process Thread Information.
*
* @member {number} [identifier] Site extension ID.
* @member {string} [href] HRef URI.
* @member {string} [process] Process URI.
* @member {string} [startAddress] Start address.
* @member {number} [currentPriority] Current thread priority.
* @member {string} [priorityLevel] Thread priority level.
* @member {number} [basePriority] Base priority.
* @member {date} [startTime] Start time.
* @member {string} [totalProcessorTime] Total processor time.
* @member {string} [userProcessorTime] User processor time.
* @member {string} [priviledgedProcessorTime] Priviledged processor time.
* @member {string} [state] Thread state.
* @member {string} [waitReason] Wait reason.
*/
export interface ProcessThreadInfo extends ProxyOnlyResource {
readonly identifier?: number;
href?: string;
process?: string;
startAddress?: string;
currentPriority?: number;
priorityLevel?: string;
basePriority?: number;
startTime?: Date;
totalProcessorTime?: string;
userProcessorTime?: string;
priviledgedProcessorTime?: string;
state?: string;
waitReason?: string;
}
/**
* @class
* Initializes a new instance of the ProcessModuleInfo class.
* @constructor
* Process Module Information.
*
* @member {string} [baseAddress] Base address. Used as module identifier in
* ARM resource URI.
* @member {string} [fileName] File name.
* @member {string} [href] HRef URI.
* @member {string} [filePath] File path.
* @member {number} [moduleMemorySize] Module memory size.
* @member {string} [fileVersion] File version.
* @member {string} [fileDescription] File description.
* @member {string} [product] Product name.
* @member {string} [productVersion] Product version.
* @member {boolean} [isDebug] Is debug?
* @member {string} [language] Module language (locale).
*/
export interface ProcessModuleInfo extends ProxyOnlyResource {
baseAddress?: string;
fileName?: string;
href?: string;
filePath?: string;
moduleMemorySize?: number;
fileVersion?: string;
fileDescription?: string;
product?: string;
productVersion?: string;
isDebug?: boolean;
language?: string;
}
/**
* @class
* Initializes a new instance of the ProcessInfo class.
* @constructor
* Process Information.
*
* @member {number} [identifier] ARM Identifier for deployment.
* @member {string} [deploymentName] Deployment name.
* @member {string} [href] HRef URI.
* @member {string} [minidump] Minidump URI.
* @member {boolean} [isProfileRunning] Is profile running?
* @member {boolean} [isIisProfileRunning] Is the IIS Profile running?
* @member {number} [iisProfileTimeoutInSeconds] IIS Profile timeout (seconds).
* @member {string} [parent] Parent process.
* @member {array} [children] Child process list.
* @member {array} [threads] Thread list.
* @member {array} [openFileHandles] List of open files.
* @member {array} [modules] List of modules.
* @member {string} [fileName] File name of this process.
* @member {string} [commandLine] Command line.
* @member {string} [userName] User name.
* @member {number} [handleCount] Handle count.
* @member {number} [moduleCount] Module count.
* @member {number} [threadCount] Thread count.
* @member {date} [startTime] Start time.
* @member {string} [totalCpuTime] Total CPU time.
* @member {string} [userCpuTime] User CPU time.
* @member {string} [privilegedCpuTime] Privileged CPU time.
* @member {number} [workingSet] Working set.
* @member {number} [peakWorkingSet] Peak working set.
* @member {number} [privateMemory] Private memory size.
* @member {number} [virtualMemory] Virtual memory size.
* @member {number} [peakVirtualMemory] Peak virtual memory usage.
* @member {number} [pagedSystemMemory] Paged system memory.
* @member {number} [nonPagedSystemMemory] Non-paged system memory.
* @member {number} [pagedMemory] Paged memory.
* @member {number} [peakPagedMemory] Peak paged memory.
* @member {date} [timeStamp] Time stamp.
* @member {object} [environmentVariables] List of environment variables.
* @member {boolean} [isScmSite] Is this the SCM site?
* @member {boolean} [isWebjob] Is this a Web Job?
* @member {string} [description] Description of process.
*/
export interface ProcessInfo extends ProxyOnlyResource {
readonly identifier?: number;
deploymentName?: string;
href?: string;
minidump?: string;
isProfileRunning?: boolean;
isIisProfileRunning?: boolean;
iisProfileTimeoutInSeconds?: number;
parent?: string;
children?: string[];
threads?: ProcessThreadInfo[];
openFileHandles?: string[];
modules?: ProcessModuleInfo[];
fileName?: string;
commandLine?: string;
userName?: string;
handleCount?: number;
moduleCount?: number;
threadCount?: number;
startTime?: Date;
totalCpuTime?: string;
userCpuTime?: string;
privilegedCpuTime?: string;
workingSet?: number;
peakWorkingSet?: number;
privateMemory?: number;
virtualMemory?: number;
peakVirtualMemory?: number;
pagedSystemMemory?: number;
nonPagedSystemMemory?: number;
pagedMemory?: number;
peakPagedMemory?: number;
timeStamp?: Date;
environmentVariables?: { [propertyName: string]: string };
isScmSite?: boolean;
isWebjob?: boolean;
description?: string;
}
/**
* @class
* Initializes a new instance of the PublicCertificate class.
* @constructor
* Public certificate object
*
* @member {buffer} [blob] Public Certificate byte array
* @member {string} [publicCertificateLocation] Public Certificate Location.
* Possible values include: 'CurrentUserMy', 'LocalMachineMy', 'Unknown'
* @member {string} [thumbprint] Certificate Thumbprint
*/
export interface PublicCertificate extends ProxyOnlyResource {
blob?: Buffer;
publicCertificateLocation?: string;
readonly thumbprint?: string;
}
/**
* @class
* Initializes a new instance of the RestoreRequest class.
* @constructor
* Description of a restore request.
*
* @member {string} storageAccountUrl SAS URL to the container.
* @member {string} [blobName] Name of a blob which contains the backup.
* @member {boolean} overwrite true if the restore operation can
* overwrite target app; otherwise, false. true is
* needed if trying to restore over an existing app.
* @member {string} [siteName] Name of an app.
* @member {array} [databases] Collection of databases which should be
* restored. This list has to match the list of databases included in the
* backup.
* @member {boolean} [ignoreConflictingHostNames] Changes a logic when
* restoring an app with custom domains. true to remove custom
* domains automatically. If false, custom domains are added to
* the app's object when it is being restored, but that might fail due to
* conflicts during the operation. Default value: false .
* @member {boolean} [ignoreDatabases] Ignore the databases and only restore
* the site content. Default value: false .
* @member {string} [appServicePlan] Specify app service plan that will own
* restored site.
* @member {string} [operationType] Operation type. Possible values include:
* 'Default', 'Clone', 'Relocation', 'Snapshot', 'CloudFS'. Default value:
* 'Default' .
* @member {boolean} [adjustConnectionStrings] true if
* SiteConfig.ConnectionStrings should be set in new app; otherwise,
* false.
* @member {string} [hostingEnvironment] App Service Environment name, if
* needed (only when restoring an app to an App Service Environment).
*/
export interface RestoreRequest extends ProxyOnlyResource {
storageAccountUrl: string;
blobName?: string;
overwrite: boolean;
siteName?: string;
databases?: DatabaseBackupSetting[];
ignoreConflictingHostNames?: boolean;
ignoreDatabases?: boolean;
appServicePlan?: string;
operationType?: string;
adjustConnectionStrings?: boolean;
hostingEnvironment?: string;
}
/**
* @class
* Initializes a new instance of the SiteAuthSettings class.
* @constructor
* Configuration settings for the Azure App Service Authentication /
* Authorization feature.
*
* @member {boolean} [enabled] true if the Authentication /
* Authorization feature is enabled for the current app; otherwise,
* false.
* @member {string} [runtimeVersion] The RuntimeVersion of the Authentication /
* Authorization feature in use for the current app.
* The setting in this value can control the behavior of certain features in
* the Authentication / Authorization module.
* @member {string} [unauthenticatedClientAction] The action to take when an
* unauthenticated client attempts to access the app. Possible values include:
* 'RedirectToLoginPage', 'AllowAnonymous'
* @member {boolean} [tokenStoreEnabled] true to durably store
* platform-specific security tokens that are obtained during login flows;
* otherwise, false.
* The default is false.
* @member {array} [allowedExternalRedirectUrls] External URLs that can be
* redirected to as part of logging in or logging out of the app. Note that the
* query string part of the URL is ignored.
* This is an advanced setting typically only needed by Windows Store
* application backends.
* Note that URLs within the current domain are always implicitly allowed.
* @member {string} [defaultProvider] The default authentication provider to
* use when multiple providers are configured.
* This setting is only needed if multiple providers are configured and the
* unauthenticated client
* action is set to "RedirectToLoginPage". Possible values include:
* 'AzureActiveDirectory', 'Facebook', 'Google', 'MicrosoftAccount', 'Twitter'
* @member {number} [tokenRefreshExtensionHours] The number of hours after
* session token expiration that a session token can be used to
* call the token refresh API. The default is 72 hours.
* @member {string} [clientId] The Client ID of this relying party application,
* known as the client_id.
* This setting is required for enabling OpenID Connection authentication with
* Azure Active Directory or
* other 3rd party OpenID Connect providers.
* More information on OpenID Connect:
* http://openid.net/specs/openid-connect-core-1_0.html
* @member {string} [clientSecret] The Client Secret of this relying party
* application (in Azure Active Directory, this is also referred to as the
* Key).
* This setting is optional. If no client secret is configured, the OpenID
* Connect implicit auth flow is used to authenticate end users.
* Otherwise, the OpenID Connect Authorization Code Flow is used to
* authenticate end users.
* More information on OpenID Connect:
* http://openid.net/specs/openid-connect-core-1_0.html
* @member {string} [issuer] The OpenID Connect Issuer URI that represents the
* entity which issues access tokens for this application.
* When using Azure Active Directory, this value is the URI of the directory
* tenant, e.g. https://sts.windows.net/{tenant-guid}/.
* This URI is a case-sensitive identifier for the token issuer.
* More information on OpenID Connect Discovery:
* http://openid.net/specs/openid-connect-discovery-1_0.html
* @member {boolean} [validateIssuer] Gets a value indicating whether the
* issuer should be a valid HTTPS url and be validated as such.
* @member {array} [allowedAudiences] Allowed audience values to consider when
* validating JWTs issued by
* Azure Active Directory. Note that the ClientID value is always
* considered an
* allowed audience, regardless of this setting.
* @member {array} [additionalLoginParams] Login parameters to send to the
* OpenID Connect authorization endpoint when
* a user logs in. Each parameter must be in the form "key=value".
* @member {string} [googleClientId] The OpenID Connect Client ID for the
* Google web application.
* This setting is required for enabling Google Sign-In.
* Google Sign-In documentation:
* https://developers.google.com/identity/sign-in/web/
* @member {string} [googleClientSecret] The client secret associated with the
* Google web application.
* This setting is required for enabling Google Sign-In.
* Google Sign-In documentation:
* https://developers.google.com/identity/sign-in/web/
* @member {array} [googleOAuthScopes] The OAuth 2.0 scopes that will be
* requested as part of Google Sign-In authentication.
* This setting is optional. If not specified, "openid", "profile", and "email"
* are used as default scopes.
* Google Sign-In documentation:
* https://developers.google.com/identity/sign-in/web/
* @member {string} [facebookAppId] The App ID of the Facebook app used for
* login.
* This setting is required for enabling Facebook Login.
* Facebook Login documentation:
* https://developers.facebook.com/docs/facebook-login
* @member {string} [facebookAppSecret] The App Secret of the Facebook app used
* for Facebook Login.
* This setting is required for enabling Facebook Login.
* Facebook Login documentation:
* https://developers.facebook.com/docs/facebook-login
* @member {array} [facebookOAuthScopes] The OAuth 2.0 scopes that will be
* requested as part of Facebook Login authentication.
* This setting is optional.
* Facebook Login documentation:
* https://developers.facebook.com/docs/facebook-login
* @member {string} [twitterConsumerKey] The OAuth 1.0a consumer key of the
* Twitter application used for sign-in.
* This setting is required for enabling Twitter Sign-In.
* Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
* @member {string} [twitterConsumerSecret] The OAuth 1.0a consumer secret of
* the Twitter application used for sign-in.
* This setting is required for enabling Twitter Sign-In.
* Twitter Sign-In documentation: https://dev.twitter.com/web/sign-in
* @member {string} [microsoftAccountClientId] The OAuth 2.0 client ID that was
* created for the app used for authentication.
* This setting is required for enabling Microsoft Account authentication.
* Microsoft Account OAuth documentation:
* https://dev.onedrive.com/auth/msa_oauth.htm
* @member {string} [microsoftAccountClientSecret] The OAuth 2.0 client secret
* that was created for the app used for authentication.
* This setting is required for enabling Microsoft Account authentication.
* Microsoft Account OAuth documentation:
* https://dev.onedrive.com/auth/msa_oauth.htm
* @member {array} [microsoftAccountOAuthScopes] The OAuth 2.0 scopes that will
* be requested as part of Microsoft Account authentication.
* This setting is optional. If not specified, "wl.basic" is used as the
* default scope.
* Microsoft Account Scopes and permissions documentation:
* https://msdn.microsoft.com/en-us/library/dn631845.aspx
*/
export interface SiteAuthSettings extends ProxyOnlyResource {
enabled?: boolean;
runtimeVersion?: string;
unauthenticatedClientAction?: string;
tokenStoreEnabled?: boolean;
allowedExternalRedirectUrls?: string[];
defaultProvider?: string;
tokenRefreshExtensionHours?: number;
clientId?: string;
clientSecret?: string;
issuer?: string;
validateIssuer?: boolean;
allowedAudiences?: string[];
additionalLoginParams?: string[];
googleClientId?: string;
googleClientSecret?: string;
googleOAuthScopes?: string[];
facebookAppId?: string;
facebookAppSecret?: string;
facebookOAuthScopes?: string[];
twitterConsumerKey?: string;
twitterConsumerSecret?: string;
microsoftAccountClientId?: string;
microsoftAccountClientSecret?: string;
microsoftAccountOAuthScopes?: string[];
}
/**
* @class
* Initializes a new instance of the SiteCloneabilityCriterion class.
* @constructor
* An app cloneability criterion.
*
* @member {string} [name] Name of criterion.
* @member {string} [description] Description of criterion.
*/
export interface SiteCloneabilityCriterion {
name?: string;
description?: string;
}
/**
* @class
* Initializes a new instance of the SiteCloneability class.
* @constructor
* Represents whether or not an app is cloneable.
*
* @member {string} [result] Name of app. Possible values include: 'Cloneable',
* 'PartiallyCloneable', 'NotCloneable'
* @member {array} [blockingFeatures] List of features enabled on app that
* prevent cloning.
* @member {array} [unsupportedFeatures] List of features enabled on app that
* are non-blocking but cannot be cloned. The app can still be cloned
* but the features in this list will not be set up on cloned app.
* @member {array} [blockingCharacteristics] List of blocking application
* characteristics.
*/
export interface SiteCloneability {
result?: string;
blockingFeatures?: SiteCloneabilityCriterion[];
unsupportedFeatures?: SiteCloneabilityCriterion[];
blockingCharacteristics?: SiteCloneabilityCriterion[];
}
/**
* @class
* Initializes a new instance of the SiteConfigResource class.
* @constructor
* Web app configuration ARM resource.
*
* @member {number} [numberOfWorkers] Number of workers.
* @member {array} [defaultDocuments] Default documents.
* @member {string} [netFrameworkVersion] .NET Framework version. Default
* value: 'v4.6' .
* @member {string} [phpVersion] Version of PHP.
* @member {string} [pythonVersion] Version of Python.
* @member {string} [nodeVersion] Version of Node.js.
* @member {string} [linuxFxVersion] Linux App Framework and version
* @member {string} [windowsFxVersion] Xenon App Framework and version
* @member {boolean} [requestTracingEnabled] true if request
* tracing is enabled; otherwise, false.
* @member {date} [requestTracingExpirationTime] Request tracing expiration
* time.
* @member {boolean} [remoteDebuggingEnabled] true if remote
* debugging is enabled; otherwise, false.
* @member {string} [remoteDebuggingVersion] Remote debugging version.
* @member {boolean} [httpLoggingEnabled] true if HTTP logging is
* enabled; otherwise, false.
* @member {number} [logsDirectorySizeLimit] HTTP logs directory size limit.
* @member {boolean} [detailedErrorLoggingEnabled] true if
* detailed error logging is enabled; otherwise, false.
* @member {string} [publishingUsername] Publishing user name.
* @member {array} [appSettings] Application settings.
* @member {object} [azureStorageAccounts] User-provided Azure storage
* accounts.
* @member {array} [connectionStrings] Connection strings.
* @member {object} [machineKey] Site MachineKey.
* @member {string} [machineKey.validation] MachineKey validation.
* @member {string} [machineKey.validationKey] Validation key.
* @member {string} [machineKey.decryption] Algorithm used for decryption.
* @member {string} [machineKey.decryptionKey] Decryption key.
* @member {array} [handlerMappings] Handler mappings.
* @member {string} [documentRoot] Document root.
* @member {string} [scmType] SCM type. Possible values include: 'None',
* 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg',
* 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive',
* 'VSO'
* @member {boolean} [use32BitWorkerProcess] true to use 32-bit
* worker process; otherwise, false.
* @member {boolean} [webSocketsEnabled] true if WebSocket is
* enabled; otherwise, false.
* @member {boolean} [alwaysOn] true if Always On is enabled;
* otherwise, false.
* @member {string} [javaVersion] Java version.
* @member {string} [javaContainer] Java container.
* @member {string} [javaContainerVersion] Java container version.
* @member {string} [appCommandLine] App command line to launch.
* @member {string} [managedPipelineMode] Managed pipeline mode. Possible
* values include: 'Integrated', 'Classic'
* @member {array} [virtualApplications] Virtual applications.
* @member {string} [loadBalancing] Site load balancing. Possible values
* include: 'WeightedRoundRobin', 'LeastRequests', 'LeastResponseTime',
* 'WeightedTotalTraffic', 'RequestHash'
* @member {object} [experiments] This is work around for polymophic types.
* @member {array} [experiments.rampUpRules] List of ramp-up rules.
* @member {object} [limits] Site limits.
* @member {number} [limits.maxPercentageCpu] Maximum allowed CPU usage
* percentage.
* @member {number} [limits.maxMemoryInMb] Maximum allowed memory usage in MB.
* @member {number} [limits.maxDiskSizeInMb] Maximum allowed disk size usage in
* MB.
* @member {boolean} [autoHealEnabled] true if Auto Heal is
* enabled; otherwise, false.
* @member {object} [autoHealRules] Auto Heal rules.
* @member {object} [autoHealRules.triggers] Conditions that describe when to
* execute the auto-heal actions.
* @member {object} [autoHealRules.triggers.requests] A rule based on total
* requests.
* @member {number} [autoHealRules.triggers.requests.count] Request Count.
* @member {string} [autoHealRules.triggers.requests.timeInterval] Time
* interval.
* @member {number} [autoHealRules.triggers.privateBytesInKB] A rule based on
* private bytes.
* @member {array} [autoHealRules.triggers.statusCodes] A rule based on status
* codes.
* @member {object} [autoHealRules.triggers.slowRequests] A rule based on
* request execution time.
* @member {string} [autoHealRules.triggers.slowRequests.timeTaken] Time taken.
* @member {number} [autoHealRules.triggers.slowRequests.count] Request Count.
* @member {string} [autoHealRules.triggers.slowRequests.timeInterval] Time
* interval.
* @member {object} [autoHealRules.actions] Actions to be executed when a rule
* is triggered.
* @member {string} [autoHealRules.actions.actionType] Predefined action to be
* taken. Possible values include: 'Recycle', 'LogEvent', 'CustomAction'
* @member {object} [autoHealRules.actions.customAction] Custom action to be
* taken.
* @member {string} [autoHealRules.actions.customAction.exe] Executable to be
* run.
* @member {string} [autoHealRules.actions.customAction.parameters] Parameters
* for the executable.
* @member {string} [autoHealRules.actions.minProcessExecutionTime] Minimum
* time the process must execute
* before taking the action
* @member {string} [tracingOptions] Tracing options.
* @member {string} [vnetName] Virtual Network name.
* @member {object} [cors] Cross-Origin Resource Sharing (CORS) settings.
* @member {array} [cors.allowedOrigins] 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.
* @member {object} [push] Push endpoint settings.
* @member {boolean} [push.isPushEnabled] Gets or sets a flag indicating
* whether the Push endpoint is enabled.
* @member {string} [push.tagWhitelistJson] Gets or sets a JSON string
* containing a list of tags that are whitelisted for use by the push
* registration endpoint.
* @member {string} [push.tagsRequiringAuth] 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.
* @member {string} [push.dynamicTagsJson] Gets or sets a JSON string
* containing a list of dynamic tags that will be evaluated from user claims in
* the push registration endpoint.
* @member {object} [apiDefinition] Information about the formal API definition
* for the app.
* @member {string} [apiDefinition.url] The URL of the API definition.
* @member {string} [autoSwapSlotName] Auto-swap slot name.
* @member {boolean} [localMySqlEnabled] true to enable local
* MySQL; otherwise, false. Default value: false .
* @member {number} [managedServiceIdentityId] Managed Service Identity Id
* @member {number} [xManagedServiceIdentityId] Explicit Managed Service
* Identity Id
* @member {array} [ipSecurityRestrictions] IP security restrictions.
* @member {boolean} [http20Enabled] Http20Enabled: configures a web site to
* allow clients to connect over http2.0. Default value: true .
* @member {string} [minTlsVersion] MinTlsVersion: configures the minimum
* version of TLS required for SSL requests. Possible values include: '1.0',
* '1.1', '1.2'
* @member {string} [ftpsState] State of FTP / FTPS service. Possible values
* include: 'AllAllowed', 'FtpsOnly', 'Disabled'
* @member {number} [reservedInstanceCount] Number of reserved instances.
* This setting only applies to the Consumption Plan
*/
export interface SiteConfigResource extends ProxyOnlyResource {
numberOfWorkers?: number;
defaultDocuments?: string[];
netFrameworkVersion?: string;
phpVersion?: string;
pythonVersion?: string;
nodeVersion?: string;
linuxFxVersion?: string;
windowsFxVersion?: string;
requestTracingEnabled?: boolean;
requestTracingExpirationTime?: Date;
remoteDebuggingEnabled?: boolean;
remoteDebuggingVersion?: string;
httpLoggingEnabled?: boolean;
logsDirectorySizeLimit?: number;
detailedErrorLoggingEnabled?: boolean;
publishingUsername?: string;
appSettings?: NameValuePair[];
azureStorageAccounts?: { [propertyName: string]: AzureStorageInfoValue };
connectionStrings?: ConnStringInfo[];
readonly machineKey?: SiteMachineKey;
handlerMappings?: HandlerMapping[];
documentRoot?: string;
scmType?: string;
use32BitWorkerProcess?: boolean;
webSocketsEnabled?: boolean;
alwaysOn?: boolean;
javaVersion?: string;
javaContainer?: string;
javaContainerVersion?: string;
appCommandLine?: string;
managedPipelineMode?: string;
virtualApplications?: VirtualApplication[];
loadBalancing?: string;
experiments?: Experiments;
limits?: SiteLimits;
autoHealEnabled?: boolean;
autoHealRules?: AutoHealRules;
tracingOptions?: string;
vnetName?: string;
cors?: CorsSettings;
push?: PushSettings;
apiDefinition?: ApiDefinitionInfo;
autoSwapSlotName?: string;
localMySqlEnabled?: boolean;
managedServiceIdentityId?: number;
xManagedServiceIdentityId?: number;
ipSecurityRestrictions?: IpSecurityRestriction[];
http20Enabled?: boolean;
minTlsVersion?: string;
ftpsState?: string;
reservedInstanceCount?: number;
}
/**
* @class
* Initializes a new instance of the SiteConfigurationSnapshotInfo class.
* @constructor
* A snapshot of a web app configuration.
*
* @member {date} [time] The time the snapshot was taken.
* @member {number} [snapshotId] The id of the snapshot
*/
export interface SiteConfigurationSnapshotInfo extends ProxyOnlyResource {
readonly time?: Date;
readonly snapshotId?: number;
}
/**
* @class
* Initializes a new instance of the SiteExtensionInfo class.
* @constructor
* Site Extension Information.
*
* @member {string} [extensionId] Site extension ID.
* @member {string} [title]
* @member {string} [extensionType] Site extension type. Possible values
* include: 'Gallery', 'WebRoot'
* @member {string} [summary] Summary description.
* @member {string} [description] Detailed description.
* @member {string} [version] Version information.
* @member {string} [extensionUrl] Extension URL.
* @member {string} [projectUrl] Project URL.
* @member {string} [iconUrl] Icon URL.
* @member {string} [licenseUrl] License URL.
* @member {string} [feedUrl] Feed URL.
* @member {array} [authors] List of authors.
* @member {string} [installerCommandLineParams] Installer command line
* parameters.
* @member {date} [publishedDateTime] Published timestamp.
* @member {number} [downloadCount] Count of downloads.
* @member {boolean} [localIsLatestVersion] true if the local
* version is the latest version; false otherwise.
* @member {string} [localPath] Local path.
* @member {date} [installedDateTime] Installed timestamp.
* @member {string} [provisioningState] Provisioning state.
* @member {string} [comment] Site Extension comment.
*/
export interface SiteExtensionInfo extends ProxyOnlyResource {
extensionId?: string;
title?: string;
extensionType?: string;
summary?: string;
description?: string;
version?: string;
extensionUrl?: string;
projectUrl?: string;
iconUrl?: string;
licenseUrl?: string;
feedUrl?: string;
authors?: string[];
installerCommandLineParams?: string;
publishedDateTime?: Date;
downloadCount?: number;
localIsLatestVersion?: boolean;
localPath?: string;
installedDateTime?: Date;
provisioningState?: string;
comment?: string;
}
/**
* @class
* Initializes a new instance of the SiteInstance class.
* @constructor
* Instance of an app.
*
* @member {string} [siteInstanceName] Name of instance.
*/
export interface SiteInstance extends ProxyOnlyResource {
readonly siteInstanceName?: string;
}
/**
* @class
* Initializes a new instance of the SiteLogsConfig class.
* @constructor
* Configuration of App Service site logs.
*
* @member {object} [applicationLogs] Application logs configuration.
* @member {object} [applicationLogs.fileSystem] Application logs to file
* system configuration.
* @member {string} [applicationLogs.fileSystem.level] Log level. Possible
* values include: 'Off', 'Verbose', 'Information', 'Warning', 'Error'
* @member {object} [applicationLogs.azureTableStorage] Application logs to
* azure table storage configuration.
* @member {string} [applicationLogs.azureTableStorage.level] Log level.
* Possible values include: 'Off', 'Verbose', 'Information', 'Warning', 'Error'
* @member {string} [applicationLogs.azureTableStorage.sasUrl] SAS URL to an
* Azure table with add/query/delete permissions.
* @member {object} [applicationLogs.azureBlobStorage] Application logs to blob
* storage configuration.
* @member {string} [applicationLogs.azureBlobStorage.level] Log level.
* Possible values include: 'Off', 'Verbose', 'Information', 'Warning', 'Error'
* @member {string} [applicationLogs.azureBlobStorage.sasUrl] SAS url to a
* azure blob container with read/write/list/delete permissions.
* @member {number} [applicationLogs.azureBlobStorage.retentionInDays]
* Retention in days.
* Remove blobs older than X days.
* 0 or lower means no retention.
* @member {object} [httpLogs] HTTP logs configuration.
* @member {object} [httpLogs.fileSystem] Http logs to file system
* configuration.
* @member {number} [httpLogs.fileSystem.retentionInMb] Maximum size in
* megabytes that http log files can use.
* When reached old log files will be removed to make space for new ones.
* Value can range between 25 and 100.
* @member {number} [httpLogs.fileSystem.retentionInDays] Retention in days.
* Remove files older than X days.
* 0 or lower means no retention.
* @member {boolean} [httpLogs.fileSystem.enabled] True if configuration is
* enabled, false if it is disabled and null if configuration is not set.
* @member {object} [httpLogs.azureBlobStorage] Http logs to azure blob storage
* configuration.
* @member {string} [httpLogs.azureBlobStorage.sasUrl] SAS url to a azure blob
* container with read/write/list/delete permissions.
* @member {number} [httpLogs.azureBlobStorage.retentionInDays] Retention in
* days.
* Remove blobs older than X days.
* 0 or lower means no retention.
* @member {boolean} [httpLogs.azureBlobStorage.enabled] True if configuration
* is enabled, false if it is disabled and null if configuration is not set.
* @member {object} [failedRequestsTracing] Failed requests tracing
* configuration.
* @member {boolean} [failedRequestsTracing.enabled] True if configuration is
* enabled, false if it is disabled and null if configuration is not set.
* @member {object} [detailedErrorMessages] Detailed error messages
* configuration.
* @member {boolean} [detailedErrorMessages.enabled] True if configuration is
* enabled, false if it is disabled and null if configuration is not set.
*/
export interface SiteLogsConfig extends ProxyOnlyResource {
applicationLogs?: ApplicationLogsConfig;
httpLogs?: HttpLogsConfig;
failedRequestsTracing?: EnabledConfig;
detailedErrorMessages?: EnabledConfig;
}
/**
* @class
* Initializes a new instance of the SitePatchResource class.
* @constructor
* ARM resource for a site.
*
* @member {string} [state] Current state of the app.
* @member {array} [hostNames] Hostnames associated with the app.
* @member {string} [repositorySiteName] Name of the repository site.
* @member {string} [usageState] State indicating whether the app has exceeded
* its quota usage. Read-only. Possible values include: 'Normal', 'Exceeded'
* @member {boolean} [enabled] true if the app is enabled;
* otherwise, false. Setting this value to false disables the app
* (takes the app offline).
* @member {array} [enabledHostNames] Enabled hostnames for the app.Hostnames
* need to be assigned (see HostNames) AND enabled. Otherwise,
* the app is not served on those hostnames.
* @member {string} [availabilityState] Management information availability
* state for the app. Possible values include: 'Normal', 'Limited',
* 'DisasterRecoveryMode'
* @member {array} [hostNameSslStates] Hostname SSL states are used to manage
* the SSL bindings for app's hostnames.
* @member {string} [serverFarmId] Resource ID of the associated App Service
* plan, formatted as:
* "/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}".
* @member {boolean} [reserved] true if reserved; otherwise,
* false. Default value: false .
* @member {boolean} [isXenon] Obsolete: Hyper-V sandbox. Default value: false
* .
* @member {boolean} [hyperV] Hyper-V sandbox. Default value: false .
* @member {date} [lastModifiedTimeUtc] Last time the app was modified, in UTC.
* Read-only.
* @member {object} [siteConfig] Configuration of the app.
* @member {number} [siteConfig.numberOfWorkers] Number of workers.
* @member {array} [siteConfig.defaultDocuments] Default documents.
* @member {string} [siteConfig.netFrameworkVersion] .NET Framework version.
* @member {string} [siteConfig.phpVersion] Version of PHP.
* @member {string} [siteConfig.pythonVersion] Version of Python.
* @member {string} [siteConfig.nodeVersion] Version of Node.js.
* @member {string} [siteConfig.linuxFxVersion] Linux App Framework and version
* @member {string} [siteConfig.windowsFxVersion] Xenon App Framework and
* version
* @member {boolean} [siteConfig.requestTracingEnabled] true if
* request tracing is enabled; otherwise, false.
* @member {date} [siteConfig.requestTracingExpirationTime] Request tracing
* expiration time.
* @member {boolean} [siteConfig.remoteDebuggingEnabled] true if
* remote debugging is enabled; otherwise, false.
* @member {string} [siteConfig.remoteDebuggingVersion] Remote debugging
* version.
* @member {boolean} [siteConfig.httpLoggingEnabled] true if HTTP
* logging is enabled; otherwise, false.
* @member {number} [siteConfig.logsDirectorySizeLimit] HTTP logs directory
* size limit.
* @member {boolean} [siteConfig.detailedErrorLoggingEnabled] true
* if detailed error logging is enabled; otherwise, false.
* @member {string} [siteConfig.publishingUsername] Publishing user name.
* @member {array} [siteConfig.appSettings] Application settings.
* @member {object} [siteConfig.azureStorageAccounts] User-provided Azure
* storage accounts.
* @member {array} [siteConfig.connectionStrings] Connection strings.
* @member {object} [siteConfig.machineKey] Site MachineKey.
* @member {string} [siteConfig.machineKey.validation] MachineKey validation.
* @member {string} [siteConfig.machineKey.validationKey] Validation key.
* @member {string} [siteConfig.machineKey.decryption] Algorithm used for
* decryption.
* @member {string} [siteConfig.machineKey.decryptionKey] Decryption key.
* @member {array} [siteConfig.handlerMappings] Handler mappings.
* @member {string} [siteConfig.documentRoot] Document root.
* @member {string} [siteConfig.scmType] SCM type. Possible values include:
* 'None', 'Dropbox', 'Tfs', 'LocalGit', 'GitHub', 'CodePlexGit', 'CodePlexHg',
* 'BitbucketGit', 'BitbucketHg', 'ExternalGit', 'ExternalHg', 'OneDrive',
* 'VSO'
* @member {boolean} [siteConfig.use32BitWorkerProcess] true to
* use 32-bit worker process; otherwise, false.
* @member {boolean} [siteConfig.webSocketsEnabled] true if
* WebSocket is enabled; otherwise, false.
* @member {boolean} [siteConfig.alwaysOn] true if Always On is
* enabled; otherwise, false.
* @member {string} [siteConfig.javaVersion] Java version.
* @member {string} [siteConfig.javaContainer] Java container.
* @member {string} [siteConfig.javaContainerVersion] Java container version.
* @member {string} [siteConfig.appCommandLine] App command line to launch.
* @member {string} [siteConfig.managedPipelineMode] Managed pipeline mode.
* Possible values include: 'Integrated', 'Classic'
* @member {array} [siteConfig.virtualApplications] Virtual applications.
* @member {string} [siteConfig.loadBalancing] Site load balancing. Possible
* values include: 'WeightedRoundRobin', 'LeastRequests', 'LeastResponseTime',
* 'WeightedTotalTraffic', 'RequestHash'
* @member {object} [siteConfig.experiments] This is work around for polymophic
* types.
* @member {array} [siteConfig.experiments.rampUpRules] List of ramp-up rules.
* @member {object} [siteConfig.limits] Site limits.
* @member {number} [siteConfig.limits.maxPercentageCpu] Maximum allowed CPU
* usage percentage.
* @member {number} [siteConfig.limits.maxMemoryInMb] Maximum allowed memory
* usage in MB.
* @member {number} [siteConfig.limits.maxDiskSizeInMb] Maximum allowed disk
* size usage in MB.
* @member {boolean} [siteConfig.autoHealEnabled] true if Auto
* Heal is enabled; otherwise, false.
* @member {object} [siteConfig.autoHealRules] Auto Heal rules.
* @member {object} [siteConfig.autoHealRules.triggers] Conditions that
* describe when to execute the auto-heal actions.
* @member {object} [siteConfig.autoHealRules.triggers.requests] A rule based
* on total requests.
* @member {number} [siteConfig.autoHealRules.triggers.requests.count] Request
* Count.
* @member {string} [siteConfig.autoHealRules.triggers.requests.timeInterval]
* Time interval.
* @member {number} [siteConfig.autoHealRules.triggers.privateBytesInKB] A rule
* based on private bytes.
* @member {array} [siteConfig.autoHealRules.triggers.statusCodes] A rule based
* on status codes.
* @member {object} [siteConfig.autoHealRules.triggers.slowRequests] A rule
* based on request execution time.
* @member {string} [siteConfig.autoHealRules.triggers.slowRequests.timeTaken]
* Time taken.
* @member {number} [siteConfig.autoHealRules.triggers.slowRequests.count]
* Request Count.
* @member {string}
* [siteConfig.autoHealRules.triggers.slowRequests.timeInterval] Time interval.
* @member {object} [siteConfig.autoHealRules.actions] Actions to be executed
* when a rule is triggered.
* @member {string} [siteConfig.autoHealRules.actions.actionType] Predefined
* action to be taken. Possible values include: 'Recycle', 'LogEvent',
* 'CustomAction'
* @member {object} [siteConfig.autoHealRules.actions.customAction] Custom
* action to be taken.
* @member {string} [siteConfig.autoHealRules.actions.customAction.exe]
* Executable to be run.
* @member {string} [siteConfig.autoHealRules.actions.customAction.parameters]
* Parameters for the executable.
* @member {string} [siteConfig.autoHealRules.actions.minProcessExecutionTime]
* Minimum time the process must execute
* before taking the action
* @member {string} [siteConfig.tracingOptions] Tracing options.
* @member {string} [siteConfig.vnetName] Virtual Network name.
* @member {object} [siteConfig.cors] Cross-Origin Resource Sharing (CORS)
* settings.
* @member {array} [siteConfig.cors.allowedOrigins] 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.
* @member {object} [siteConfig.push] Push endpoint settings.
* @member {boolean} [siteConfig.push.isPushEnabled] Gets or sets a flag
* indicating whether the Push endpoint is enabled.
* @member {string} [siteConfig.push.tagWhitelistJson] Gets or sets a JSON
* string containing a list of tags that are whitelisted for use by the push
* registration endpoint.
* @member {string} [siteConfig.push.tagsRequiringAuth] 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.
* @member {string} [siteConfig.push.dynamicTagsJson] Gets or sets a JSON
* string containing a list of dynamic tags that will be evaluated from user
* claims in the push registration endpoint.
* @member {object} [siteConfig.apiDefinition] Information about the formal API
* definition for the app.
* @member {string} [siteConfig.apiDefinition.url] The URL of the API
* definition.
* @member {string} [siteConfig.autoSwapSlotName] Auto-swap slot name.
* @member {boolean} [siteConfig.localMySqlEnabled] true to enable
* local MySQL; otherwise, false.
* @member {number} [siteConfig.managedServiceIdentityId] Managed Service
* Identity Id
* @member {number} [siteConfig.xManagedServiceIdentityId] Explicit Managed
* Service Identity Id
* @member {array} [siteConfig.ipSecurityRestrictions] IP security
* restrictions.
* @member {boolean} [siteConfig.http20Enabled] Http20Enabled: configures a web
* site to allow clients to connect over http2.0
* @member {string} [siteConfig.minTlsVersion] MinTlsVersion: configures the
* minimum version of TLS required for SSL requests. Possible values include:
* '1.0', '1.1', '1.2'
* @member {string} [siteConfig.ftpsState] State of FTP / FTPS service.
* Possible values include: 'AllAllowed', 'FtpsOnly', 'Disabled'
* @member {number} [siteConfig.reservedInstanceCount] Number of reserved
* instances.
* This setting only applies to the Consumption Plan
* @member {array} [trafficManagerHostNames] Azure Traffic Manager hostnames
* associated with the app. Read-only.
* @member {boolean} [scmSiteAlsoStopped] true to stop SCM (KUDU)
* site when the app is stopped; otherwise, false. The default is
* false. Default value: false .
* @member {string} [targetSwapSlot] Specifies which deployment slot this app
* will swap into. Read-only.
* @member {object} [hostingEnvironmentProfile] App Service Environment to use
* for the app.
* @member {string} [hostingEnvironmentProfile.id] Resource ID of the App
* Service Environment.
* @member {string} [hostingEnvironmentProfile.name] Name of the App Service
* Environment.
* @member {string} [hostingEnvironmentProfile.type] Resource type of the App
* Service Environment.
* @member {boolean} [clientAffinityEnabled] true to enable client
* affinity; false to stop sending session affinity cookies, which
* route client requests in the same session to the same instance. Default is
* true.
* @member {boolean} [clientCertEnabled] true to enable client
* certificate authentication (TLS mutual authentication); otherwise,
* false. Default is false.
* @member {boolean} [hostNamesDisabled] true to disable the
* public hostnames of the app; otherwise, false.
* If true, the app is only accessible via API management process.
* @member {string} [outboundIpAddresses] List of IP addresses that the app
* uses for outbound connections (e.g. database access). Includes VIPs from
* tenants that site can be hosted with current settings. Read-only.
* @member {string} [possibleOutboundIpAddresses] List of IP addresses that the
* app uses for outbound connections (e.g. database access). Includes VIPs from
* all tenants. Read-only.
* @member {number} [containerSize] Size of the function container.
* @member {number} [dailyMemoryTimeQuota] Maximum allowed daily memory-time
* quota (applicable on dynamic apps only).
* @member {date} [suspendedTill] App suspended till in case memory-time quota
* is exceeded.
* @member {number} [maxNumberOfWorkers] Maximum number of workers.
* This only applies to Functions container.
* @member {object} [cloningInfo] If specified during app creation, the app is
* cloned from a source app.
* @member {uuid} [cloningInfo.correlationId] Correlation ID of cloning
* operation. This ID ties multiple cloning operations
* together to use the same snapshot.
* @member {boolean} [cloningInfo.overwrite] true to overwrite
* destination app; otherwise, false.
* @member {boolean} [cloningInfo.cloneCustomHostNames] true to
* clone custom hostnames from source app; otherwise, false.
* @member {boolean} [cloningInfo.cloneSourceControl] true to
* clone source control from source app; otherwise, false.
* @member {string} [cloningInfo.sourceWebAppId] 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.
* @member {string} [cloningInfo.hostingEnvironment] App Service Environment.
* @member {object} [cloningInfo.appSettingsOverrides] 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.
* @member {boolean} [cloningInfo.configureLoadBalancing] true to
* configure load balancing for source and destination app.
* @member {string} [cloningInfo.trafficManagerProfileId] 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}.
* @member {string} [cloningInfo.trafficManagerProfileName] Name of Traffic
* Manager profile to create. This is only needed if Traffic Manager profile
* does not already exist.
* @member {string} [resourceGroup] Name of the resource group the app belongs
* to. Read-only.
* @member {boolean} [isDefaultContainer] true if the app is a
* default container; otherwise, false.
* @member {string} [defaultHostName] Default hostname of the app. Read-only.
* @member {object} [slotSwapStatus] Status of the last deployment slot swap
* operation.
* @member {date} [slotSwapStatus.timestampUtc] The time the last successful
* slot swap completed.
* @member {string} [slotSwapStatus.sourceSlotName] The source slot of the last
* swap operation.
* @member {string} [slotSwapStatus.destinationSlotName] The destination slot
* of the last swap operation.
* @member {boolean} [httpsOnly] HttpsOnly: configures a web site to accept
* only https requests. Issues redirect for
* http requests
*/
export interface SitePatchResource extends ProxyOnlyResource {
readonly state?: string;
readonly hostNames?: string[];
readonly repositorySiteName?: string;
readonly usageState?: string;
enabled?: boolean;
readonly enabledHostNames?: string[];
readonly availabilityState?: string;
hostNameSslStates?: HostNameSslState[];
serverFarmId?: string;
reserved?: boolean;
isXenon?: boolean;
hyperV?: boolean;
readonly lastModifiedTimeUtc?: Date;
siteConfig?: SiteConfig;
readonly trafficManagerHostNames?: string[];
scmSiteAlsoStopped?: boolean;
readonly targetSwapSlot?: string;
hostingEnvironmentProfile?: HostingEnvironmentProfile;
clientAffinityEnabled?: boolean;
clientCertEnabled?: boolean;
hostNamesDisabled?: boolean;
readonly outboundIpAddresses?: string;
readonly possibleOutboundIpAddresses?: string;
containerSize?: number;
dailyMemoryTimeQuota?: number;
readonly suspendedTill?: Date;
readonly maxNumberOfWorkers?: number;
cloningInfo?: CloningInfo;
readonly resourceGroup?: string;
readonly isDefaultContainer?: boolean;
readonly defaultHostName?: string;
readonly slotSwapStatus?: SlotSwapStatus;
httpsOnly?: boolean;
}
/**
* @class
* Initializes a new instance of the SitePhpErrorLogFlag class.
* @constructor
* Used for getting PHP error logging flag.
*
* @member {string} [localLogErrors] Local log_errors setting.
* @member {string} [masterLogErrors] Master log_errors setting.
* @member {string} [localLogErrorsMaxLength] Local log_errors_max_len setting.
* @member {string} [masterLogErrorsMaxLength] Master log_errors_max_len
* setting.
*/
export interface SitePhpErrorLogFlag extends ProxyOnlyResource {
localLogErrors?: string;
masterLogErrors?: string;
localLogErrorsMaxLength?: string;
masterLogErrorsMaxLength?: string;
}
/**
* @class
* Initializes a new instance of the SiteSourceControl class.
* @constructor
* Source control configuration for an app.
*
* @member {string} [repoUrl] Repository or source control URL.
* @member {string} [branch] Name of branch to use for deployment.
* @member {boolean} [isManualIntegration] true to limit to manual
* integration; false to enable continuous integration (which
* configures webhooks into online repos like GitHub).
* @member {boolean} [deploymentRollbackEnabled] true to enable
* deployment rollback; otherwise, false.
* @member {boolean} [isMercurial] true for a Mercurial
* repository; false for a Git repository.
*/
export interface SiteSourceControl extends ProxyOnlyResource {
repoUrl?: string;
branch?: string;
isManualIntegration?: boolean;
deploymentRollbackEnabled?: boolean;
isMercurial?: boolean;
}
/**
* @class
* Initializes a new instance of the SlotConfigNamesResource class.
* @constructor
* Slot Config names azure resource.
*
* @member {array} [connectionStringNames] List of connection string names.
* @member {array} [appSettingNames] List of application settings names.
* @member {array} [azureStorageConfigNames] List of external Azure storage
* account identifiers.
*/
export interface SlotConfigNamesResource extends ProxyOnlyResource {
connectionStringNames?: string[];
appSettingNames?: string[];
azureStorageConfigNames?: string[];
}
/**
* @class
* Initializes a new instance of the SlotDifference class.
* @constructor
* A setting difference between two deployment slots of an app.
*
* @member {string} [level] Level of the difference: Information, Warning or
* Error.
* @member {string} [settingType] The type of the setting: General, AppSetting
* or ConnectionString.
* @member {string} [diffRule] Rule that describes how to process the setting
* difference during a slot swap.
* @member {string} [settingName] Name of the setting.
* @member {string} [valueInCurrentSlot] Value of the setting in the current
* slot.
* @member {string} [valueInTargetSlot] Value of the setting in the target
* slot.
* @member {string} [description] Description of the setting difference.
*/
export interface SlotDifference extends ProxyOnlyResource {
readonly level?: string;
readonly settingType?: string;
readonly diffRule?: string;
readonly settingName?: string;
readonly valueInCurrentSlot?: string;
readonly valueInTargetSlot?: string;
readonly description?: string;
}
/**
* @class
* Initializes a new instance of the SnapshotRecoverySource class.
* @constructor
* Specifies the web app that snapshot contents will be retrieved from.
*
* @member {string} [location] Geographical location of the source web app,
* e.g. SouthEastAsia, SouthCentralUS
* @member {string} [id] ARM resource ID of the source app.
* /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}
* for production slots and
* /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName}
* for other slots.
*/
export interface SnapshotRecoverySource {
location?: string;
id?: string;
}
/**
* @class
* Initializes a new instance of the SnapshotRestoreRequest class.
* @constructor
* Details about app recovery operation.
*
* @member {string} [snapshotTime] Point in time in which the app restore
* should be done, formatted as a DateTime string.
* @member {object} [recoverySource] Optional. Specifies the web app that
* snapshot contents will be retrieved from.
* If empty, the targeted web app will be used as the source.
* @member {string} [recoverySource.location] Geographical location of the
* source web app, e.g. SouthEastAsia, SouthCentralUS
* @member {string} [recoverySource.id] ARM resource ID of the source app.
* /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}
* for production slots and
* /subscriptions/{subId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/slots/{slotName}
* for other slots.
* @member {boolean} overwrite If true the restore operation can
* overwrite source app; otherwise, false.
* @member {boolean} [recoverConfiguration] If true, site configuration, in
* addition to content, will be reverted.
* @member {boolean} [ignoreConflictingHostNames] If true, custom hostname
* conflicts will be ignored when recovering to a target web app.
* This setting is only necessary when RecoverConfiguration is enabled.
* @member {boolean} [useDRSecondary] If true, the snapshot is retrieved from
* DRSecondary endpoint.
*/
export interface SnapshotRestoreRequest extends ProxyOnlyResource {
snapshotTime?: string;
recoverySource?: SnapshotRecoverySource;
overwrite: boolean;
recoverConfiguration?: boolean;
ignoreConflictingHostNames?: boolean;
useDRSecondary?: boolean;
}
/**
* @class
* Initializes a new instance of the StorageMigrationOptions class.
* @constructor
* Options for app content migration.
*
* @member {string} azurefilesConnectionString AzureFiles connection string.
* @member {string} azurefilesShare AzureFiles share.
* @member {boolean} [switchSiteAfterMigration] trueif the app
* should be switched over; otherwise, false. Default value: false
* .
* @member {boolean} [blockWriteAccessToSite] true if the app
* should be read only during copy operation; otherwise, false.
* Default value: false .
*/
export interface StorageMigrationOptions extends ProxyOnlyResource {
azurefilesConnectionString: string;
azurefilesShare: string;
switchSiteAfterMigration?: boolean;
blockWriteAccessToSite?: boolean;
}
/**
* @class
* Initializes a new instance of the StorageMigrationResponse class.
* @constructor
* Response for a migration of app content request.
*
* @member {string} [operationId] When server starts the migration process, it
* will return an operation ID identifying that particular migration operation.
*/
export interface StorageMigrationResponse extends ProxyOnlyResource {
readonly operationId?: string;
}
/**
* @class
* Initializes a new instance of the StringDictionary class.
* @constructor
* String dictionary resource.
*
* @member {object} [properties] Settings.
*/
export interface StringDictionary extends ProxyOnlyResource {
properties?: { [propertyName: string]: string };
}
/**
* @class
* Initializes a new instance of the SwiftVirtualNetwork class.
* @constructor
* Swift Virtual Network Contract. This is used to enable the new Swift way of
* doing virtual network integration.
*
* @member {string} [subnetResourceId] The Virtual Network subnet's resource
* ID. This is the subnet that this Web App will join. This subnet must have a
* delegation to Microsoft.Web/serverFarms defined first.
* @member {boolean} [swiftSupported] A flag that specifies if the scale unit
* this Web App is on supports Swift integration.
*/
export interface SwiftVirtualNetwork extends ProxyOnlyResource {
subnetResourceId?: string;
swiftSupported?: boolean;
}
/**
* @class
* Initializes a new instance of the TriggeredJobRun class.
* @constructor
* Triggered Web Job Run Information.
*
* @member {string} [webJobId] Job ID.
* @member {string} [webJobName] Job name.
* @member {string} [status] Job status. Possible values include: 'Success',
* 'Failed', 'Error'
* @member {date} [startTime] Start time.
* @member {date} [endTime] End time.
* @member {string} [duration] Job duration.
* @member {string} [outputUrl] Output URL.
* @member {string} [errorUrl] Error URL.
* @member {string} [url] Job URL.
* @member {string} [jobName] Job name.
* @member {string} [trigger] Job trigger.
*/
export interface TriggeredJobRun extends ProxyOnlyResource {
webJobId?: string;
webJobName?: string;
status?: string;
startTime?: Date;
endTime?: Date;
duration?: string;
outputUrl?: string;
errorUrl?: string;
url?: string;
jobName?: string;
trigger?: string;
}
/**
* @class
* Initializes a new instance of the TriggeredJobHistory class.
* @constructor
* Triggered Web Job History. List of Triggered Web Job Run Information
* elements.
*
* @member {array} [runs] List of triggered web job runs.
*/
export interface TriggeredJobHistory extends ProxyOnlyResource {
runs?: TriggeredJobRun[];
}
/**
* @class
* Initializes a new instance of the TriggeredWebJob class.
* @constructor
* Triggered Web Job Information.
*
* @member {object} [latestRun] Latest job run information.
* @member {string} [latestRun.webJobId] Job ID.
* @member {string} [latestRun.webJobName] Job name.
* @member {string} [latestRun.status] Job status. Possible values include:
* 'Success', 'Failed', 'Error'
* @member {date} [latestRun.startTime] Start time.
* @member {date} [latestRun.endTime] End time.
* @member {string} [latestRun.duration] Job duration.
* @member {string} [latestRun.outputUrl] Output URL.
* @member {string} [latestRun.errorUrl] Error URL.
* @member {string} [latestRun.url] Job URL.
* @member {string} [latestRun.jobName] Job name.
* @member {string} [latestRun.trigger] Job trigger.
* @member {string} [historyUrl] History URL.
* @member {string} [schedulerLogsUrl] Scheduler Logs URL.
* @member {string} [runCommand] Run command.
* @member {string} [url] Job URL.
* @member {string} [extraInfoUrl] Extra Info URL.
* @member {string} [webJobType] Job type. Possible values include:
* 'Continuous', 'Triggered'
* @member {string} [error] Error information.
* @member {boolean} [usingSdk] Using SDK?
* @member {object} [settings] Job settings.
*/
export interface TriggeredWebJob extends ProxyOnlyResource {
latestRun?: TriggeredJobRun;
historyUrl?: string;
schedulerLogsUrl?: string;
runCommand?: string;
url?: string;
extraInfoUrl?: string;
webJobType?: string;
error?: string;
usingSdk?: boolean;
settings?: { [propertyName: string]: any };
}
/**
* @class
* Initializes a new instance of the WebJob class.
* @constructor
* Web Job Information.
*
* @member {string} [runCommand] Run command.
* @member {string} [url] Job URL.
* @member {string} [extraInfoUrl] Extra Info URL.
* @member {string} [webJobType] Job type. Possible values include:
* 'Continuous', 'Triggered'
* @member {string} [error] Error information.
* @member {boolean} [usingSdk] Using SDK?
* @member {object} [settings] Job settings.
*/
export interface WebJob extends ProxyOnlyResource {
runCommand?: string;
url?: string;
extraInfoUrl?: string;
webJobType?: string;
error?: string;
usingSdk?: boolean;
settings?: { [propertyName: string]: any };
}
/**
* @class
* Initializes a new instance of the AddressResponse class.
* @constructor
* Describes main public IP address and any extra virtual IPs.
*
* @member {string} [serviceIpAddress] Main public virtual IP.
* @member {string} [internalIpAddress] Virtual Network internal IP address of
* the App Service Environment if it is in internal load-balancing mode.
* @member {array} [outboundIpAddresses] IP addresses appearing on outbound
* connections.
* @member {array} [vipMappings] Additional virtual IPs.
*/
export interface AddressResponse {
serviceIpAddress?: string;
internalIpAddress?: string;
outboundIpAddresses?: string[];
vipMappings?: VirtualIPMapping[];
}
/**
* @class
* Initializes a new instance of the AppServiceEnvironmentResource class.
* @constructor
* App Service Environment ARM resource.
*
* @member {string} appServiceEnvironmentResourceName Name of the App Service
* Environment.
* @member {string} appServiceEnvironmentResourceLocation Location of the App
* Service Environment, e.g. "West US".
* @member {string} [provisioningState] Provisioning state of the App Service
* Environment. Possible values include: 'Succeeded', 'Failed', 'Canceled',
* 'InProgress', 'Deleting'
* @member {string} [status] Current status of the App Service Environment.
* Possible values include: 'Preparing', 'Ready', 'Scaling', 'Deleting'
* @member {string} [vnetName] Name of the Virtual Network for the App Service
* Environment.
* @member {string} [vnetResourceGroupName] Resource group of the Virtual
* Network.
* @member {string} [vnetSubnetName] Subnet of the Virtual Network.
* @member {object} virtualNetwork Description of the Virtual Network.
* @member {string} [virtualNetwork.id] Resource id of the Virtual Network.
* @member {string} [virtualNetwork.name] Name of the Virtual Network
* (read-only).
* @member {string} [virtualNetwork.type] Resource type of the Virtual Network
* (read-only).
* @member {string} [virtualNetwork.subnet] Subnet within the Virtual Network.
* @member {string} [internalLoadBalancingMode] Specifies which endpoints to
* serve internally in the Virtual Network for the App Service Environment.
* Possible values include: 'None', 'Web', 'Publishing'
* @member {string} [multiSize] Front-end VM size, e.g. "Medium", "Large".
* @member {number} [multiRoleCount] Number of front-end instances.
* @member {array} workerPools Description of worker pools with worker size
* IDs, VM sizes, and number of workers in each pool.
* @member {number} [ipsslAddressCount] Number of IP SSL addresses reserved for
* the App Service Environment.
* @member {string} [databaseEdition] Edition of the metadata database for the
* App Service Environment, e.g. "Standard".
* @member {string} [databaseServiceObjective] Service objective of the
* metadata database for the App Service Environment, e.g. "S0".
* @member {number} [upgradeDomains] Number of upgrade domains of the App
* Service Environment.
* @member {string} [subscriptionId] Subscription of the App Service
* Environment.
* @member {string} [dnsSuffix] DNS suffix of the App Service Environment.
* @member {string} [lastAction] Last deployment action on the App Service
* Environment.
* @member {string} [lastActionResult] Result of the last deployment action on
* the App Service Environment.
* @member {string} [allowedMultiSizes] List of comma separated strings
* describing which VM sizes are allowed for front-ends.
* @member {string} [allowedWorkerSizes] List of comma separated strings
* describing which VM sizes are allowed for workers.
* @member {number} [maximumNumberOfMachines] Maximum number of VMs in the App
* Service Environment.
* @member {array} [vipMappings] Description of IP SSL mapping for the App
* Service Environment.
* @member {array} [environmentCapacities] Current total, used, and available
* worker capacities.
* @member {array} [networkAccessControlList] Access control list for
* controlling traffic to the App Service Environment.
* @member {boolean} [environmentIsHealthy] True/false indicating whether the
* App Service Environment is healthy.
* @member {string} [environmentStatus] Detailed message about with results of
* the last check of the App Service Environment.
* @member {string} [resourceGroup] Resource group of the App Service
* Environment.
* @member {number} [frontEndScaleFactor] Scale factor for front-ends.
* @member {number} [defaultFrontEndScaleFactor] Default Scale Factor for
* FrontEnds.
* @member {string} [apiManagementAccountId] API Management Account associated
* with the App Service Environment.
* @member {boolean} [suspended] true if the App Service
* Environment is suspended; otherwise, false. The environment can
* be suspended, e.g. when the management endpoint is no longer available
* (most likely because NSG blocked the incoming traffic).
* @member {boolean} [dynamicCacheEnabled] True/false indicating whether the
* App Service Environment is suspended. The environment can be suspended e.g.
* when the management endpoint is no longer available
* (most likely because NSG blocked the incoming traffic).
* @member {array} [clusterSettings] Custom settings for changing the behavior
* of the App Service Environment.
* @member {array} [userWhitelistedIpRanges] User added ip ranges to whitelist
* on ASE db
* @member {boolean} [hasLinuxWorkers] Flag that displays whether an ASE has
* linux workers or not
* @member {string} [sslCertKeyVaultId] Key Vault ID for ILB App Service
* Environment default SSL certificate
* @member {string} [sslCertKeyVaultSecretName] Key Vault Secret Name for ILB
* App Service Environment default SSL certificate
*/
export interface AppServiceEnvironmentResource extends Resource {
appServiceEnvironmentResourceName: string;
appServiceEnvironmentResourceLocation: string;
readonly provisioningState?: string;
readonly status?: string;
vnetName?: string;
vnetResourceGroupName?: string;
vnetSubnetName?: string;
virtualNetwork: VirtualNetworkProfile;
internalLoadBalancingMode?: string;
multiSize?: string;
multiRoleCount?: number;
workerPools: WorkerPool[];
ipsslAddressCount?: number;
readonly databaseEdition?: string;
readonly databaseServiceObjective?: string;
readonly upgradeDomains?: number;
readonly subscriptionId?: string;
dnsSuffix?: string;
readonly lastAction?: string;
readonly lastActionResult?: string;
readonly allowedMultiSizes?: string;
readonly allowedWorkerSizes?: string;
readonly maximumNumberOfMachines?: number;
readonly vipMappings?: VirtualIPMapping[];
readonly environmentCapacities?: StampCapacity[];
networkAccessControlList?: NetworkAccessControlEntry[];
readonly environmentIsHealthy?: boolean;
readonly environmentStatus?: string;
readonly resourceGroup?: string;
frontEndScaleFactor?: number;
readonly defaultFrontEndScaleFactor?: number;
apiManagementAccountId?: string;
suspended?: boolean;
dynamicCacheEnabled?: boolean;
clusterSettings?: NameValuePair[];
userWhitelistedIpRanges?: string[];
hasLinuxWorkers?: boolean;
sslCertKeyVaultId?: string;
sslCertKeyVaultSecretName?: string;
}
/**
* @class
* Initializes a new instance of the AppServiceEnvironmentPatchResource class.
* @constructor
* ARM resource for a app service enviroment.
*
* @member {string} appServiceEnvironmentPatchResourceName Name of the App
* Service Environment.
* @member {string} location Location of the App Service Environment, e.g.
* "West US".
* @member {string} [provisioningState] Provisioning state of the App Service
* Environment. Possible values include: 'Succeeded', 'Failed', 'Canceled',
* 'InProgress', 'Deleting'
* @member {string} [status] Current status of the App Service Environment.
* Possible values include: 'Preparing', 'Ready', 'Scaling', 'Deleting'
* @member {string} [vnetName] Name of the Virtual Network for the App Service
* Environment.
* @member {string} [vnetResourceGroupName] Resource group of the Virtual
* Network.
* @member {string} [vnetSubnetName] Subnet of the Virtual Network.
* @member {object} virtualNetwork Description of the Virtual Network.
* @member {string} [virtualNetwork.id] Resource id of the Virtual Network.
* @member {string} [virtualNetwork.name] Name of the Virtual Network
* (read-only).
* @member {string} [virtualNetwork.type] Resource type of the Virtual Network
* (read-only).
* @member {string} [virtualNetwork.subnet] Subnet within the Virtual Network.
* @member {string} [internalLoadBalancingMode] Specifies which endpoints to
* serve internally in the Virtual Network for the App Service Environment.
* Possible values include: 'None', 'Web', 'Publishing'
* @member {string} [multiSize] Front-end VM size, e.g. "Medium", "Large".
* @member {number} [multiRoleCount] Number of front-end instances.
* @member {array} workerPools Description of worker pools with worker size
* IDs, VM sizes, and number of workers in each pool.
* @member {number} [ipsslAddressCount] Number of IP SSL addresses reserved for
* the App Service Environment.
* @member {string} [databaseEdition] Edition of the metadata database for the
* App Service Environment, e.g. "Standard".
* @member {string} [databaseServiceObjective] Service objective of the
* metadata database for the App Service Environment, e.g. "S0".
* @member {number} [upgradeDomains] Number of upgrade domains of the App
* Service Environment.
* @member {string} [subscriptionId] Subscription of the App Service
* Environment.
* @member {string} [dnsSuffix] DNS suffix of the App Service Environment.
* @member {string} [lastAction] Last deployment action on the App Service
* Environment.
* @member {string} [lastActionResult] Result of the last deployment action on
* the App Service Environment.
* @member {string} [allowedMultiSizes] List of comma separated strings
* describing which VM sizes are allowed for front-ends.
* @member {string} [allowedWorkerSizes] List of comma separated strings
* describing which VM sizes are allowed for workers.
* @member {number} [maximumNumberOfMachines] Maximum number of VMs in the App
* Service Environment.
* @member {array} [vipMappings] Description of IP SSL mapping for the App
* Service Environment.
* @member {array} [environmentCapacities] Current total, used, and available
* worker capacities.
* @member {array} [networkAccessControlList] Access control list for
* controlling traffic to the App Service Environment.
* @member {boolean} [environmentIsHealthy] True/false indicating whether the
* App Service Environment is healthy.
* @member {string} [environmentStatus] Detailed message about with results of
* the last check of the App Service Environment.
* @member {string} [resourceGroup] Resource group of the App Service
* Environment.
* @member {number} [frontEndScaleFactor] Scale factor for front-ends.
* @member {number} [defaultFrontEndScaleFactor] Default Scale Factor for
* FrontEnds.
* @member {string} [apiManagementAccountId] API Management Account associated
* with the App Service Environment.
* @member {boolean} [suspended] true if the App Service
* Environment is suspended; otherwise, false. The environment can
* be suspended, e.g. when the management endpoint is no longer available
* (most likely because NSG blocked the incoming traffic).
* @member {boolean} [dynamicCacheEnabled] True/false indicating whether the
* App Service Environment is suspended. The environment can be suspended e.g.
* when the management endpoint is no longer available
* (most likely because NSG blocked the incoming traffic).
* @member {array} [clusterSettings] Custom settings for changing the behavior
* of the App Service Environment.
* @member {array} [userWhitelistedIpRanges] User added ip ranges to whitelist
* on ASE db
* @member {boolean} [hasLinuxWorkers] Flag that displays whether an ASE has
* linux workers or not
* @member {string} [sslCertKeyVaultId] Key Vault ID for ILB App Service
* Environment default SSL certificate
* @member {string} [sslCertKeyVaultSecretName] Key Vault Secret Name for ILB
* App Service Environment default SSL certificate
*/
export interface AppServiceEnvironmentPatchResource extends ProxyOnlyResource {
appServiceEnvironmentPatchResourceName: string;
location: string;
readonly provisioningState?: string;
readonly status?: string;
vnetName?: string;
vnetResourceGroupName?: string;
vnetSubnetName?: string;
virtualNetwork: VirtualNetworkProfile;
internalLoadBalancingMode?: string;
multiSize?: string;
multiRoleCount?: number;
workerPools: WorkerPool[];
ipsslAddressCount?: number;
readonly databaseEdition?: string;
readonly databaseServiceObjective?: string;
readonly upgradeDomains?: number;
readonly subscriptionId?: string;
dnsSuffix?: string;
readonly lastAction?: string;
readonly lastActionResult?: string;
readonly allowedMultiSizes?: string;
readonly allowedWorkerSizes?: string;
readonly maximumNumberOfMachines?: number;
readonly vipMappings?: VirtualIPMapping[];
readonly environmentCapacities?: StampCapacity[];
networkAccessControlList?: NetworkAccessControlEntry[];
readonly environmentIsHealthy?: boolean;
readonly environmentStatus?: string;
readonly resourceGroup?: string;
frontEndScaleFactor?: number;
readonly defaultFrontEndScaleFactor?: number;
apiManagementAccountId?: string;
suspended?: boolean;
dynamicCacheEnabled?: boolean;
clusterSettings?: NameValuePair[];
userWhitelistedIpRanges?: string[];
hasLinuxWorkers?: boolean;
sslCertKeyVaultId?: string;
sslCertKeyVaultSecretName?: string;
}
/**
* @class
* Initializes a new instance of the HostingEnvironmentDiagnostics class.
* @constructor
* Diagnostics for an App Service Environment.
*
* @member {string} [name] Name/identifier of the diagnostics.
* @member {string} [diagnosicsOutput] Diagnostics output.
*/
export interface HostingEnvironmentDiagnostics {
name?: string;
diagnosicsOutput?: string;
}
/**
* @class
* Initializes a new instance of the MetricAvailabilily class.
* @constructor
* Metric availability and retention.
*
* @member {string} [timeGrain] Time grain.
* @member {string} [retention] Retention period for the current time grain.
*/
export interface MetricAvailabilily {
timeGrain?: string;
retention?: string;
}
/**
* @class
* Initializes a new instance of the MetricDefinition class.
* @constructor
* Metadata for a metric.
*
* @member {string} [unit] Unit of the metric.
* @member {string} [primaryAggregationType] Primary aggregation type.
* @member {array} [metricAvailabilities] List of time grains supported for the
* metric together with retention period.
* @member {string} [displayName] Friendly name shown in the UI.
*/
export interface MetricDefinition extends ProxyOnlyResource {
readonly unit?: string;
readonly primaryAggregationType?: string;
readonly metricAvailabilities?: MetricAvailabilily[];
readonly displayName?: string;
}
/**
* @class
* Initializes a new instance of the SkuInfo class.
* @constructor
* SKU discovery information.
*
* @member {string} [resourceType] Resource type that this SKU applies to.
* @member {object} [sku] Name and tier of the SKU.
* @member {string} [sku.name] Name of the resource SKU.
* @member {string} [sku.tier] Service tier of the resource SKU.
* @member {string} [sku.size] Size specifier of the resource SKU.
* @member {string} [sku.family] Family code of the resource SKU.
* @member {number} [sku.capacity] Current number of instances assigned to the
* resource.
* @member {object} [sku.skuCapacity] Min, max, and default scale values of the
* SKU.
* @member {number} [sku.skuCapacity.minimum] Minimum number of workers for
* this App Service plan SKU.
* @member {number} [sku.skuCapacity.maximum] Maximum number of workers for
* this App Service plan SKU.
* @member {number} [sku.skuCapacity.default] Default number of workers for
* this App Service plan SKU.
* @member {string} [sku.skuCapacity.scaleType] Available scale configurations
* for an App Service plan.
* @member {array} [sku.locations] Locations of the SKU.
* @member {array} [sku.capabilities] Capabilities of the SKU, e.g., is traffic
* manager enabled?
* @member {object} [capacity] Min, max, and default scale values of the SKU.
* @member {number} [capacity.minimum] Minimum number of workers for this App
* Service plan SKU.
* @member {number} [capacity.maximum] Maximum number of workers for this App
* Service plan SKU.
* @member {number} [capacity.default] Default number of workers for this App
* Service plan SKU.
* @member {string} [capacity.scaleType] Available scale configurations for an
* App Service plan.
*/
export interface SkuInfo {
resourceType?: string;
sku?: SkuDescription;
capacity?: SkuCapacity;
}
/**
* @class
* Initializes a new instance of the Usage class.
* @constructor
* Usage of the quota resource.
*
* @member {string} [displayName] Friendly name shown in the UI.
* @member {string} [resourceName] Name of the quota resource.
* @member {string} [unit] Units of measurement for the quota resource.
* @member {number} [currentValue] The current value of the resource counter.
* @member {number} [limit] The resource limit.
* @member {date} [nextResetTime] Next reset time for the resource counter.
* @member {string} [computeMode] Compute mode used for this usage. Possible
* values include: 'Shared', 'Dedicated', 'Dynamic'
* @member {string} [siteMode] Site mode used for this usage.
*/
export interface Usage extends ProxyOnlyResource {
readonly displayName?: string;
readonly resourceName?: string;
readonly unit?: string;
readonly currentValue?: number;
readonly limit?: number;
readonly nextResetTime?: Date;
readonly computeMode?: string;
readonly siteMode?: string;
}
/**
* @class
* Initializes a new instance of the WorkerPoolResource class.
* @constructor
* Worker pool of an App Service Environment ARM resource.
*
* @member {number} [workerSizeId] Worker size ID for referencing this worker
* pool.
* @member {string} [computeMode] Shared or dedicated app hosting. Possible
* values include: 'Shared', 'Dedicated', 'Dynamic'
* @member {string} [workerSize] VM size of the worker pool instances.
* @member {number} [workerCount] Number of instances in the worker pool.
* @member {array} [instanceNames] Names of all instances in the worker pool
* (read only).
* @member {object} [sku]
* @member {string} [sku.name] Name of the resource SKU.
* @member {string} [sku.tier] Service tier of the resource SKU.
* @member {string} [sku.size] Size specifier of the resource SKU.
* @member {string} [sku.family] Family code of the resource SKU.
* @member {number} [sku.capacity] Current number of instances assigned to the
* resource.
* @member {object} [sku.skuCapacity] Min, max, and default scale values of the
* SKU.
* @member {number} [sku.skuCapacity.minimum] Minimum number of workers for
* this App Service plan SKU.
* @member {number} [sku.skuCapacity.maximum] Maximum number of workers for
* this App Service plan SKU.
* @member {number} [sku.skuCapacity.default] Default number of workers for
* this App Service plan SKU.
* @member {string} [sku.skuCapacity.scaleType] Available scale configurations
* for an App Service plan.
* @member {array} [sku.locations] Locations of the SKU.
* @member {array} [sku.capabilities] Capabilities of the SKU, e.g., is traffic
* manager enabled?
*/
export interface WorkerPoolResource extends ProxyOnlyResource {
workerSizeId?: number;
computeMode?: string;
workerSize?: string;
workerCount?: number;
readonly instanceNames?: string[];
sku?: SkuDescription;
}
/**
* @class
* Initializes a new instance of the AppServicePlanPatchResource class.
* @constructor
* ARM resource for a app service plan.
*
* @member {string} [workerTierName] Target worker tier assigned to the App
* Service plan.
* @member {string} [status] App Service plan status. Possible values include:
* 'Ready', 'Pending', 'Creating'
* @member {string} [subscription] App Service plan subscription.
* @member {string} [adminSiteName] App Service plan administration site.
* @member {object} [hostingEnvironmentProfile] Specification for the App
* Service Environment to use for the App Service plan.
* @member {string} [hostingEnvironmentProfile.id] Resource ID of the App
* Service Environment.
* @member {string} [hostingEnvironmentProfile.name] Name of the App Service
* Environment.
* @member {string} [hostingEnvironmentProfile.type] Resource type of the App
* Service Environment.
* @member {number} [maximumNumberOfWorkers] Maximum number of instances that
* can be assigned to this App Service plan.
* @member {string} [geoRegion] Geographical location for the App Service plan.
* @member {boolean} [perSiteScaling] If true, apps assigned to
* this App Service plan can be scaled independently.
* If false, apps assigned to this App Service plan will scale to
* all instances of the plan. Default value: false .
* @member {number} [maximumElasticWorkerCount] Maximum number of total workers
* allowed for this ElasticScaleEnabled App Service Plan
* @member {number} [numberOfSites] Number of apps assigned to this App Service
* plan.
* @member {boolean} [isSpot] If true, this App Service Plan owns
* spot instances.
* @member {date} [spotExpirationTime] The time when the server farm expires.
* Valid only if it is a spot server farm.
* @member {date} [freeOfferExpirationTime] The time when the server farm free
* offer expires.
* @member {string} [resourceGroup] Resource group of the App Service plan.
* @member {boolean} [reserved] If Linux app service plan true,
* false otherwise. Default value: false .
* @member {boolean} [isXenon] Obsolete: If Hyper-V container app service plan
* true, false otherwise. Default value: false .
* @member {boolean} [hyperV] If Hyper-V container app service plan
* true, false otherwise. Default value: false .
* @member {number} [targetWorkerCount] Scaling worker count.
* @member {number} [targetWorkerSizeId] Scaling worker size ID.
* @member {string} [provisioningState] Provisioning state of the App Service
* Environment. Possible values include: 'Succeeded', 'Failed', 'Canceled',
* 'InProgress', 'Deleting'
*/
export interface AppServicePlanPatchResource extends ProxyOnlyResource {
workerTierName?: string;
readonly status?: string;
readonly subscription?: string;
adminSiteName?: string;
hostingEnvironmentProfile?: HostingEnvironmentProfile;
readonly maximumNumberOfWorkers?: number;
readonly geoRegion?: string;
perSiteScaling?: boolean;
maximumElasticWorkerCount?: number;
readonly numberOfSites?: number;
isSpot?: boolean;
spotExpirationTime?: Date;
freeOfferExpirationTime?: Date;
readonly resourceGroup?: string;
reserved?: boolean;
isXenon?: boolean;
hyperV?: boolean;
targetWorkerCount?: number;
targetWorkerSizeId?: number;
readonly provisioningState?: string;
}
/**
* @class
* Initializes a new instance of the HybridConnectionLimits class.
* @constructor
* Hybrid Connection limits contract. This is used to return the plan limits of
* Hybrid Connections.
*
* @member {number} [current] The current number of Hybrid Connections.
* @member {number} [maximum] The maximum number of Hybrid Connections allowed.
*/
export interface HybridConnectionLimits extends ProxyOnlyResource {
readonly current?: number;
readonly maximum?: number;
}
/**
* @class
* Initializes a new instance of the ResourceHealthMetadata class.
* @constructor
* Used for getting ResourceHealthCheck settings.
*
* @member {string} [category] The category that the resource matches in the
* RHC Policy File
* @member {boolean} [signalAvailability] Is there a health signal for the
* resource
*/
export interface ResourceHealthMetadata extends ProxyOnlyResource {
category?: string;
signalAvailability?: boolean;
}
/**
* @class
* Initializes a new instance of the AppServiceCertificateOrderCollection class.
* @constructor
* Collection of certitificate orders.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface AppServiceCertificateOrderCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the AppServiceCertificateCollection class.
* @constructor
* Collection of certitificateorder certificates.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface AppServiceCertificateCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the CsmOperationCollection class.
* @constructor
* Collection of Azure resource manager operation metadata.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface CsmOperationCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DomainCollection class.
* @constructor
* Collection of domains.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DomainCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the NameIdentifierCollection class.
* @constructor
* Collection of domain name identifiers.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface NameIdentifierCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DomainOwnershipIdentifierCollection class.
* @constructor
* Collection of domain ownership identifiers.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DomainOwnershipIdentifierCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the TopLevelDomainCollection class.
* @constructor
* Collection of Top-level domains.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface TopLevelDomainCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the TldLegalAgreementCollection class.
* @constructor
* Collection of top-level domain legal agreements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface TldLegalAgreementCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the CertificateCollection class.
* @constructor
* Collection of certificates.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface CertificateCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DeletedWebAppCollection class.
* @constructor
* Collection of deleted apps.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DeletedWebAppCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DetectorResponseCollection class.
* @constructor
* Collection of detector responses
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DetectorResponseCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DiagnosticCategoryCollection class.
* @constructor
* Collection of Diagnostic Categories
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DiagnosticCategoryCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DiagnosticAnalysisCollection class.
* @constructor
* Collection of Diagnostic Analyses
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DiagnosticAnalysisCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DiagnosticDetectorCollection class.
* @constructor
* Collection of Diagnostic Detectors
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DiagnosticDetectorCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ApplicationStackCollection class.
* @constructor
* Collection of Application Stacks
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ApplicationStackCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the RecommendationCollection class.
* @constructor
* Collection of recommendations.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface RecommendationCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the SourceControlCollection class.
* @constructor
* Collection of source controls.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface SourceControlCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the BillingMeterCollection class.
* @constructor
* Collection of Billing Meters
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface BillingMeterCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the GeoRegionCollection class.
* @constructor
* Collection of geographical regions.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface GeoRegionCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the IdentifierCollection class.
* @constructor
* Collection of identifiers.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface IdentifierCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the PremierAddOnOfferCollection class.
* @constructor
* Collection of premier add-on offers.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface PremierAddOnOfferCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the WebAppCollection class.
* @constructor
* Collection of App Service apps.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface WebAppCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the BackupItemCollection class.
* @constructor
* Collection of backup items.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface BackupItemCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the SiteConfigResourceCollection class.
* @constructor
* Collection of site configurations.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface SiteConfigResourceCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the SiteConfigurationSnapshotInfoCollection class.
* @constructor
* Collection of metadata for the app configuration snapshots that can be
* restored.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface SiteConfigurationSnapshotInfoCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ContinuousWebJobCollection class.
* @constructor
* Collection of Kudu continuous web job information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ContinuousWebJobCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the DeploymentCollection class.
* @constructor
* Collection of app deployments.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface DeploymentCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the FunctionEnvelopeCollection class.
* @constructor
* Collection of Kudu function information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface FunctionEnvelopeCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the HostNameBindingCollection class.
* @constructor
* Collection of hostname bindings.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface HostNameBindingCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the WebAppInstanceCollection class.
* @constructor
* Collection of app instances.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface WebAppInstanceCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ProcessInfoCollection class.
* @constructor
* Collection of Kudu process information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ProcessInfoCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ProcessModuleInfoCollection class.
* @constructor
* Collection of Kudu thread information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ProcessModuleInfoCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ProcessThreadInfoCollection class.
* @constructor
* Collection of Kudu thread information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ProcessThreadInfoCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ResourceMetricDefinitionCollection class.
* @constructor
* Collection of metric definitions.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ResourceMetricDefinitionCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ResourceMetricCollection class.
* @constructor
* Collection of metric responses.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ResourceMetricCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the PerfMonCounterCollection class.
* @constructor
* Collection of performance monitor counters.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface PerfMonCounterCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the PublicCertificateCollection class.
* @constructor
* Collection of public certificates
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface PublicCertificateCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the SiteExtensionInfoCollection class.
* @constructor
* Collection of Kudu site extension information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface SiteExtensionInfoCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the SlotDifferenceCollection class.
* @constructor
* Collection of slot differences.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface SlotDifferenceCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the SnapshotCollection class.
* @constructor
* Collection of snapshots which can be used to revert an app to a previous
* time.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface SnapshotCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the TriggeredWebJobCollection class.
* @constructor
* Collection of Kudu continuous web job information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface TriggeredWebJobCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the TriggeredJobHistoryCollection class.
* @constructor
* Collection of Kudu continuous web job information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface TriggeredJobHistoryCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the CsmUsageQuotaCollection class.
* @constructor
* Collection of CSM usage quotas.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface CsmUsageQuotaCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the WebJobCollection class.
* @constructor
* Collection of Kudu web job information elements.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface WebJobCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the AppServiceEnvironmentCollection class.
* @constructor
* Collection of App Service Environments.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface AppServiceEnvironmentCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the StampCapacityCollection class.
* @constructor
* Collection of stamp capacities.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface StampCapacityCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the WorkerPoolCollection class.
* @constructor
* Collection of worker pools.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface WorkerPoolCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the SkuInfoCollection class.
* @constructor
* Collection of SKU information.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface SkuInfoCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the UsageCollection class.
* @constructor
* Collection of usages.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface UsageCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the AppServicePlanCollection class.
* @constructor
* Collection of App Service plans.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface AppServicePlanCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ResourceCollection class.
* @constructor
* Collection of resources.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ResourceCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the HybridConnectionCollection class.
* @constructor
* Collection of hostname bindings.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface HybridConnectionCollection extends Array {
readonly nextLink?: string;
}
/**
* @class
* Initializes a new instance of the ResourceHealthMetadataCollection class.
* @constructor
* Collection of resource health metadata.
*
* @member {string} [nextLink] Link to next page of resources.
*/
export interface ResourceHealthMetadataCollection extends Array {
readonly nextLink?: string;
}