import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface ApplicableSchedule { location?: Expressionable; properties: Expressionable; tags?: Expressionable; } export interface ApplicableScheduleProperties { labVmsShutdown?: Expressionable; labVmsStartup?: Expressionable; } export interface ArmTemplateParameterProperties { name?: Expressionable; value?: Expressionable; } export interface ArtifactDeploymentStatusProperties { artifactsApplied?: Expressionable; deploymentStatus?: Expressionable; totalArtifacts?: Expressionable; } export interface ArtifactInstallProperties { artifactId?: Expressionable; deploymentStatusMessage?: Expressionable; installTime?: Expressionable; parameters?: Expressionable; status?: Expressionable; vmExtensionStatusMessage?: Expressionable; } export interface ArtifactParameterProperties { name?: Expressionable; value?: Expressionable; } export interface ArtifactSourceProperties { armTemplateFolderPath?: Expressionable; branchRef?: Expressionable; displayName?: Expressionable; folderPath?: Expressionable; provisioningState?: Expressionable; securityToken?: Expressionable; sourceType?: Expressionable<('VsoGit' | 'GitHub')>; status?: Expressionable<('Enabled' | 'Disabled')>; uniqueIdentifier?: Expressionable; uri?: Expressionable; } export interface BulkCreationParameters { instanceCount?: Expressionable; } export interface ComputeDataDisk { diskSizeGiB?: Expressionable; diskUri?: Expressionable; managedDiskId?: Expressionable; name?: Expressionable; } export interface ComputeVmInstanceViewStatus { code?: Expressionable; displayStatus?: Expressionable; message?: Expressionable; } export interface ComputeVmProperties { dataDiskIds?: Expressionable; dataDisks?: Expressionable; networkInterfaceId?: Expressionable; osDiskId?: Expressionable; osType?: Expressionable; statuses?: Expressionable; vmSize?: Expressionable; } export interface CostThresholdProperties { displayOnChart?: Expressionable<('Enabled' | 'Disabled')>; notificationSent?: Expressionable; percentageThreshold?: Expressionable; sendNotificationWhenExceeded?: Expressionable<('Enabled' | 'Disabled')>; thresholdId?: Expressionable; } export interface CustomImageProperties { author?: Expressionable; description?: Expressionable; managedImageId?: Expressionable; provisioningState?: Expressionable; uniqueIdentifier?: Expressionable; vhd?: Expressionable; vm?: Expressionable; } export interface CustomImagePropertiesCustom { imageName?: Expressionable; osType: Expressionable<('Windows' | 'Linux' | 'None')>; sysPrep?: Expressionable; } export interface CustomImagePropertiesFromVm { linuxOsInfo?: Expressionable; sourceVmId?: Expressionable; windowsOsInfo?: Expressionable; } export interface DayDetails { time?: Expressionable; } export interface DiskProperties { diskBlobName?: Expressionable; diskSizeGiB?: Expressionable; diskType?: Expressionable<('Standard' | 'Premium')>; diskUri?: Expressionable; hostCaching?: Expressionable; leasedByLabVmId?: Expressionable; managedDiskId?: Expressionable; provisioningState?: Expressionable; uniqueIdentifier?: Expressionable; } export interface EnvironmentDeploymentProperties { armTemplateId?: Expressionable; parameters?: Expressionable; } export interface EnvironmentProperties { armTemplateDisplayName?: Expressionable; deploymentProperties?: Expressionable; provisioningState?: Expressionable; uniqueIdentifier?: Expressionable; } export interface Event { eventName?: Expressionable<('AutoShutdown' | 'Cost')>; } export interface ExternalSubnet { id?: Expressionable; name?: Expressionable; } export interface FormulaProperties { author?: Expressionable; description?: Expressionable; formulaContent?: Expressionable; osType?: Expressionable; provisioningState?: Expressionable; uniqueIdentifier?: Expressionable; vm?: Expressionable; } export interface FormulaPropertiesFromVm { labVmId?: Expressionable; } export interface GalleryImageReference { offer?: Expressionable; osType?: Expressionable; publisher?: Expressionable; sku?: Expressionable; version?: Expressionable; } export interface HourDetails { minute?: Expressionable; } export interface IdentityProperties { clientSecretUrl?: Expressionable; principalId?: Expressionable; tenantId?: Expressionable; type?: Expressionable; } export interface InboundNatRule { backendPort?: Expressionable; frontendPort?: Expressionable; transportProtocol?: Expressionable<('Tcp' | 'Udp')>; } export interface LabCostProperties { createdDate?: Expressionable; currencyCode?: Expressionable; endDateTime?: Expressionable; provisioningState?: Expressionable; startDateTime?: Expressionable; targetCost?: Expressionable; uniqueIdentifier?: Expressionable; } export interface LabProperties { labStorageType?: Expressionable<('Standard' | 'Premium')>; premiumDataDisks?: Expressionable<('Disabled' | 'Enabled')>; provisioningState?: Expressionable; uniqueIdentifier?: Expressionable; } export interface LabVirtualMachineCreationParameter { location?: Expressionable; name?: Expressionable; properties?: Expressionable; tags?: Expressionable; } export interface LabVirtualMachineCreationParameterProperties { allowClaim?: Expressionable; applicableSchedule?: Expressionable; artifactDeploymentStatus?: Expressionable; artifacts?: Expressionable; bulkCreationParameters?: Expressionable; computeVm?: Expressionable; createdByUser?: Expressionable; createdByUserId?: Expressionable; createdDate?: Expressionable; customImageId?: Expressionable; disallowPublicIpAddress?: Expressionable; environmentId?: Expressionable; expirationDate?: Expressionable; fqdn?: Expressionable; galleryImageReference?: Expressionable; isAuthenticationWithSshKey?: Expressionable; labSubnetName?: Expressionable; labVirtualNetworkId?: Expressionable; networkInterface?: Expressionable; notes?: Expressionable; osType?: Expressionable; ownerObjectId?: Expressionable; ownerUserPrincipalName?: Expressionable; password?: Expressionable; provisioningState?: Expressionable; size?: Expressionable; sshKey?: Expressionable; storageType?: Expressionable; uniqueIdentifier?: Expressionable; userName?: Expressionable; virtualMachineCreationSource?: Expressionable<('FromCustomImage' | 'FromGalleryImage')>; } export interface LabVirtualMachineProperties { allowClaim?: Expressionable; applicableSchedule?: Expressionable; artifactDeploymentStatus?: Expressionable; artifacts?: Expressionable; computeVm?: Expressionable; createdByUser?: Expressionable; createdByUserId?: Expressionable; createdDate?: Expressionable; customImageId?: Expressionable; disallowPublicIpAddress?: Expressionable; environmentId?: Expressionable; expirationDate?: Expressionable; fqdn?: Expressionable; galleryImageReference?: Expressionable; isAuthenticationWithSshKey?: Expressionable; labSubnetName?: Expressionable; labVirtualNetworkId?: Expressionable; networkInterface?: Expressionable; notes?: Expressionable; osType?: Expressionable; ownerObjectId?: Expressionable; ownerUserPrincipalName?: Expressionable; password?: Expressionable; provisioningState?: Expressionable; size?: Expressionable; sshKey?: Expressionable; storageType?: Expressionable; uniqueIdentifier?: Expressionable; userName?: Expressionable; virtualMachineCreationSource?: Expressionable<('FromCustomImage' | 'FromGalleryImage')>; } export interface LinuxOsInfo { linuxOsState?: Expressionable<('NonDeprovisioned' | 'DeprovisionRequested' | 'DeprovisionApplied')>; } export interface NetworkInterfaceProperties { dnsName?: Expressionable; privateIpAddress?: Expressionable; publicIpAddress?: Expressionable; publicIpAddressId?: Expressionable; rdpAuthority?: Expressionable; sharedPublicIpAddressConfiguration?: Expressionable; sshAuthority?: Expressionable; subnetId?: Expressionable; virtualNetworkId?: Expressionable; } export interface NotificationChannelProperties { description?: Expressionable; events?: Expressionable; provisioningState?: Expressionable; uniqueIdentifier?: Expressionable; webHookUrl?: Expressionable; } export interface NotificationSettings { status?: Expressionable<('Disabled' | 'Enabled')>; timeInMinutes?: Expressionable; webhookUrl?: Expressionable; } export interface PercentageCostThresholdProperties { thresholdValue?: Expressionable; } export interface PolicyProperties { description?: Expressionable; evaluatorType?: Expressionable<('AllowedValuesPolicy' | 'MaxValuePolicy')>; factData?: Expressionable; factName?: Expressionable<('UserOwnedLabVmCount' | 'UserOwnedLabPremiumVmCount' | 'LabVmCount' | 'LabPremiumVmCount' | 'LabVmSize' | 'GalleryImage' | 'UserOwnedLabVmCountInSubnet' | 'LabTargetCost')>; provisioningState?: Expressionable; status?: Expressionable<('Enabled' | 'Disabled')>; threshold?: Expressionable; uniqueIdentifier?: Expressionable; } export interface Port { backendPort?: Expressionable; transportProtocol?: Expressionable<('Tcp' | 'Udp')>; } export interface Schedule { location?: Expressionable; properties: Expressionable; tags?: Expressionable; } export interface ScheduleProperties { dailyRecurrence?: Expressionable; hourlyRecurrence?: Expressionable; notificationSettings?: Expressionable; provisioningState?: Expressionable; status?: Expressionable<('Enabled' | 'Disabled')>; targetResourceId?: Expressionable; taskType?: Expressionable; timeZoneId?: Expressionable; uniqueIdentifier?: Expressionable; weeklyRecurrence?: Expressionable; } export interface SecretProperties { provisioningState?: Expressionable; uniqueIdentifier?: Expressionable; value?: Expressionable; } export interface SharedPublicIpAddressConfiguration { inboundNatRules?: Expressionable; } export interface Subnet { allowPublicIp?: Expressionable<('Default' | 'Deny' | 'Allow')>; labSubnetName?: Expressionable; resourceId?: Expressionable; } export interface SubnetOverride { labSubnetName?: Expressionable; resourceId?: Expressionable; sharedPublicIpAddressConfiguration?: Expressionable; useInVmCreationPermission?: Expressionable<('Default' | 'Deny' | 'Allow')>; usePublicIpAddressPermission?: Expressionable<('Default' | 'Deny' | 'Allow')>; virtualNetworkPoolName?: Expressionable; } export interface SubnetSharedPublicIpAddressConfiguration { allowedPorts?: Expressionable; } export interface TargetCostProperties { costThresholds?: Expressionable; cycleEndDateTime?: Expressionable; cycleStartDateTime?: Expressionable; cycleType?: Expressionable<('CalendarMonth' | 'Custom')>; status?: Expressionable<('Enabled' | 'Disabled')>; target?: Expressionable; } export interface UserIdentity { appId?: Expressionable; objectId?: Expressionable; principalId?: Expressionable; principalName?: Expressionable; tenantId?: Expressionable; } export interface UserProperties { identity?: Expressionable; provisioningState?: Expressionable; secretStore?: Expressionable; uniqueIdentifier?: Expressionable; } export interface UserSecretStore { keyVaultId?: Expressionable; keyVaultUri?: Expressionable; } export interface VirtualNetworkProperties { allowedSubnets?: Expressionable; description?: Expressionable; externalProviderResourceId?: Expressionable; externalSubnets?: Expressionable; provisioningState?: Expressionable; subnetOverrides?: Expressionable; uniqueIdentifier?: Expressionable; } export interface WeekDetails { time?: Expressionable; weekdays?: Expressionable; } export interface WindowsOsInfo { windowsOsState?: Expressionable<('NonSysprepped' | 'SysprepRequested' | 'SysprepApplied')>; } export declare namespace labs { interface AdditionalProps { tags?: Expressionable; } type LabsResource = ResourceDefinition; function create(name: Expressionable, properties: LabProperties, location?: Expressionable, tags?: Expressionable): LabsResource; } export declare namespace labs { namespace artifactsources { interface AdditionalProps { tags?: Expressionable; } type ArtifactsourcesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ArtifactSourceProperties, location?: Expressionable, tags?: Expressionable): ArtifactsourcesResource; } } export declare namespace labs { namespace costs { interface AdditionalProps { tags?: Expressionable; } type CostsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: LabCostProperties, location?: Expressionable, tags?: Expressionable): CostsResource; } } export declare namespace labs { namespace customimages { interface AdditionalProps { tags?: Expressionable; } type CustomimagesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: CustomImageProperties, location?: Expressionable, tags?: Expressionable): CustomimagesResource; } } export declare namespace labs { namespace formulas { interface AdditionalProps { tags?: Expressionable; } type FormulasResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: FormulaProperties, location?: Expressionable, tags?: Expressionable): FormulasResource; } } export declare namespace labs { namespace notificationchannels { interface AdditionalProps { tags?: Expressionable; } type NotificationchannelsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: NotificationChannelProperties, location?: Expressionable, tags?: Expressionable): NotificationchannelsResource; } } export declare namespace labs { namespace policysets { namespace policies { interface AdditionalProps { tags?: Expressionable; } type PoliciesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: PolicyProperties, location?: Expressionable, tags?: Expressionable): PoliciesResource; } } } export declare namespace labs { namespace schedules { type SchedulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ScheduleProperties): SchedulesResource; } } export declare namespace labs { namespace servicerunners { interface AdditionalProps { identity?: Expressionable; tags?: Expressionable; } type ServicerunnersResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: any, location?: Expressionable, identity?: Expressionable, tags?: Expressionable): ServicerunnersResource; } } export declare namespace labs { namespace users { interface AdditionalProps { tags?: Expressionable; } type UsersResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: UserProperties, location?: Expressionable, tags?: Expressionable): UsersResource; } } export declare namespace labs { namespace users { namespace disks { interface AdditionalProps { tags?: Expressionable; } type DisksResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: DiskProperties, location?: Expressionable, tags?: Expressionable): DisksResource; } } } export declare namespace labs { namespace users { namespace environments { interface AdditionalProps { tags?: Expressionable; } type EnvironmentsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: EnvironmentProperties, location?: Expressionable, tags?: Expressionable): EnvironmentsResource; } } } export declare namespace labs { namespace users { namespace secrets { interface AdditionalProps { tags?: Expressionable; } type SecretsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: SecretProperties, location?: Expressionable, tags?: Expressionable): SecretsResource; } } } export declare namespace labs { namespace virtualmachines { interface AdditionalProps { tags?: Expressionable; } type VirtualmachinesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: LabVirtualMachineProperties, location?: Expressionable, tags?: Expressionable): VirtualmachinesResource; } } export declare namespace labs { namespace virtualmachines { namespace schedules { type SchedulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ScheduleProperties): SchedulesResource; } } } export declare namespace labs { namespace virtualnetworks { interface AdditionalProps { tags?: Expressionable; } type VirtualnetworksResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: VirtualNetworkProperties, location?: Expressionable, tags?: Expressionable): VirtualnetworksResource; } } export declare namespace schedules { type SchedulesResource = ResourceDefinition; function create(name: Expressionable, properties: ScheduleProperties): SchedulesResource; }