import { SubResource } from 'types/index.js'; import { LinuxConfiguration, VirtualMachinePublicIPAddressConfiguration, WindowsConfiguration, DiskEncryptionSettings } from './index.js'; export type VirtualMachineApplicationProfile = { galleryApplications: VMGalleryApplication[]; }; export type VMGalleryApplication = { configurationReference: string; enableAutomaticUpgrade: boolean; order: number; packageReferenceId: string; tags: string; treatFailureAsDeploymentFailure: boolean; }; export type VirtualMachineBillingProfile = { maxPrice: number; }; export type VirtualMachineCapacityReservationProfile = { capacityReservationGroup: SubResource; }; export type VirtualMachineDiagnosticsProfile = { bootDiagnostics: VirtualMachineBootDiagnostics; }; export type VirtualMachineBootDiagnostics = { enabled: boolean; storageUri: string; }; export type VirtualMachineHardwareProfile = { vmSize: string; vmSizeProperties: VMSizeProperties; }; export type VMSizeProperties = { vCPUsAvailable: number; vCPUsPerCore: number; }; export type VirtualMachineNetworkProfile = { networkApiVersion: string; networkInterfaceConfigurations: VirtualMachineNetworkInterfaceConfiguration[]; networkInterfaces: NetworkInterfaceReference[]; }; export type NetworkInterfaceReference = { id: string; properties: { primary: boolean; deleteOption: string; }; }; export type VirtualMachineNetworkInterfaceConfiguration = { name: string; properties: { deleteOption: string; disableTcpStateTracking: boolean; dnsSettings: VirtualMachineNetworkInterfaceDnsSettingsConfiguration; dscpConfiguration: SubResource; enableAcceleratedNetworking: boolean; enableFpga: boolean; enableIPForwarding: boolean; ipConfigurations: VirtualMachineNetworkInterfaceIPConfiguration[]; networkSecurityGroup: SubResource; primary: boolean; }; }; export type VirtualMachineNetworkInterfaceDnsSettingsConfiguration = { dnsServers: string[]; }; export type VirtualMachineNetworkInterfaceIPConfiguration = { name: string; properties: { applicationGatewayBackendAddressPools: SubResource[]; applicationSecurityGroups: SubResource[]; loadBalancerBackendAddressPools: SubResource[]; primary: boolean; privateIPAddressVersion: string; publicIPAddressConfiguration: VirtualMachinePublicIPAddressConfiguration; subnet: SubResource; }; }; export type VirtualMachineOSProfile = { adminPassword: string; adminUsername: string; allowExtensionOperations: boolean; computerName: string; customData: string; linuxConfiguration: LinuxConfiguration; requireGuestProvisionSignal: boolean; secrets: VaultSecretGroup[]; windowsConfiguration: WindowsConfiguration; }; export type VaultSecretGroup = { sourceVault: SubResource; vaultCertificates: VaultCertificate[]; }; export type VaultCertificate = { certificateStore: string; certificateUrl: string; }; export type VirtualMachineScheduledEventsProfile = { osImageNotificationProfile: VirtualMachineOSImageNotificationProfile; terminateNotificationProfile: VirtualMachineTerminateNotificationProfile; }; export type VirtualMachineOSImageNotificationProfile = { enable: boolean; notBeforeTimeout: string; }; export type VirtualMachineTerminateNotificationProfile = { enable: boolean; notBeforeTimeout: string; }; export type VirtualMachineSecurityProfile = { encryptionAtHost: boolean; securityType: string; uefiSettings: VirtualMachineUefiSettings; }; export type VirtualMachineUefiSettings = { secureBootEnabled: boolean; vTpmEnabled: boolean; }; export type VirtualMachineStorageProfile = { dataDisks: VirtualMachineDataDisk[]; diskControllerType: string; imageReference: VirtualMachineImageReference; osDisk: VirtualMachineOSDisk; }; export type VirtualMachineDiffDiskSettings = { option: string; placement: string; }; export type VirtualMachineOSDisk = { caching: string; createOption: string; deleteOption: string; diffDiskSettings: VirtualMachineDiffDiskSettings; diskSizeGB: number; encryptionSettings: DiskEncryptionSettings; image: VirtualHardDisk; managedDisk: VirtualMachineManagedDiskParameters; name: string; osType: string; vhd: VirtualHardDisk; writeAcceleratorEnabled: boolean; }; export type VirtualMachineImageReference = { communityGalleryImageId: string; exactVersion: string; id: string; offer: string; publisher: string; sharedGalleryImageId: string; sku: string; version: string; }; export type VirtualHardDisk = { uri: string; }; export type VirtualMachineDataDisk = { caching: string; createOption: string; deleteOption: string; detachOption: string; diskIOPSReadWrite: number; diskMBpsReadWrite: number; diskSizeGB: number; image: VirtualHardDisk; lun: number; managedDisk: VirtualMachineManagedDiskParameters; name: string; vhd: VirtualHardDisk; writeAcceleratorEnabled: boolean; toBeDetached: boolean; }; export type VirtualMachineManagedDiskParameters = { diskEncryptionSet: DiskEncryptionSetParameters; id: string; securityProfile: VirtualMachineDiskSecurityProfile; storageAccountType: string; }; export type DiskEncryptionSetParameters = { id: string; }; export type VirtualMachineDiskSecurityProfile = { diskEncryptionSet: DiskEncryptionSetParameters; securityEncryptionType: string; };