import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface AdditionalCapabilities { ultraSSDEnabled?: Expressionable; } export interface AdditionalUnattendContent { passName?: Expressionable<('OobeSystem')>; componentName?: Expressionable<('Microsoft-Windows-Shell-Setup')>; settingName?: Expressionable<('AutoLogon' | 'FirstLogonCommands')>; content?: Expressionable; } export interface ApiEntityReference { id?: Expressionable; } export interface AutoOSUpgradePolicy { disableAutoRollback?: Expressionable; } export interface AvailabilitySetProperties { platformUpdateDomainCount?: Expressionable; platformFaultDomainCount?: Expressionable; virtualMachines?: Expressionable; } export interface BootDiagnostics { enabled?: Expressionable; storageUri?: Expressionable; } export interface CreationData { createOption: Expressionable<('Empty' | 'Attach' | 'FromImage' | 'Import' | 'Copy' | 'Restore')>; storageAccountId?: Expressionable; imageReference?: Expressionable; sourceUri?: Expressionable; sourceResourceId?: Expressionable; } export interface DataDisk { lun: Expressionable; name?: Expressionable; vhd?: Expressionable; image?: Expressionable; caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; writeAcceleratorEnabled?: Expressionable; createOption: Expressionable<('FromImage' | 'Empty' | 'Attach')>; diskSizeGB?: Expressionable; managedDisk?: Expressionable; } export interface DiagnosticsProfile { bootDiagnostics?: Expressionable; } export interface DiffDiskSettings { option?: Expressionable<('Local')>; } export interface Disallowed { diskTypes?: Expressionable; } export interface DiskEncryptionSettings { diskEncryptionKey?: Expressionable; keyEncryptionKey?: Expressionable; enabled?: Expressionable; } export interface DiskProperties { osType?: Expressionable<('Windows' | 'Linux')>; creationData: Expressionable; diskSizeGB?: Expressionable; encryptionSettings?: Expressionable; diskIOPSReadWrite?: Expressionable; diskMBpsReadWrite?: Expressionable; } export interface DiskSku { name?: Expressionable<('Standard_LRS' | 'Premium_LRS' | 'StandardSSD_LRS' | 'UltraSSD_LRS')>; } export interface EncryptionSettings { enabled?: Expressionable; diskEncryptionKey?: Expressionable; keyEncryptionKey?: Expressionable; } export interface GalleryArtifactSource { managedImage: Expressionable; } export interface GalleryIdentifier { } export interface GalleryImageIdentifier { publisher: Expressionable; offer: Expressionable; sku: Expressionable; } export interface GalleryImageProperties { description?: Expressionable; eula?: Expressionable; privacyStatementUri?: Expressionable; releaseNoteUri?: Expressionable; osType: Expressionable<('Windows' | 'Linux')>; osState: Expressionable<('Generalized' | 'Specialized')>; endOfLifeDate?: Expressionable; identifier: Expressionable; recommended?: Expressionable; disallowed?: Expressionable; purchasePlan?: Expressionable; } export interface GalleryImageVersionProperties { publishingProfile: Expressionable; } export interface GalleryImageVersionPublishingProfile { targetRegions?: Expressionable; source: Expressionable; replicaCount?: Expressionable; excludeFromLatest?: Expressionable; endOfLifeDate?: Expressionable; } export interface GalleryProperties { description?: Expressionable; identifier?: Expressionable; } export interface HardwareProfile { vmSize?: Expressionable<('Basic_A0' | 'Basic_A1' | 'Basic_A2' | 'Basic_A3' | 'Basic_A4' | 'Standard_A0' | 'Standard_A1' | 'Standard_A2' | 'Standard_A3' | 'Standard_A4' | 'Standard_A5' | 'Standard_A6' | 'Standard_A7' | 'Standard_A8' | 'Standard_A9' | 'Standard_A10' | 'Standard_A11' | 'Standard_A1_v2' | 'Standard_A2_v2' | 'Standard_A4_v2' | 'Standard_A8_v2' | 'Standard_A2m_v2' | 'Standard_A4m_v2' | 'Standard_A8m_v2' | 'Standard_B1s' | 'Standard_B1ms' | 'Standard_B2s' | 'Standard_B2ms' | 'Standard_B4ms' | 'Standard_B8ms' | 'Standard_D1' | 'Standard_D2' | 'Standard_D3' | 'Standard_D4' | 'Standard_D11' | 'Standard_D12' | 'Standard_D13' | 'Standard_D14' | 'Standard_D1_v2' | 'Standard_D2_v2' | 'Standard_D3_v2' | 'Standard_D4_v2' | 'Standard_D5_v2' | 'Standard_D2_v3' | 'Standard_D4_v3' | 'Standard_D8_v3' | 'Standard_D16_v3' | 'Standard_D32_v3' | 'Standard_D64_v3' | 'Standard_D2s_v3' | 'Standard_D4s_v3' | 'Standard_D8s_v3' | 'Standard_D16s_v3' | 'Standard_D32s_v3' | 'Standard_D64s_v3' | 'Standard_D11_v2' | 'Standard_D12_v2' | 'Standard_D13_v2' | 'Standard_D14_v2' | 'Standard_D15_v2' | 'Standard_DS1' | 'Standard_DS2' | 'Standard_DS3' | 'Standard_DS4' | 'Standard_DS11' | 'Standard_DS12' | 'Standard_DS13' | 'Standard_DS14' | 'Standard_DS1_v2' | 'Standard_DS2_v2' | 'Standard_DS3_v2' | 'Standard_DS4_v2' | 'Standard_DS5_v2' | 'Standard_DS11_v2' | 'Standard_DS12_v2' | 'Standard_DS13_v2' | 'Standard_DS14_v2' | 'Standard_DS15_v2' | 'Standard_DS13-4_v2' | 'Standard_DS13-2_v2' | 'Standard_DS14-8_v2' | 'Standard_DS14-4_v2' | 'Standard_E2_v3' | 'Standard_E4_v3' | 'Standard_E8_v3' | 'Standard_E16_v3' | 'Standard_E32_v3' | 'Standard_E64_v3' | 'Standard_E2s_v3' | 'Standard_E4s_v3' | 'Standard_E8s_v3' | 'Standard_E16s_v3' | 'Standard_E32s_v3' | 'Standard_E64s_v3' | 'Standard_E32-16_v3' | 'Standard_E32-8s_v3' | 'Standard_E64-32s_v3' | 'Standard_E64-16s_v3' | 'Standard_F1' | 'Standard_F2' | 'Standard_F4' | 'Standard_F8' | 'Standard_F16' | 'Standard_F1s' | 'Standard_F2s' | 'Standard_F4s' | 'Standard_F8s' | 'Standard_F16s' | 'Standard_F2s_v2' | 'Standard_F4s_v2' | 'Standard_F8s_v2' | 'Standard_F16s_v2' | 'Standard_F32s_v2' | 'Standard_F64s_v2' | 'Standard_F72s_v2' | 'Standard_G1' | 'Standard_G2' | 'Standard_G3' | 'Standard_G4' | 'Standard_G5' | 'Standard_GS1' | 'Standard_GS2' | 'Standard_GS3' | 'Standard_GS4' | 'Standard_GS5' | 'Standard_GS4-8' | 'Standard_GS4-4' | 'Standard_GS5-16' | 'Standard_GS5-8' | 'Standard_H8' | 'Standard_H16' | 'Standard_H8m' | 'Standard_H16m' | 'Standard_H16r' | 'Standard_H16mr' | 'Standard_L4s' | 'Standard_L8s' | 'Standard_L16s' | 'Standard_L32s' | 'Standard_M64s' | 'Standard_M64ms' | 'Standard_M128s' | 'Standard_M128ms' | 'Standard_M64-32ms' | 'Standard_M64-16ms' | 'Standard_M128-64ms' | 'Standard_M128-32ms' | 'Standard_NC6' | 'Standard_NC12' | 'Standard_NC24' | 'Standard_NC24r' | 'Standard_NC6s_v2' | 'Standard_NC12s_v2' | 'Standard_NC24s_v2' | 'Standard_NC24rs_v2' | 'Standard_NC6s_v3' | 'Standard_NC12s_v3' | 'Standard_NC24s_v3' | 'Standard_NC24rs_v3' | 'Standard_ND6s' | 'Standard_ND12s' | 'Standard_ND24s' | 'Standard_ND24rs' | 'Standard_NV6' | 'Standard_NV12' | 'Standard_NV24')>; } export interface ImageDataDisk { lun: Expressionable; snapshot?: Expressionable; managedDisk?: Expressionable; blobUri?: Expressionable; caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; diskSizeGB?: Expressionable; storageAccountType?: Expressionable<('Standard_LRS' | 'Premium_LRS' | 'StandardSSD_LRS' | 'UltraSSD_LRS')>; } export interface ImageDiskReference { id: Expressionable; lun?: Expressionable; } export interface ImageOSDisk { osType: Expressionable<('Windows' | 'Linux')>; osState: Expressionable<('Generalized' | 'Specialized')>; snapshot?: Expressionable; managedDisk?: Expressionable; blobUri?: Expressionable; caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; diskSizeGB?: Expressionable; storageAccountType?: Expressionable<('Standard_LRS' | 'Premium_LRS' | 'StandardSSD_LRS' | 'UltraSSD_LRS')>; } export interface ImageProperties { sourceVirtualMachine?: Expressionable; storageProfile?: Expressionable; } export interface ImagePurchasePlan { name?: Expressionable; publisher?: Expressionable; product?: Expressionable; } export interface ImageReference { id?: Expressionable; publisher?: Expressionable; offer?: Expressionable; sku?: Expressionable; version?: Expressionable; } export interface ImageStorageProfile { osDisk?: Expressionable; dataDisks?: Expressionable; zoneResilient?: Expressionable; } export interface InstanceViewStatus { code?: Expressionable; level?: Expressionable<('Info' | 'Warning' | 'Error')>; displayStatus?: Expressionable; message?: Expressionable; time?: Expressionable; } export interface KeyVaultAndKeyReference { sourceVault: Expressionable; keyUrl: Expressionable; } export interface KeyVaultAndSecretReference { sourceVault: Expressionable; secretUrl: Expressionable; } export interface KeyVaultKeyReference { keyUrl: Expressionable; sourceVault: Expressionable; } export interface KeyVaultSecretReference { secretUrl: Expressionable; sourceVault: Expressionable; } export interface LinuxConfiguration { disablePasswordAuthentication?: Expressionable; ssh?: Expressionable; provisionVMAgent?: Expressionable; } export interface ManagedArtifact { id: Expressionable; } export interface ManagedDiskParameters { id?: Expressionable; storageAccountType?: Expressionable<('Standard_LRS' | 'Premium_LRS' | 'StandardSSD_LRS' | 'UltraSSD_LRS')>; } export interface NetworkInterfaceReference { id?: Expressionable; properties?: Expressionable; } export interface NetworkInterfaceReferenceProperties { primary?: Expressionable; } export interface NetworkProfile { networkInterfaces?: Expressionable; } export interface OSDisk { osType?: Expressionable<('Windows' | 'Linux')>; encryptionSettings?: Expressionable; name?: Expressionable; vhd?: Expressionable; image?: Expressionable; caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; writeAcceleratorEnabled?: Expressionable; diffDiskSettings?: Expressionable; createOption: Expressionable<('FromImage' | 'Empty' | 'Attach')>; diskSizeGB?: Expressionable; managedDisk?: Expressionable; } export interface OSProfile { computerName?: Expressionable; adminUsername?: Expressionable; adminPassword?: Expressionable; customData?: Expressionable; windowsConfiguration?: Expressionable; linuxConfiguration?: Expressionable; secrets?: Expressionable; allowExtensionOperations?: Expressionable; } export interface Plan { name?: Expressionable; publisher?: Expressionable; product?: Expressionable; promotionCode?: Expressionable; } export interface RecommendedMachineConfiguration { vCPUs?: Expressionable; memory?: Expressionable; } export interface ResourceRange { min?: Expressionable; max?: Expressionable; } export interface RollingUpgradePolicy { maxBatchInstancePercent?: Expressionable; maxUnhealthyInstancePercent?: Expressionable; maxUnhealthyUpgradedInstancePercent?: Expressionable; pauseTimeBetweenBatches?: Expressionable; } export interface Sku { name?: Expressionable; tier?: Expressionable; capacity?: Expressionable; } export interface SnapshotProperties { osType?: Expressionable<('Windows' | 'Linux')>; creationData: Expressionable; diskSizeGB?: Expressionable; encryptionSettings?: Expressionable; } export interface SnapshotSku { name?: Expressionable<('Standard_LRS' | 'Premium_LRS' | 'Standard_ZRS')>; } export interface SourceVault { id?: Expressionable; } export interface SshConfiguration { publicKeys?: Expressionable; } export interface SshPublicKey { path?: Expressionable; keyData?: Expressionable; } export interface StorageProfile { imageReference?: Expressionable; osDisk?: Expressionable; dataDisks?: Expressionable; } export interface SubResource { id?: Expressionable; } export interface TargetRegion { name: Expressionable; regionalReplicaCount?: Expressionable; } export interface UpgradePolicy { mode?: Expressionable<('Automatic' | 'Manual' | 'Rolling')>; rollingUpgradePolicy?: Expressionable; automaticOSUpgrade?: Expressionable; autoOSUpgradePolicy?: Expressionable; } export interface VaultCertificate { certificateUrl?: Expressionable; certificateStore?: Expressionable; } export interface VaultSecretGroup { sourceVault?: Expressionable; vaultCertificates?: Expressionable; } export interface VirtualHardDisk { uri?: Expressionable; } export interface VirtualMachineExtensionInstanceView { name?: Expressionable; type?: Expressionable; typeHandlerVersion?: Expressionable; substatuses?: Expressionable; statuses?: Expressionable; } export interface VirtualMachineExtensionProperties { forceUpdateTag?: Expressionable; publisher?: Expressionable; type?: Expressionable; typeHandlerVersion?: Expressionable; autoUpgradeMinorVersion?: Expressionable; settings?: Expressionable; protectedSettings?: Expressionable; instanceView?: Expressionable; } export interface VirtualMachineIdentity { type?: Expressionable<('SystemAssigned' | 'UserAssigned' | 'SystemAssigned, UserAssigned' | 'None')>; } export interface VirtualMachineIdentityUserAssignedIdentitiesValue { } export interface VirtualMachineProperties { hardwareProfile?: Expressionable; storageProfile?: Expressionable; additionalCapabilities?: Expressionable; osProfile?: Expressionable; networkProfile?: Expressionable; diagnosticsProfile?: Expressionable; availabilitySet?: Expressionable; licenseType?: Expressionable; } export interface VirtualMachineScaleSetDataDisk { name?: Expressionable; lun: Expressionable; caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; writeAcceleratorEnabled?: Expressionable; createOption: Expressionable<('FromImage' | 'Empty' | 'Attach')>; diskSizeGB?: Expressionable; managedDisk?: Expressionable; } export interface VirtualMachineScaleSetExtension { name?: Expressionable; properties?: Expressionable; } export interface VirtualMachineScaleSetExtensionProfile { extensions?: Expressionable; } export interface VirtualMachineScaleSetExtensionProperties { forceUpdateTag?: Expressionable; publisher?: Expressionable; type?: Expressionable; typeHandlerVersion?: Expressionable; autoUpgradeMinorVersion?: Expressionable; settings?: Expressionable; protectedSettings?: Expressionable; } export interface VirtualMachineScaleSetIdentity { type?: Expressionable<('SystemAssigned' | 'UserAssigned' | 'SystemAssigned, UserAssigned' | 'None')>; } export interface VirtualMachineScaleSetIdentityUserAssignedIdentitiesValue { } export interface VirtualMachineScaleSetIPConfiguration { id?: Expressionable; name: Expressionable; properties?: Expressionable; } export interface VirtualMachineScaleSetIPConfigurationProperties { subnet?: Expressionable; primary?: Expressionable; publicIPAddressConfiguration?: Expressionable; privateIPAddressVersion?: Expressionable<('IPv4' | 'IPv6')>; applicationGatewayBackendAddressPools?: Expressionable; applicationSecurityGroups?: Expressionable; loadBalancerBackendAddressPools?: Expressionable; loadBalancerInboundNatPools?: Expressionable; } export interface VirtualMachineScaleSetIpTag { ipTagType?: Expressionable; tag?: Expressionable; } export interface VirtualMachineScaleSetManagedDiskParameters { storageAccountType?: Expressionable<('Standard_LRS' | 'Premium_LRS' | 'StandardSSD_LRS' | 'UltraSSD_LRS')>; } export interface VirtualMachineScaleSetNetworkConfiguration { id?: Expressionable; name: Expressionable; properties?: Expressionable; } export interface VirtualMachineScaleSetNetworkConfigurationDnsSettings { dnsServers?: Expressionable; } export interface VirtualMachineScaleSetNetworkConfigurationProperties { primary?: Expressionable; enableAcceleratedNetworking?: Expressionable; networkSecurityGroup?: Expressionable; dnsSettings?: Expressionable; ipConfigurations: Expressionable; enableIPForwarding?: Expressionable; } export interface VirtualMachineScaleSetNetworkProfile { healthProbe?: Expressionable; networkInterfaceConfigurations?: Expressionable; } export interface VirtualMachineScaleSetOSDisk { name?: Expressionable; caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; writeAcceleratorEnabled?: Expressionable; createOption: Expressionable<('FromImage' | 'Empty' | 'Attach')>; diffDiskSettings?: Expressionable; diskSizeGB?: Expressionable; osType?: Expressionable<('Windows' | 'Linux')>; image?: Expressionable; vhdContainers?: Expressionable; managedDisk?: Expressionable; } export interface VirtualMachineScaleSetOSProfile { computerNamePrefix?: Expressionable; adminUsername?: Expressionable; adminPassword?: Expressionable; customData?: Expressionable; windowsConfiguration?: Expressionable; linuxConfiguration?: Expressionable; secrets?: Expressionable; } export interface VirtualMachineScaleSetProperties { upgradePolicy?: Expressionable; virtualMachineProfile?: Expressionable; overprovision?: Expressionable; singlePlacementGroup?: Expressionable; zoneBalance?: Expressionable; platformFaultDomainCount?: Expressionable; } export interface VirtualMachineScaleSetPublicIPAddressConfiguration { name: Expressionable; properties?: Expressionable; } export interface VirtualMachineScaleSetPublicIPAddressConfigurationDnsSettings { domainNameLabel: Expressionable; } export interface VirtualMachineScaleSetPublicIPAddressConfigurationProperties { idleTimeoutInMinutes?: Expressionable; dnsSettings?: Expressionable; ipTags?: Expressionable; publicIPPrefix?: Expressionable; } export interface VirtualMachineScaleSetStorageProfile { imageReference?: Expressionable; osDisk?: Expressionable; dataDisks?: Expressionable; } export interface VirtualMachineScaleSetVMProfile { osProfile?: Expressionable; storageProfile?: Expressionable; additionalCapabilities?: Expressionable; networkProfile?: Expressionable; diagnosticsProfile?: Expressionable; extensionProfile?: Expressionable; licenseType?: Expressionable; priority?: Expressionable<('Regular' | 'Low')>; evictionPolicy?: Expressionable<('Deallocate' | 'Delete')>; } export interface VirtualMachineScaleSetVMProperties { hardwareProfile?: Expressionable; storageProfile?: Expressionable; additionalCapabilities?: Expressionable; osProfile?: Expressionable; networkProfile?: Expressionable; diagnosticsProfile?: Expressionable; availabilitySet?: Expressionable; licenseType?: Expressionable; } export interface WindowsConfiguration { provisionVMAgent?: Expressionable; enableAutomaticUpdates?: Expressionable; timeZone?: Expressionable; additionalUnattendContent?: Expressionable; winRM?: Expressionable; } export interface WinRMConfiguration { listeners?: Expressionable; } export interface WinRMListener { protocol?: Expressionable<('Http' | 'Https')>; certificateUrl?: Expressionable; } export declare namespace availabilitySets { interface AdditionalProps { sku?: Expressionable; } type AvailabilitySetsResource = ResourceDefinition; function create(name: Expressionable, properties: AvailabilitySetProperties, location: Expressionable, sku?: Expressionable): AvailabilitySetsResource; } export declare namespace disks { interface AdditionalProps { sku?: Expressionable; zones?: Expressionable; } type DisksResource = ResourceDefinition; function create(name: Expressionable, properties: DiskProperties, location: Expressionable, sku?: Expressionable, zones?: Expressionable): DisksResource; } export declare namespace galleries { type GalleriesResource = ResourceDefinition; function create(name: Expressionable, properties: GalleryProperties, location: Expressionable): GalleriesResource; } export declare namespace galleries { namespace images { type ImagesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: GalleryImageProperties, location: Expressionable): ImagesResource; } } export declare namespace galleries { namespace images { namespace versions { type VersionsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: GalleryImageVersionProperties, location: Expressionable): VersionsResource; } } } export declare namespace images { type ImagesResource = ResourceDefinition; function create(name: Expressionable, properties: ImageProperties, location: Expressionable): ImagesResource; } export declare namespace snapshots { interface AdditionalProps { sku?: Expressionable; } type SnapshotsResource = ResourceDefinition; function create(name: Expressionable, properties: SnapshotProperties, location: Expressionable, sku?: Expressionable): SnapshotsResource; } export declare namespace virtualMachines { interface AdditionalProps { identity?: Expressionable; zones?: Expressionable; plan?: Expressionable; } type VirtualMachinesResource = ResourceDefinition; function create(name: Expressionable, properties: VirtualMachineProperties, location: Expressionable, identity?: Expressionable, zones?: Expressionable, plan?: Expressionable): VirtualMachinesResource; } export declare namespace virtualMachineScaleSets { interface AdditionalProps { identity?: Expressionable; sku?: Expressionable; zones?: Expressionable; plan?: Expressionable; } type VirtualMachineScaleSetsResource = ResourceDefinition; function create(name: Expressionable, properties: VirtualMachineScaleSetProperties, location: Expressionable, identity?: Expressionable, sku?: Expressionable, zones?: Expressionable, plan?: Expressionable): VirtualMachineScaleSetsResource; } export declare namespace virtualMachineScaleSets { namespace virtualmachines { interface AdditionalProps { plan?: Expressionable; } type VirtualmachinesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: VirtualMachineScaleSetVMProperties, location: Expressionable, plan?: Expressionable): VirtualmachinesResource; } }