import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface ApplicationMetricDescription { MaximumCapacity?: Expressionable; Name?: Expressionable; ReservationCapacity?: Expressionable; TotalApplicationCapacity?: Expressionable; } export interface ApplicationResourceProperties { maximumNodes?: Expressionable; metrics?: Expressionable; minimumNodes?: Expressionable; parameters?: Expressionable; removeApplicationCapacity?: Expressionable; typeName?: Expressionable; typeVersion?: Expressionable; upgradePolicy?: Expressionable; } export interface ApplicationTypeResourceProperties { } export interface ApplicationTypeVersionResourceProperties { appPackageUrl: Expressionable; } export interface ApplicationUpgradePolicy { applicationHealthPolicy?: Expressionable; forceRestart?: Expressionable; rollingUpgradeMonitoringPolicy?: Expressionable; upgradeReplicaSetCheckTimeout?: Expressionable; } export interface ArmApplicationHealthPolicy { ConsiderWarningAsError?: Expressionable; DefaultServiceTypeHealthPolicy?: Expressionable; MaxPercentUnhealthyDeployedApplications?: Expressionable; ServiceTypeHealthPolicyMap?: Expressionable; } export interface ArmRollingUpgradeMonitoringPolicy { failureAction?: Expressionable<('Rollback' | 'Manual')>; healthCheckRetryTimeout?: Expressionable; healthCheckStableDuration?: Expressionable; healthCheckWaitDuration?: Expressionable; upgradeDomainTimeout?: Expressionable; upgradeTimeout?: Expressionable; } export interface ArmServiceTypeHealthPolicy { maxPercentUnhealthyPartitionsPerService?: Expressionable; maxPercentUnhealthyReplicasPerPartition?: Expressionable; maxPercentUnhealthyServices?: Expressionable; } export interface AzureActiveDirectory { clientApplication?: Expressionable; clusterApplication?: Expressionable; tenantId?: Expressionable; } export interface CertificateDescription { thumbprint: Expressionable; thumbprintSecondary?: Expressionable; x509StoreName?: Expressionable<('AddressBook' | 'AuthRoot' | 'CertificateAuthority' | 'Disallowed' | 'My' | 'Root' | 'TrustedPeople' | 'TrustedPublisher')>; } export interface ClientCertificateCommonName { certificateCommonName: Expressionable; certificateIssuerThumbprint: Expressionable; isAdmin: Expressionable; } export interface ClientCertificateThumbprint { certificateThumbprint: Expressionable; isAdmin: Expressionable; } export interface ClusterHealthPolicy { maxPercentUnhealthyApplications?: Expressionable; maxPercentUnhealthyNodes?: Expressionable; } export interface ClusterProperties { addOnFeatures?: Expressionable<('RepairManager' | 'DnsService' | 'BackupRestoreService')[]>; availableClusterVersions?: Expressionable; azureActiveDirectory?: Expressionable; certificate?: Expressionable; clientCertificateCommonNames?: Expressionable; clientCertificateThumbprints?: Expressionable; clusterCodeVersion?: Expressionable; clusterState?: Expressionable<('WaitingForNodes' | 'Deploying' | 'BaselineUpgrade' | 'UpdatingUserConfiguration' | 'UpdatingUserCertificate' | 'UpdatingInfrastructure' | 'EnforcingClusterVersion' | 'UpgradeServiceUnreachable' | 'AutoScale' | 'Ready')>; diagnosticsStorageAccountConfig?: Expressionable; fabricSettings?: Expressionable; managementEndpoint: Expressionable; nodeTypes: Expressionable; reliabilityLevel?: Expressionable<('None' | 'Bronze' | 'Silver' | 'Gold' | 'Platinum')>; reverseProxyCertificate?: Expressionable; upgradeDescription?: Expressionable; upgradeMode?: Expressionable<('Automatic' | 'Manual')>; vmImage?: Expressionable; } export interface ClusterUpgradeDeltaHealthPolicy { maxPercentDeltaUnhealthyApplications: Expressionable; maxPercentDeltaUnhealthyNodes: Expressionable; maxPercentUpgradeDomainDeltaUnhealthyNodes: Expressionable; } export interface ClusterUpgradePolicy { deltaHealthPolicy?: Expressionable; forceRestart?: Expressionable; healthCheckRetryTimeout: Expressionable; healthCheckStableDuration: Expressionable; healthCheckWaitDuration: Expressionable; healthPolicy: Expressionable; upgradeDomainTimeout: Expressionable; upgradeReplicaSetCheckTimeout: Expressionable; upgradeTimeout: Expressionable; } export interface ClusterVersionDetails { codeVersion?: Expressionable; environment?: Expressionable<('Windows' | 'Linux')>; supportExpiryUtc?: Expressionable; } export interface DiagnosticsStorageAccountConfig { blobEndpoint: Expressionable; protectedAccountKeyName: Expressionable; queueEndpoint: Expressionable; storageAccountName: Expressionable; tableEndpoint: Expressionable; } export interface EndpointRangeDescription { endPort: Expressionable; startPort: Expressionable; } export interface NodeTypeDescription { applicationPorts?: Expressionable; capacities?: Expressionable; clientConnectionEndpointPort: Expressionable; durabilityLevel?: Expressionable<('Bronze' | 'Silver' | 'Gold')>; ephemeralPorts?: Expressionable; httpGatewayEndpointPort: Expressionable; isPrimary: Expressionable; name: Expressionable; placementProperties?: Expressionable; reverseProxyEndpointPort?: Expressionable; vmInstanceCount: Expressionable; } export interface PartitionSchemeDescription { } export interface ServiceCorrelationDescription { Scheme: Expressionable<('Invalid' | 'Affinity' | 'AlignedAffinity' | 'NonAlignedAffinity')>; ServiceName: Expressionable; } export interface ServiceLoadMetricDescription { DefaultLoad?: Expressionable; Name: Expressionable; PrimaryDefaultLoad?: Expressionable; SecondaryDefaultLoad?: Expressionable; Weight?: Expressionable<('Zero' | 'Low' | 'Medium' | 'High')>; } export interface ServicePlacementPolicyDescription { } export interface ServiceResourceProperties { correlationScheme?: Expressionable; defaultMoveCost?: Expressionable<('Zero' | 'Low' | 'Medium' | 'High')>; partitionDescription?: Expressionable; placementConstraints?: Expressionable; serviceLoadMetrics?: Expressionable; servicePlacementPolicies?: Expressionable; serviceTypeName?: Expressionable; } export interface SettingsParameterDescription { name: Expressionable; value: Expressionable; } export interface SettingsSectionDescription { name: Expressionable; parameters: Expressionable; } export interface SingletonPartitionSchemeDescription { PartitionScheme: Expressionable<('Singleton')>; } export interface StatefulServiceProperties { hasPersistedState?: Expressionable; minReplicaSetSize?: Expressionable; quorumLossWaitDuration?: Expressionable; replicaRestartWaitDuration?: Expressionable; serviceKind: Expressionable<('Stateful')>; standByReplicaKeepDuration?: Expressionable; targetReplicaSetSize?: Expressionable; } export interface StatelessServiceProperties { instanceCount?: Expressionable; serviceKind: Expressionable<('Stateless')>; } export declare namespace clusters { interface AdditionalProps { tags?: Expressionable; } type ClustersResource = ResourceDefinition; function create(name: Expressionable, properties: ClusterProperties, location: Expressionable, tags?: Expressionable): ClustersResource; } export declare namespace clusters { namespace applications { type ApplicationsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ApplicationResourceProperties, location?: Expressionable): ApplicationsResource; } } export declare namespace clusters { namespace applications { namespace services { type ServicesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ServiceResourceProperties, location?: Expressionable): ServicesResource; } } } export declare namespace clusters { namespace applicationTypes { type ApplicationTypesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: ApplicationTypeResourceProperties, location?: Expressionable): ApplicationTypesResource; } } export declare namespace clusters { namespace applicationTypes { namespace versions { type VersionsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: ApplicationTypeVersionResourceProperties, location?: Expressionable): VersionsResource; } } }