import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface ArmTemplateParameterProperties { name?: Expressionable; value?: Expressionable; } export interface ArtifactDeploymentStatusProperties { artifactsApplied?: Expressionable; deploymentStatus?: Expressionable; totalArtifacts?: Expressionable; } export interface ArtifactInstallProperties { artifactId?: Expressionable; artifactTitle?: 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; securityToken?: Expressionable; sourceType?: Expressionable<('VsoGit' | 'GitHub')>; status?: Expressionable<('Enabled' | 'Disabled')>; uri?: Expressionable; } export interface AttachNewDataDiskOptions { diskName?: Expressionable; diskSizeGiB?: Expressionable; diskType?: Expressionable<('Standard' | 'Premium' | 'StandardSSD')>; } export interface BulkCreationParameters { instanceCount?: Expressionable; } export interface CostThresholdProperties { displayOnChart?: Expressionable<('Enabled' | 'Disabled')>; notificationSent?: Expressionable; percentageThreshold?: Expressionable; sendNotificationWhenExceeded?: Expressionable<('Enabled' | 'Disabled')>; thresholdId?: Expressionable; } export interface CustomImageProperties { author?: Expressionable; customImagePlan?: Expressionable; dataDiskStorageInfo?: Expressionable; description?: Expressionable; isPlanAuthorized?: Expressionable; managedImageId?: Expressionable; managedSnapshotId?: Expressionable; vhd?: Expressionable; vm?: Expressionable; } export interface CustomImagePropertiesCustom { imageName?: Expressionable; osType: Expressionable<('Windows' | 'Linux' | 'None')>; sysPrep?: Expressionable; } export interface CustomImagePropertiesFromPlan { id?: Expressionable; offer?: Expressionable; publisher?: Expressionable; } export interface CustomImagePropertiesFromVm { linuxOsInfo?: Expressionable; sourceVmId?: Expressionable; windowsOsInfo?: Expressionable; } export interface DataDiskProperties { attachNewDataDiskOptions?: Expressionable; existingLabDiskId?: Expressionable; hostCaching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; } export interface DataDiskStorageTypeInfo { lun?: Expressionable; storageType?: Expressionable<('Standard' | 'Premium' | 'StandardSSD')>; } export interface DayDetails { time?: Expressionable; } export interface DiskProperties { diskBlobName?: Expressionable; diskSizeGiB?: Expressionable; diskType?: Expressionable<('Standard' | 'Premium' | 'StandardSSD')>; diskUri?: Expressionable; hostCaching?: Expressionable; leasedByLabVmId?: Expressionable; managedDiskId?: Expressionable; } export interface EnvironmentDeploymentProperties { armTemplateId?: Expressionable; parameters?: Expressionable; } export interface EnvironmentProperties { armTemplateDisplayName?: Expressionable; deploymentProperties?: Expressionable; } export interface Event { eventName?: Expressionable<('AutoShutdown' | 'Cost')>; } export interface FormulaProperties { author?: Expressionable; description?: Expressionable; formulaContent?: Expressionable; osType?: 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 LabAnnouncementProperties { enabled?: Expressionable<('Enabled' | 'Disabled')>; expirationDate?: Expressionable; expired?: Expressionable; markdown?: Expressionable; title?: Expressionable; } export interface LabCostProperties { createdDate?: Expressionable; currencyCode?: Expressionable; endDateTime?: Expressionable; startDateTime?: Expressionable; targetCost?: Expressionable; } export interface LabProperties { announcement?: Expressionable; environmentPermission?: Expressionable<('Reader' | 'Contributor')>; extendedProperties?: Expressionable; labStorageType?: Expressionable<('Standard' | 'Premium' | 'StandardSSD')>; mandatoryArtifactsResourceIdsLinux?: Expressionable; mandatoryArtifactsResourceIdsWindows?: Expressionable; premiumDataDisks?: Expressionable<('Disabled' | 'Enabled')>; support?: Expressionable; } export interface LabSupportProperties { enabled?: Expressionable<('Enabled' | 'Disabled')>; markdown?: Expressionable; } export interface LabVirtualMachineCreationParameter { location?: Expressionable; name?: Expressionable; properties?: Expressionable; tags?: Expressionable; } export interface LabVirtualMachineCreationParameterProperties { allowClaim?: Expressionable; artifactDeploymentStatus?: Expressionable; artifacts?: Expressionable; bulkCreationParameters?: Expressionable; computeId?: Expressionable; createdByUser?: Expressionable; createdByUserId?: Expressionable; createdDate?: Expressionable; customImageId?: Expressionable; dataDiskParameters?: Expressionable; disallowPublicIpAddress?: Expressionable; environmentId?: Expressionable; expirationDate?: Expressionable; fqdn?: Expressionable; galleryImageReference?: Expressionable; isAuthenticationWithSshKey?: Expressionable; labSubnetName?: Expressionable; labVirtualNetworkId?: Expressionable; lastKnownPowerState?: Expressionable; networkInterface?: Expressionable; notes?: Expressionable; osType?: Expressionable; ownerObjectId?: Expressionable; ownerUserPrincipalName?: Expressionable; password?: Expressionable; planId?: Expressionable; scheduleParameters?: Expressionable; size?: Expressionable; sshKey?: Expressionable; storageType?: Expressionable; userName?: Expressionable; virtualMachineCreationSource?: Expressionable<('FromCustomImage' | 'FromGalleryImage' | 'FromSharedGalleryImage')>; } export interface LabVirtualMachineProperties { allowClaim?: Expressionable; artifactDeploymentStatus?: Expressionable; artifacts?: Expressionable; computeId?: Expressionable; createdByUser?: Expressionable; createdByUserId?: Expressionable; createdDate?: Expressionable; customImageId?: Expressionable; dataDiskParameters?: Expressionable; disallowPublicIpAddress?: Expressionable; environmentId?: Expressionable; expirationDate?: Expressionable; fqdn?: Expressionable; galleryImageReference?: Expressionable; isAuthenticationWithSshKey?: Expressionable; labSubnetName?: Expressionable; labVirtualNetworkId?: Expressionable; lastKnownPowerState?: Expressionable; networkInterface?: Expressionable; notes?: Expressionable; osType?: Expressionable; ownerObjectId?: Expressionable; ownerUserPrincipalName?: Expressionable; password?: Expressionable; planId?: Expressionable; scheduleParameters?: Expressionable; size?: Expressionable; sshKey?: Expressionable; storageType?: Expressionable; userName?: Expressionable; virtualMachineCreationSource?: Expressionable<('FromCustomImage' | 'FromGalleryImage' | 'FromSharedGalleryImage')>; } 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; emailRecipient?: Expressionable; events?: Expressionable; notificationLocale?: Expressionable; webHookUrl?: Expressionable; } export interface NotificationSettings { emailRecipient?: Expressionable; notificationLocale?: Expressionable; status?: Expressionable<('Enabled' | 'Disabled')>; 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' | 'EnvironmentTemplate' | 'ScheduleEditPermission')>; status?: Expressionable<('Enabled' | 'Disabled')>; threshold?: Expressionable; } export interface Port { backendPort?: Expressionable; transportProtocol?: Expressionable<('Tcp' | 'Udp')>; } export interface ScheduleCreationParameter { location?: Expressionable; name?: Expressionable; properties?: Expressionable; tags?: Expressionable; } export interface ScheduleCreationParameterProperties { dailyRecurrence?: Expressionable; hourlyRecurrence?: Expressionable; notificationSettings?: Expressionable; status?: Expressionable<('Enabled' | 'Disabled')>; targetResourceId?: Expressionable; taskType?: Expressionable; timeZoneId?: Expressionable; weeklyRecurrence?: Expressionable; } export interface ScheduleProperties { dailyRecurrence?: Expressionable; hourlyRecurrence?: Expressionable; notificationSettings?: Expressionable; status?: Expressionable<('Enabled' | 'Disabled')>; targetResourceId?: Expressionable; taskType?: Expressionable; timeZoneId?: Expressionable; weeklyRecurrence?: Expressionable; } export interface SecretProperties { value?: Expressionable; } export interface ServiceFabricProperties { environmentId?: Expressionable; externalServiceFabricId?: 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; secretStore?: Expressionable; } export interface UserSecretStore { keyVaultId?: Expressionable; keyVaultUri?: Expressionable; } export interface VirtualNetworkProperties { allowedSubnets?: Expressionable; description?: Expressionable; externalProviderResourceId?: Expressionable; subnetOverrides?: 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 users { namespace servicefabrics { interface AdditionalProps { tags?: Expressionable; } type ServicefabricsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ServiceFabricProperties, location?: Expressionable, tags?: Expressionable): ServicefabricsResource; } } } export declare namespace labs { namespace users { namespace servicefabrics { namespace schedules { type SchedulesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable, Expressionable], properties: ScheduleProperties): SchedulesResource; } } } } 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; }