import { Expressionable, ResourceDefinition } from 'arm-templator'; export interface CloudToDeviceProperties { defaultTtlAsIso8601?: Expressionable; feedback?: Expressionable; maxDeliveryCount?: Expressionable; } export interface EventHubProperties { partitionCount?: Expressionable; retentionTimeInDays?: Expressionable; } export interface FallbackRouteProperties { condition?: Expressionable; endpointNames: Expressionable; isEnabled: Expressionable; source: Expressionable<('DeviceMessages' | 'TwinChangeEvents' | 'DeviceLifecycleEvents' | 'DeviceJobLifecycleEvents')>; } export interface FeedbackProperties { lockDurationAsIso8601?: Expressionable; maxDeliveryCount?: Expressionable; ttlAsIso8601?: Expressionable; } export interface IotHubProperties { authorizationPolicies?: Expressionable; cloudToDevice?: Expressionable; comments?: Expressionable; enableFileUploadNotifications?: Expressionable; eventHubEndpoints?: Expressionable; features?: Expressionable<('None' | 'DeviceManagement')>; ipFilterRules?: Expressionable; messagingEndpoints?: Expressionable; operationsMonitoringProperties?: Expressionable; routing?: Expressionable; storageEndpoints?: Expressionable; } export interface IotHubSkuInfo { capacity: Expressionable; name: Expressionable<('F1' | 'S1' | 'S2' | 'S3')>; } export interface IpFilterRule { action: Expressionable<('Accept' | 'Reject')>; filterName: Expressionable; ipMask: Expressionable; } export interface MessagingEndpointProperties { lockDurationAsIso8601?: Expressionable; maxDeliveryCount?: Expressionable; ttlAsIso8601?: Expressionable; } export interface OperationsMonitoringProperties { events?: Expressionable; } export interface RouteProperties { condition?: Expressionable; endpointNames: Expressionable; isEnabled: Expressionable; name: Expressionable; source: Expressionable<('DeviceMessages' | 'TwinChangeEvents' | 'DeviceLifecycleEvents' | 'DeviceJobLifecycleEvents')>; } export interface RoutingEndpoints { eventHubs?: Expressionable; serviceBusQueues?: Expressionable; serviceBusTopics?: Expressionable; storageContainers?: Expressionable; } export interface RoutingEventHubProperties { connectionString: Expressionable; name: Expressionable; resourceGroup?: Expressionable; subscriptionId?: Expressionable; } export interface RoutingProperties { endpoints?: Expressionable; fallbackRoute?: Expressionable; routes?: Expressionable; } export interface RoutingServiceBusQueueEndpointProperties { connectionString: Expressionable; name: Expressionable; resourceGroup?: Expressionable; subscriptionId?: Expressionable; } export interface RoutingServiceBusTopicEndpointProperties { connectionString: Expressionable; name: Expressionable; resourceGroup?: Expressionable; subscriptionId?: Expressionable; } export interface RoutingStorageContainerProperties { batchFrequencyInSeconds?: Expressionable; connectionString: Expressionable; containerName: Expressionable; encoding?: Expressionable; fileNameFormat?: Expressionable; maxChunkSizeInBytes?: Expressionable; name: Expressionable; resourceGroup?: Expressionable; subscriptionId?: Expressionable; } export interface SharedAccessSignatureAuthorizationRule { keyName: Expressionable; primaryKey?: Expressionable; rights: Expressionable<('RegistryRead' | 'RegistryWrite' | 'ServiceConnect' | 'DeviceConnect' | 'RegistryRead, RegistryWrite' | 'RegistryRead, ServiceConnect' | 'RegistryRead, DeviceConnect' | 'RegistryWrite, ServiceConnect' | 'RegistryWrite, DeviceConnect' | 'ServiceConnect, DeviceConnect' | 'RegistryRead, RegistryWrite, ServiceConnect' | 'RegistryRead, RegistryWrite, DeviceConnect' | 'RegistryRead, ServiceConnect, DeviceConnect' | 'RegistryWrite, ServiceConnect, DeviceConnect' | 'RegistryRead, RegistryWrite, ServiceConnect, DeviceConnect')>; secondaryKey?: Expressionable; } export interface StorageEndpointProperties { connectionString: Expressionable; containerName: Expressionable; sasTtlAsIso8601?: Expressionable; } export declare namespace IotHubs { interface AdditionalProps { sku: Expressionable; tags?: Expressionable; } type IotHubsResource = ResourceDefinition; function create(name: Expressionable, properties: IotHubProperties, location: Expressionable, sku: Expressionable, tags?: Expressionable): IotHubsResource; } export declare namespace IotHubs { namespace certificates { type CertificatesResource = ResourceDefinition; function create(name: [Expressionable, Expressionable], properties: any): CertificatesResource; } } export declare namespace IotHubs { namespace eventHubEndpoints { namespace ConsumerGroups { type ConsumerGroupsResource = ResourceDefinition; function create(name: [Expressionable, Expressionable, Expressionable], properties: any): ConsumerGroupsResource; } } }