import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface ApplicationPackageReference { id: Expressionable; version?: Expressionable; } export interface AutoScaleSettings { evaluationInterval?: Expressionable; formula: Expressionable; } export interface AutoStorageBaseProperties { storageAccountId: Expressionable; } export interface AutoUserSpecification { elevationLevel?: Expressionable<('NonAdmin' | 'Admin')>; scope?: Expressionable<('Task' | 'Pool')>; } export interface BatchAccountCreateProperties { autoStorage?: Expressionable; keyVaultReference?: Expressionable; poolAllocationMode?: Expressionable<('BatchService' | 'UserSubscription')>; } export interface CertificateCreateOrUpdateProperties { data: Expressionable; format?: Expressionable<('Pfx' | 'Cer')>; password?: Expressionable; thumbprint?: Expressionable; thumbprintAlgorithm?: Expressionable; } export interface CertificateReference { id: Expressionable; storeLocation?: Expressionable<('CurrentUser' | 'LocalMachine')>; storeName?: Expressionable; visibility?: Expressionable<('StartTask' | 'Task' | 'RemoteUser')[]>; } export interface CloudServiceConfiguration { currentOSVersion?: Expressionable; osFamily: Expressionable; targetOSVersion?: Expressionable; } export interface DataDisk { caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; diskSizeGB: Expressionable; lun: Expressionable; storageAccountType?: Expressionable<('Standard_LRS' | 'Premium_LRS')>; } export interface DeploymentConfiguration { cloudServiceConfiguration?: Expressionable; virtualMachineConfiguration?: Expressionable; } export interface EnvironmentSetting { name: Expressionable; value?: Expressionable; } export interface FixedScaleSettings { nodeDeallocationOption?: Expressionable<('Requeue' | 'Terminate' | 'TaskCompletion' | 'RetainedData')>; resizeTimeout?: Expressionable; targetDedicatedNodes?: Expressionable; targetLowPriorityNodes?: Expressionable; } export interface ImageReference { id?: Expressionable; offer?: Expressionable; publisher?: Expressionable; sku?: Expressionable; version?: Expressionable; } export interface InboundNatPool { backendPort: Expressionable; frontendPortRangeEnd: Expressionable; frontendPortRangeStart: Expressionable; name: Expressionable; networkSecurityGroupRules?: Expressionable; protocol: Expressionable<('TCP' | 'UDP')>; } export interface KeyVaultReference { id: Expressionable; url: Expressionable; } export interface LinuxUserConfiguration { gid?: Expressionable; sshPrivateKey?: Expressionable; uid?: Expressionable; } export interface MetadataItem { name: Expressionable; value: Expressionable; } export interface NetworkConfiguration { endpointConfiguration?: Expressionable; subnetId?: Expressionable; } export interface NetworkSecurityGroupRule { access: Expressionable<('Allow' | 'Deny')>; priority: Expressionable; sourceAddressPrefix: Expressionable; } export interface OSDisk { caching?: Expressionable<('None' | 'ReadOnly' | 'ReadWrite')>; } export interface PoolEndpointConfiguration { inboundNatPools: Expressionable; } export interface PoolProperties { applicationLicenses?: Expressionable; applicationPackages?: Expressionable; certificates?: Expressionable; deploymentConfiguration?: Expressionable; displayName?: Expressionable; interNodeCommunication?: Expressionable<('Enabled' | 'Disabled')>; maxTasksPerNode?: Expressionable; metadata?: Expressionable; networkConfiguration?: Expressionable; scaleSettings?: Expressionable; startTask?: Expressionable; taskSchedulingPolicy?: Expressionable; userAccounts?: Expressionable; vmSize?: Expressionable; } export interface ResourceFile { blobSource: Expressionable; fileMode?: Expressionable; filePath: Expressionable; } export interface ScaleSettings { autoScale?: Expressionable; fixedScale?: Expressionable; } export interface StartTask { commandLine?: Expressionable; environmentSettings?: Expressionable; maxTaskRetryCount?: Expressionable; resourceFiles?: Expressionable; userIdentity?: Expressionable; waitForSuccess?: Expressionable; } export interface TaskSchedulingPolicy { nodeFillType: Expressionable<('Spread' | 'Pack')>; } export interface UserAccount { elevationLevel?: Expressionable<('NonAdmin' | 'Admin')>; linuxUserConfiguration?: Expressionable; name: Expressionable; password: Expressionable; } export interface UserIdentity { autoUser?: Expressionable; userName?: Expressionable; } export interface VirtualMachineConfiguration { dataDisks?: Expressionable; imageReference: Expressionable; licenseType?: Expressionable; nodeAgentSkuId: Expressionable; osDisk?: Expressionable; windowsConfiguration?: Expressionable; } export interface WindowsConfiguration { enableAutomaticUpdates?: Expressionable; } export declare namespace batchAccounts { interface AdditionalProps { tags?: Expressionable; } type BatchAccountsResource = ResourceDefinition; function create(name: Expressionable, properties: BatchAccountCreateProperties, location: Expressionable, tags?: Expressionable): BatchAccountsResource; } export declare namespace batchAccounts { namespace applications { type ApplicationsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: any): ApplicationsResource; } } export declare namespace batchAccounts { namespace applications { namespace versions { type VersionsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: any): VersionsResource; } } } export declare namespace batchAccounts { namespace certificates { type CertificatesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: CertificateCreateOrUpdateProperties): CertificatesResource; } } export declare namespace batchAccounts { namespace pools { type PoolsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: PoolProperties): PoolsResource; } }