// Type definitions for Azure SDK for Node v0.9.16 // Project: https://github.com/WindowsAzure/azure-sdk-for-node // Definitions by: Andrew Gaspar <https://github.com/AndrewGaspar>, // Anti Veeranna <https://github.com/antiveeranna>, // Maxime LUCE <https://github.com/SomaticIT> // Definitions: https://github.com/borisyankov/DefinitelyTyped /// <reference path="../node/node.d.ts" /> /** * TODO */ declare module "azure" { import events = require("events"); import stream = require("stream"); import url = require("url"); //#region Services export class TableService extends BatchServiceClient { static incorrectTableNameErr: string; static incorrectCallbackErr: string; static incorrectTableQuery: string; static incorrectPartitionErr: string; //#region Constructors /** * Creates a new TableService object. * Uses the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY environment variables. * * @constructor * @extends {ServiceClient} */ constructor(); /** * Creates a new TableService object. * Uses a connectionString to connect * * @constructor * @extends {ServiceClient} * @param {string} connectionString The connection string. */ constructor(connectionString: string); /** * Creates a new TableService object. * Uses a storage account and an access key. * * @constructor * @extends {ServiceClient} * @param {string} storageAccount The storage account or the connection string. * @param {string} storageAccessKey The storage access key. * @param {string} host The host address. * @param {object} authenticationProvider The authentication provider. */ constructor(storageAccount: string, storageAccessKey: string, host?: string, authenticationProvider?: string); //#endregion //#region Service Methods getServiceProperties(callback: StorageServicePropertiesCallback): void; getServiceProperties(options: TimeoutIntervalOptions, callback: StorageServicePropertiesCallback): void; setServiceProperties(serviceProperties: StorageServiceProperties, callback: StorageCallbackVoid): void; setServiceProperties(serviceProperties: StorageServiceProperties, options: TimeoutIntervalOptions, callback: StorageCallbackVoid): void; //#endregion //#region Table Methods getTable(table: string, callback?: TableRequestCallback): void; getTable(table: string, options: TimeoutIntervalOptions, callback?: TableRequestCallback): void; createTable(table: string, callback?: TableRequestCallback): void; createTable(table: string, options: TimeoutIntervalOptions, callback?: TableRequestCallback): void; createTableIfNotExists(table: string, callback?: CreateTableIfNotExistsCallback): void; createTableIfNotExists(table: string, options: TimeoutIntervalOptions, callback?: CreateTableIfNotExistsCallback): void; deleteTable(table: string, callback?: DeleteTableCallback): void; deleteTable(table: string, options: TimeoutIntervalOptions, callback?: DeleteTableCallback): void; queryTables(callback?: QueryTablesCallback): void; queryTables(options: QueryTablesOptions, callback?: QueryTablesCallback): void; //#endregion //#region Entities Methods queryEntity(table: string, partitionKey: string, rowKey: string, callback?: QueryEntityCallback): void; queryEntity(table: string, partitionKey: string, rowKey: string, options: TimeoutIntervalOptions, callback?: QueryEntityCallback): void; queryEntities(tableQuery: TableQuery, callback?: QueryEntitiesCallback): void; queryEntities(tableQuery: TableQuery, options: TimeoutIntervalOptions, callback?: QueryEntitiesCallback): void; insertEntity(tableName: string, entityDescriptor: Entity, callback?: ModifyEntityCallback): void; insertEntity(tableName: string, entityDescriptor: Entity, options: TimeoutIntervalOptions, callback?: ModifyEntityCallback): void; insertOrReplaceEntity(tableName: string, entityDescriptor: Entity, callback?: ModifyEntityCallback): void; insertOrReplaceEntity(tableName: string, entityDescriptor: Entity, options: TimeoutIntervalOptions, callback?: ModifyEntityCallback): void; updateEntity(tableName: string, entityDescriptor: Entity, callback?: ModifyEntityCallback): void; updateEntity(tableName: string, entityDescriptor: Entity, options: UpdateEntityOptions, callback?: ModifyEntityCallback): void; mergeEntity(tableName: string, entityDescriptor: Entity, callback?: ModifyEntityCallback): void; mergeEntity(tableName: string, entityDescriptor: Entity, options: UpdateEntityOptions, callback?: ModifyEntityCallback): void; insertOrMergeEntity(tableName: string, entityDescriptor: Entity, callback?: ModifyEntityCallback): void; insertOrMergeEntity(tableName: string, entityDescriptor: Entity, options: UpdateEntityOptions, callback?: ModifyEntityCallback): void; deleteEntity(tableName: string, entityDescriptor: Entity, callback?: DeleteEntityCallback): void; deleteEntity(tableName: string, entityDescriptor: Entity, options: UpdateEntityOptions, callback?: DeleteEntityCallback): void; //#endregion } export class BlobService extends StorageServiceClient { singleBlobPutThresholdInBytes: number; parallelOperationThreadCount: number; SpeedSummary: typeof SpeedSummary; //#region Constructors /** * Creates a new BlobService object. * Uses the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY environment variables. * * @constructor * @extends {StorageServiceClient} */ constructor(); /** * Creates a new BlobService object. * Uses a connectionString to connect * * @constructor * @extends {StorageServiceClient} * @param {string} connectionString The connection string. */ constructor(connectionString: string); /** * Creates a new BlobService object. * Uses a storage account and an access key. * * @constructor * @extends {StorageServiceClient} * @param {string} storageAccount The storage account or the connection string. * @param {string} storageAccessKey The storage access key. * @param {string} host The host address. * @param {object} sasToken The Shared Access Signature token. */ constructor(storageAccount: string, storageAccessKey: string, host?: string, sasToken?: string); //#endregion //#region Service Methods /** * Gets the properties of a storage account�s Blob service, including Azure Storage Analytics. */ getServiceProperties(callback: StorageServicePropertiesCallback): void; getServiceProperties(options: TimeoutIntervalOptions, callback: StorageServicePropertiesCallback): void; /** * Sets the properties of a storage account�s Blob service, including Azure Storage Analytics. * You can also use this operation to set the default request version for all incoming requests that do not have a version specified. */ setServiceProperties(serviceProperties: StorageServiceProperties, callback: StorageCallbackVoid): void; setServiceProperties(serviceProperties: StorageServiceProperties, options: TimeoutIntervalOptions, callback: StorageCallbackVoid): void; //#endregion //#region Containers Methods /** * Lists a segment containing a collection of container items under the specified account. */ listContainers(callback: ListContainersCallback): void; listContainers(options: ListContainersOptions, callback: ListContainersCallback): void; /** * Creates a new container under the specified account. * If a container with the same name already exists, the operation fails. */ createContainer(container: string, callback: StorageCallback<ContainerResult>): void; createContainer(container: string, options: CreateContainerOptions, callback: StorageCallback<ContainerResult>): void; /** * Creates a new container under the specified account if the container does not exists. */ createContainerIfNotExists(container: string, callback: StorageCallback<boolean>): void; createContainerIfNotExists(container: string, options: CreateContainerOptions, callback: StorageCallback<boolean>): void; /** * Retrieves a container and its properties from a specified account. */ getContainerProperties(container: string, callback: StorageCallback<ContainerResult>): void; getContainerProperties(container: string, options: GetContainerPropertiesOptions, callback: StorageCallback<ContainerResult>): void; /** * Returns all user-defined metadata for the container. */ getContainerMetadata(container: string, callback: StorageCallback<ContainerResult>): void; getContainerMetadata(container: string, options: GetContainerPropertiesOptions, callback: StorageCallback<ContainerResult>): void; /** * Sets the container's metadata. */ setContainerMetadata(container: string, metadata: StorageMetadata, callback: StorageCallback<ContainerResult>): void; setContainerMetadata(container: string, metadata: StorageMetadata, options: AccessConditionsOptions, callback: StorageCallback<ContainerResult>): void; /** * Gets the container's ACL. */ getContainerAcl(container: string, callback: StorageCallback<ContainerResult>): void; getContainerAcl(container: string, options: GetContainerPropertiesOptions, callback: StorageCallback<ContainerResult>): void; /** * Updates the container's ACL. */ setContainerAcl(container: string, publicAccessLevel: string, callback: StorageCallback<ContainerResult>): void; setContainerAcl(container: string, publicAccessLevel: string, options: StorageAclOptions, callback: StorageCallback<ContainerResult>): void; /** * Marks the specified container for deletion. * The container and any blobs contained within it are later deleted during garbage collection. */ deleteContainer(container: string, callback: StorageCallbackVoid): void; deleteContainer(container: string, options: LeaseIdOptions, callback: StorageCallbackVoid): void; //#endregion //#region Blob Methods /** * Lists all of the blobs in the given container. */ listBlobs(container: string, callback: ListBlobsCallback): void; listBlobs(container: string, options: ListBlobsOptions, callback: ListBlobsCallback): void; /** * Returns all user-defined metadata, standard HTTP properties, and system properties for the blob. * It does not return or modify the content of the blob. */ getBlobProperties(container: string, blob: string, callback: StorageCallback<BlobResult>): void; getBlobProperties(container: string, blob: string, options: GetBlobPropertiesOptions, callback: StorageCallback<BlobResult>): void; /** * Sets user-defined properties for the specified blob or snapshot. * It does not return or modify the content of the blob. */ setBlobProperties(container: string, blob: string, callback: StorageCallback<BlobResult>): void; setBlobProperties(container: string, blob: string, options: SetBlobPropertiesOptions, callback: StorageCallback<BlobResult>): void; /** * Sets user-defined metadata for the specified blob or snapshot as one or more name-value pairs * It does not return or modify the content of the blob. */ setBlobMetadata(container: string, blob: string, metadata: StorageMetadata, callback: StorageCallback<BlobResult>): void; setBlobMetadata(container: string, blob: string, metadata: StorageMetadata, options: GetBlobPropertiesOptions, callback: StorageCallback<BlobResult>): void; /** * Provides a stream to read from a blob. */ getBlob(container: string, blob: string, callback: StorageCallback<BlobResult>): stream.Readable; getBlob(container: string, blob: string, options: ReadBlobOptions, callback: StorageCallback<BlobResult>): stream.Readable; /** * Downloads a blob into a file. */ getBlobToFile(container: string, blob: string, localFileName: string, callback: StorageCallback<BlobResult>): void; getBlobToFile(container: string, blob: string, localFileName: string, options: ReadBlobOptions, callback: StorageCallback<BlobResult>): void; /** * Downloads a blob into a stream. */ getBlobToStream(container: string, blob: string, stream: stream.Writable, callback: StorageCallback<BlobResult>): void; getBlobToStream(container: string, blob: string, stream: stream.Writable, options: ReadBlobOptions, callback: StorageCallback<BlobResult>): void; /** * Downloads a blob into a text string. */ getBlobToText(container: string, blob: string, callback: GetBlobToTextCallback): void; getBlobToText(container: string, blob: string, options: ReadBlobOptions, callback: GetBlobToTextCallback): void; /** * Marks the specified blob or snapshot for deletion. The blob is later deleted during garbage collection. * If a blob has snapshots, you must delete them when deleting the blob. Using the deleteSnapshots option, you can choose either to delete both the blob and its snapshots, * or to delete only the snapshots but not the blob itself. If the blob has snapshots, you must include the deleteSnapshots option or the blob service will return an error * and nothing will be deleted. * If you are deleting a specific snapshot using the snapshotId option, the deleteSnapshots option must NOT be included. */ deleteBlob(container: string, blob: string, callback: StorageCallback<boolean>): void; deleteBlob(container: string, blob: string, options: DeleteBlobOptions, callback: StorageCallback<boolean>): void; /** * Creates a read-only snapshot of a blob. */ createBlobSnapshot(container: string, blob: string, callback: StorageCallback<string>): void; createBlobSnapshot(container: string, blob: string, options: BlobSnapshotOptions, callback: StorageCallback<string>): void; /** * Starts to copy a blob to a destination within the storage account. The Copy Blob operation copies the entire committed blob. */ copyBlob(sourceUri: string, targetContainer: string, targetBlob: string, callback: StorageCallback<BlobResult>): void; copyBlob(sourceUri: string, targetContainer: string, targetBlob: string, options: CopyBlobOptions, callback: StorageCallback<BlobResult>): void; /** * Creates a read-only snapshot of a blob. */ abortCopyBlob(container: string, blob: string, copyId: string, callback: StorageCallbackVoid): void; abortCopyBlob(container: string, blob: string, copyId: string, options: LeaseIdOptions, callback: StorageCallbackVoid): void; /** * Retrieves a shared access signature token. */ generateSharedAccessSignature(container: string, blob: string, sharedAccessPolicy: SharedAccessPolicy): SharedAccessSignatureResult; /** * Retrieves a blob or container URL. */ getBlobUrl(container: string): string; getBlobUrl(container: string, blob: string): string; getBlobUrl(container: string, blob: string, sharedAccessPolicy: SharedAccessPolicy): string; /** * Uploads a blob. */ createBlob(container: string, blob: string, blobType: string, callback: StorageCallback<string>): stream.Writable; createBlob(container: string, blob: string, blobType: string, options: UploadBlockBlobOptions, callback: StorageCallback<string>): stream.Writable; //#endregion //#region Page Blob Methods /** * Creates a page blob of the specified length. */ createPageBlob(container: string, blob: string, length: number, callback: StorageCallbackVoid): void; createPageBlob(container: string, blob: string, length: number, options: SetBlobPropertiesOptions, callback: StorageCallbackVoid): void; /** * Updates a page blob from a stream. */ createBlobPagesFromStream(container: string, blob: string, readStream: stream.Readable, rangeStart: number, rangeEnd: number, callback: StorageCallback<BlobResult>): void; createBlobPagesFromStream(container: string, blob: string, readStream: stream.Readable, rangeStart: number, rangeEnd: number, options: CreatePagesOptions, callback: StorageCallback<BlobResult>): void; /** * Updates a page blob from a text string. */ createBlobPagesFromText(container: string, blob: string, text: string, rangeStart: number, rangeEnd: number, callback: StorageCallback<BlobResult>): void; createBlobPagesFromText(container: string, blob: string, text: string, rangeStart: number, rangeEnd: number, options: CreatePagesOptions, callback: StorageCallback<BlobResult>): void; /** * Lists page ranges. * Lists all of the page ranges by default, or only the page ranges over a specific range of bytes if rangeStart and rangeEnd are specified. */ listBlobRegions(container: string, blob: string, callback: StorageCallback<PageRange[]>): void; listBlobRegions(container: string, blob: string, options: PageRangeOptions, callback: StorageCallback<PageRange[]>): void; /** * Clears a range of pages. */ clearBlobPages(container: string, blob: string, rangeStart: number, rangeEnd: number, callback: StorageCallbackVoid): void; clearBlobPages(container: string, blob: string, rangeStart: number, rangeEnd: number, options: LeaseAccessConditionsOptions, callback: StorageCallbackVoid): void; /** * Resizes a page blob. */ resizePageBlob(container: string, blob: string, size: number, callback: StorageCallback<BlobResult>): void; resizePageBlob(container: string, blob: string, size: number, options: LeaseAccessConditionsOptions, callback: StorageCallback<BlobResult>): void; /** * Sets the page blob's sequence number. */ setPageBlobSequenceNumber(container: string, blob: string, sequenceNumberAction: string, sequenceNumber: string, callback: StorageCallback<BlobResult>): void; setPageBlobSequenceNumber(container: string, blob: string, sequenceNumberAction: string, sequenceNumber: string, options: AccessConditionsOptions, callback: StorageCallback<BlobResult>): void; //#endregion //#region Block Blob Methods /** * Uploads a block blob from file. */ putBlockBlobFromFile(container: string, blob: string, localFileName: string, callback: StorageCallback<BlobResult>): SpeedSummary; putBlockBlobFromFile(container: string, blob: string, localFileName: string, options: UploadBlockBlobOptions, callback: StorageCallback<BlobResult>): SpeedSummary; createBlockBlobFromFile(container: string, blob: string, localFileName: string, callback: StorageCallback<BlobResult>): SpeedSummary; createBlockBlobFromFile(container: string, blob: string, localFileName: string, options: UploadBlockBlobOptions, callback: StorageCallback<BlobResult>): SpeedSummary; /** * Uploads a block blob from a stream. */ putBlockBlobFromStream(container: string, blob: string, stream: stream.Stream, streamLength: number, callback: StorageCallback<BlobResult>): SpeedSummary; putBlockBlobFromStream(container: string, blob: string, stream: stream.Stream, streamLength: number, options: UploadBlockBlobOptions, callback: StorageCallback<BlobResult>): SpeedSummary; createBlockBlobFromStream(container: string, blob: string, stream: stream.Stream, streamLength: number, callback: StorageCallback<BlobResult>): SpeedSummary; createBlockBlobFromStream(container: string, blob: string, stream: stream.Stream, streamLength: number, options: UploadBlockBlobOptions, callback: StorageCallback<BlobResult>): SpeedSummary; /** * Uploads a block blob from a text string. */ createBlockBlobFromText(container: string, blob: string, text: string, callback: StorageCallback<BlobResult>): SpeedSummary; createBlockBlobFromText(container: string, blob: string, text: string, options: UploadBlockBlobOptions, callback: StorageCallback<BlobResult>): SpeedSummary; /** * Creates a new block to be committed as part of a blob. */ createBlobBlockFromStream(blockId: string, container: string, blob: string, readStream: stream.Stream, streamLength: number, callback: StorageCallbackVoid): void; createBlobBlockFromStream(blockId: string, container: string, blob: string, readStream: stream.Stream, streamLength: number, options: CreateBlockOptions, callback: StorageCallbackVoid): void; /** * Creates a new block to be committed as part of a blob. */ createBlobBlockFromText(blockId: string, container: string, blob: string, text: string, callback: StorageCallbackVoid): void; createBlobBlockFromText(blockId: string, container: string, blob: string, text: string, options: CreateBlockOptions, callback: StorageCallbackVoid): void; /** * Writes a blob by specifying the list of block IDs that make up the blob. * In order to be written as part of a blob, a block must have been successfully written to the server in a prior * createBlock operation. */ commitBlobBlocks(container: string, blob: string, blockList: BlockList, callback: StorageCallback<BlockList>): void; commitBlobBlocks(container: string, blob: string, blockList: BlockList, options: CreateBlockOptions, callback: StorageCallback<BlockList>): void; /** * Retrieves the list of blocks that have been uploaded as part of a block blob. */ listBlobBlocks(container: string, blob: string, blockListType: string, callback: StorageCallback<BlockList>): void; listBlobBlocks(container: string, blob: string, blockListType: string, options: GetBlobPropertiesOptions, callback: StorageCallback<BlockList>): void; /** * Generate a random block id prefix. */ generateBlockIdPrefix(): string; /** * Get a block id according to prefix and block number. */ getBlockId(prefix: string, number: number): string; //#endregion //#region Lease Methods /** * Acquires a new lease. * If container and blob are specified, acquires a blob lease. * Otherwise, if only container is specified and blob is null, acquires a container lease. */ acquireLease(container: string, blob: string, callback: StorageCallback<LeaseResult>): void; acquireLease(container: string, blob: string, options: LeaseOptions, callback: StorageCallback<LeaseResult>): void; /** * Renews an existing lease. * If container and blob are specified, renews the blob lease. * Otherwise, if only container is specified and blob is null, renews the container lease. */ renewLease(container: string, blob: string, leaseId: string, callback: StorageCallback<LeaseResult>): void; renewLease(container: string, blob: string, leaseId: string, options: AccessConditionsOptions, callback: StorageCallback<LeaseResult>): void; /** * Releases the lease. * If container and blob are specified, releases the blob lease. * Otherwise, if only container is specified and blob is null, releases the container lease. */ releaseLease(container: string, blob: string, leaseId: string, callback: StorageCallback<LeaseResult>): void; releaseLease(container: string, blob: string, leaseId: string, options: AccessConditionsOptions, callback: StorageCallback<LeaseResult>): void; /** * Breaks the lease but ensures that another client cannot acquire a new lease until the current lease period has expired. * If container and blob are specified, breaks the blob lease. * Otherwise, if only container is specified and blob is null, breaks the container lease. */ breakLease(container: string, blob: string, leaseId: string, callback: StorageCallback<LeaseResult>): void; breakLease(container: string, blob: string, leaseId: string, options: BreakLeaseOptions, callback: StorageCallback<LeaseResult>): void; //#endregion } export class QueueService extends StorageServiceClient { authenticationProvider: SharedKey; //#region Constructors /** * Creates a new BlobService object. * Uses the AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY environment variables. * * @constructor * @extends {StorageServiceClient} */ constructor(); /** * Creates a new BlobService object. * Uses a connectionString to connect * * @constructor * @extends {StorageServiceClient} * @param {string} connectionString The connection string. */ constructor(connectionString: string); /** * Creates a new BlobService object. * Uses a storage account and an access key. * * @constructor * @extends {StorageServiceClient} * @param {string} storageAccount The storage account or the connection string. * @param {string} storageAccessKey The storage access key. * @param {string} host The host address. * @param {object} sasToken The Shared Access Signature token. */ constructor(storageAccount: string, storageAccessKey: string, host?: string, sasToken?: string); //#endregion //#region Service Methods /** * Gets the properties of a storage account�s Blob service, including Azure Storage Analytics. */ getServiceProperties(callback: StorageServicePropertiesCallback): void; getServiceProperties(options: TimeoutIntervalOptions, callback: StorageServicePropertiesCallback): void; /** * Sets the properties of a storage account�s Blob service, including Azure Storage Analytics. * You can also use this operation to set the default request version for all incoming requests that do not have a version specified. */ setServiceProperties(serviceProperties: StorageServiceProperties, callback: StorageCallbackVoid): void; setServiceProperties(serviceProperties: StorageServiceProperties, options: TimeoutIntervalOptions, callback: StorageCallbackVoid): void; //#endregion //#region Queue Methods /** * Lists all queues under the given account. */ listQueues(callback: ListQueuesCallback): void; listQueues(options: ListQueuesOptions, callback: ListQueuesCallback): void; /** * Creates a new queue under the given account. */ createQueue(queue: string, callback: StorageCallback<QueueResult>): void; createQueue(queue: string, options: MetadataOptions, callback: StorageCallback<QueueResult>): void; /** * Creates a new queue under the given account if it doesn't exist. */ createQueueIfNotExists(queue: string, callback: StorageCallback<boolean>): void; createQueueIfNotExists(queue: string, options: MetadataOptions, callback: StorageCallback<boolean>): void; /** * Permanently deletes the specified queue. */ deleteQueue(queue: string, callback: StorageCallback<boolean>): void; deleteQueue(queue: string, options: TimeoutIntervalOptions, callback: StorageCallback<boolean>): void; /** * Returns queue properties, including user-defined metadata. */ getQueueMetadata(queue: string, callback: StorageCallback<QueueResult>): void; getQueueMetadata(queue: string, options: TimeoutIntervalOptions, callback: StorageCallback<QueueResult>): void; /** * Sets user-defined metadata on the specified queue. Metadata is associated with the queue as name-value pairs. */ setQueueMetadata(queue: string, metadata: StorageMetadata, callback: StorageCallback<QueueResult>): void; setQueueMetadata(queue: string, metadata: StorageMetadata, options: TimeoutIntervalOptions, callback: StorageCallback<QueueResult>): void; //#endregion //#region Message Methods /** * Adds a new message to the back of the message queue. A visibility timeout can also be specified to make the message * invisible until the visibility timeout expires. A message must be in a format that can be included in an XML request * with UTF-8 encoding. The encoded message can be up to 64KB in size for versions 2011-08-18 and newer, or 8KB in size * for previous versions. */ createMessage(queue: string, messageText: string, callback: StorageCallback<QueueMessageResult>): void createMessage(queue: string, messageText: string, options: CreateQueueMessageOptions, callback: StorageCallback<QueueMessageResult>): void /** * Retrieves a message from the queue and makes it invisible to other consumers. */ getMessages(queue: string, callback: StorageCallback<QueueMessageResult[]>): void; getMessages(queue: string, options: GetQueueMessagesOptions, callback: StorageCallback<QueueMessageResult[]>): void; /** * Retrieves a message from the front of the queue, without changing the message visibility. */ peekMessages(queue: string, callback: StorageCallback<QueueMessageResult[]>): void; peekMessages(queue: string, options: PeekQueueMessagesOptions, callback: StorageCallback<QueueMessageResult[]>): void; /** * Deletes a specified message from the queue. */ deleteMessage(queue: string, messageId: string, popreceipt: string, callback: StorageCallback<boolean>): void deleteMessage(queue: string, messageId: string, popreceipt: string, options: TimeoutIntervalOptions, callback: StorageCallback<boolean>): void /** * Clears all messages from the queue. */ clearMessages(queue: string, callback: StorageCallbackVoid): void; clearMessages(queue: string, options: TimeoutIntervalOptions, callback: StorageCallbackVoid): void; /** * Deletes a specified message from the queue. */ updateMessage(queue: string, messageId: string, popreceipt: string, visibilitytimeout: number, callback: StorageCallback<QueueMessageResult>): void updateMessage(queue: string, messageId: string, popreceipt: string, visibilitytimeout: number, options: UpdateQueueMessagesOptions, callback: StorageCallback<QueueMessageResult>): void //#endregion } export class ServiceBusService { } export class SqlService { } export class ServiceManagementService { } export class SqlManagementService { } //#endregion //#region Service Creators export function createTableService(): TableService; export function createTableService(connectionString: string): TableService; export function createTableService(storageAccount: string, storageAccessKey: string, host?: string, authenticationProvider?: string): TableService; export function createBlobService(): BlobService; export function createBlobService(connectionString: string): BlobService; export function createBlobService(storageAccount: string, storageAccessKey: string, host?: string, authenticationProvider?: string): BlobService; export function createQueueService(): QueueService; export function createQueueService(connectionString: string): QueueService; export function createQueueService(storageAccount: string, storageAccessKey: string, host?: string, authenticationProvider?: string): QueueService; export function createServiceBusService(): ServiceBusService; export function createServiceBusService(connectionString: string): ServiceBusService; export function createServiceBusService(namespace: string, accessKey?: string, issuer?: string, acsNamespace?: string, host?: string, authenticationProvider?: string): ServiceBusService; export function createSqlService(serverName: string, administratorLogin: string, administratorLoginPassword: string, host?: string, acsHost?: string, authenticationProvider?: string): SqlService; export function createServiceManagementService(subscriptionId: string, authentication: string, hostOptions: string): ServiceManagementService; export function createSqlManagementService(subscriptionId: string, authentication: string, hostOptions: string): SqlManagementService; //#endregion //#region RoleEnvironment interface RoleEnvironmentInterface extends events.EventEmitter { incorrectCallbackErr: string; clientId: string; VersionEndpointFixedPath: string; EnvironmentVariables: { [key: string]: string; VersionEndpointEnvironmentName: string; }; /** * Returns a RoleInstance object that represents the role instance * in which this code is currently executing. */ getCurrentRoleInstance(callback: SimpleCallback<RoleInstance>): void; /** * Returns the deployment ID that uniquely identifies the deployment in * which this role instance is running. */ getDeploymentId(callback: SimpleCallback<string>): void; /** * Indicates whether the role instance is running in the Microsoft Azure * environment. It is good practice to enclose any code that uses * service runtime in the isAvailable callback. */ isAvailable(callback: SimpleCallback<boolean>): void; /** * Indicates whether the role instance is running in the development fabric. */ isEmulated(callback: SimpleCallback<boolean>): void; /** * Returns the set of Role objects defined for your service. * Roles are defined in the service definition file. */ getRoles(callback: SimpleCallback<Dictionary<Role>>): void; /** * Retrieves the settings in the service configuration file. * * A role's configuration settings are defined in the service definition file. * Values for configuration settings are set in the service configuration file. * For more information on configuration settings, see the [Service Definition Schema](http://msdn.microsoft.com/en-us/library/windowsazure/ee758711.aspx) * and [Service Configuration Schema](http://msdn.microsoft.com/en-us/library/windowsazure/ee758710.aspx). */ getConfigurationSettings(callback: SimpleCallback<Dictionary<string>>): void; /** * Retrieves the set of named local storage resources, along with the path. * For example, the DiagnosticStore resource which is defined for every role * provides a location for runtime diagnostics and logs. */ getLocalResources(callback: SimpleCallback<Dictionary<RoleLocalResource>>): void; /** * Requests that the current role instance be stopped and restarted. * * Before the role instance is recycled, the Microsoft Azure load balancer takes the role instance out of rotation. * This ensures that no new requests are routed to the instance while it is restarting. * * A call to `RequestRecycle` initiates the normal shutdown cycle. Microsoft Azure raises the * `Stopping` event and calls the `OnStop` method so that you can run the necessary code to * prepare the instance to be recycled. */ requestRecycle(callback: ErrorCallback): void; /** * Sets the status of the role instance. * * An instance may indicate that it is in one of two states: Ready or Busy. If an instance's state is Ready, it is * prepared to receive requests from the load balancer. If the instance's state is Busy, it will not receive * requests from the load balancer. */ setStatus(roleInstanceStatus: string, expirationUtc: Date, callback: ErrorCallback): void; /** * Clears the status of the role instance. * An instance may indicate that it has completed communicating status by calling this method. */ clearStatus(callback: ErrorCallback): void; } export var RoleEnvironment: RoleEnvironmentInterface; //#endregion //#region Export of internal classes export class WebResource { rawResponse: boolean; queryString: Dictionary<string>; constructor(); get(path: string): WebResource; put(path: string): WebResource; post(path: string): WebResource; merge(path: string): WebResource; head(path: string): WebResource; del(path: string): WebResource; withProperty(name: string, value: string): WebResource; withRawResponse(rawResponse: boolean): WebResource; withHeadersOnly(headersOnly: boolean): WebResource; withQueryOption(name: string, value: string, defaultValue: string): WebResource; withQueryOptions(queryOptions: Dictionary<string>): WebResource; withHeader(name: string, value: string): WebResource; withHeaders(headers: Dictionary<string>): WebResource; withBody(body: any): WebResource; addOptionalMetadataHeaders(metadata: StorageMetadata): WebResource; validResponse(statusCode: number): boolean; pipeInput(inputStream: stream.Stream, destStream: stream.Stream): stream.Stream; } export class ServiceClient extends events.EventEmitter { static EnvironmentVariables: any; static DEVSTORE_STORAGE_ACCOUNT: string; static DEVSTORE_STORAGE_ACCESS_KEY: string; static DEVSTORE_BLOB_HOST: string; static DEVSTORE_QUEUE_HOST: string; static DEVSTORE_TABLE_HOST: string; static CLOUD_BLOB_HOST: string; static CLOUD_QUEUE_HOST: string; static CLOUD_TABLE_HOST: string; static CLOUD_SERVICEBUS_HOST: string; static CLOUD_ACCESS_CONTROL_HOST: string; static CLOUD_SERVICE_MANAGEMENT_HOST: string; static CLOUD_DATABASE_HOST: string; static DEFAULT_SERVICEBUS_ISSUER: string; static DEFAULT_WRAP_NAMESPACE_SUFFIX: string; static DEFAULT_PROTOCOL: string; constructor(host: string, authenticationProvider: any); setHost(host: string): void; performRequest(webResource: WebResource, outputData: string, options: any, callback: Function): void; performRequestOutputStream(webResource: WebResource, outputStream: any, options: any, callback: Function): void; performRequestInputStream(webResource: WebResource, outputData: string, inputStream: any, options: any, callback: Function): void; withFilter(newFilter: Filter): ServiceClient; parseMetadataHeaders(headers: any): any; isEmulated(): boolean; setProxy(proxyUrl: string, proxyPort: number): void; } export class BatchServiceClient extends StorageServiceClient { operations: any[]; constructor(storageAccount: string, storageAccessKey: string, host: string, usePathstyleUri: boolean, authenticationProvider: any); beginBatch(): void; isInBatch(): boolean; rollback(): void; hasOperations(): boolean; addOperation(webResource: WebResource, outputData: any): void; commitBatch(callback: (error: any, operationResponses: any[], response: any) => void): void; commitBatch(options: any, callback: (error: any, operationResponses: any[], response: any) => void): void; processResponse(responseObject: any, requestOperations: any[]): any[]; processOperation(webResource: WebResource, rawResponse: string): any; } export class ServiceManagementClient { } export class TableQuery { static select(...fields: string[]): TableQuery; from(table: string): TableQuery; whereKeys(partitionKey: string, rowKey: string): TableQuery; whereNextKeys(partitionKey: string, rowKey: string): TableQuery; where(condition: string, ...values: string[]): TableQuery; and(condition: string, ...arguments: string[]): TableQuery; or(condition: string, ...arguments: string[]): TableQuery; top(integer: number): TableQuery; toQueryObject(): any; toPath(): string; } export class BlobResult { blob: string; container: string; etag: string; lastModified: string; contentType: string; contentEncoding: string; contentLanguage: string; contentMD5: string; cacheControl: string; contentRange: string; contentTypeHeader: string; contentEncodingHeader: string; contentLanguageHeader: string; contentMD5Header: string; cacheControlHeader: string; contentLength: number; contentLengthHeader: number; contentDisposition: string; contentDispositionHeader: string; range: string; rangeHeader: string; getContentMd5: string; acceptRanges: string; blobType: string; leaseStatus: string; leaseId: string; leaseDuration: string; leaseState: string; sequenceNumber: string; copyStatus: string; copyCompletionTime: string; copyStatusDescription: string; copyId: string; copyProgress: number; requestId: string; metadata: StorageMetadata; constructor(); constructor(container: string); constructor(container: string, blob: string); static parse(blobXml: any): BlobResult; static setHeadersFromBlob(webResource: WebResource, blob: BlobResult): void; getPropertiesFromHeaders(headers: any): void; } export class ContainerResult { name: string; publicAccessLevel: string; etag: string; lastModified: string; leaseStatus: string; leaseDuration: string; leaseState: string; requestId: string; metadata: StorageMetadata; signedIdentifiers: SignedIdentifier[]; constructor(); constructor(name: string); constructor(name: string, publicAccessLevel: string); static parse(containerXml: any): ContainerResult; getPropertiesFromHeaders(headers: any): void; } export class LeaseResult { container: string; blob: string; id: string; time: string; etag: string; lastModified: string; constructor(); constructor(container: string); constructor(container: string, blob: string); constructor(container: string, blob: string, id: string); constructor(container: string, blob: string, id: string, time: string); getPropertiesFromHeaders(header: any): void; } export class QueueResult { name: string; metadata: StorageMetadata; approximatemessagecount: number; constructor(); constructor(name: string); constructor(name: string, metadata: StorageMetadata); static parse(messageXml: any): QueueResult; getPropertiesFromHeaders(headers: any): void; } export class QueueMessageResult { queue: string; insertiontime: string; expirationtime: string; timenextvisible: string; messagetext: string; dequeuecount: string; messageid: string; popreceipt: string; metadata: StorageMetadata; constructor(); constructor(queue: string); constructor(queue: string, messageid: string); constructor(queue: string, messageid: string, popreceipt: string); constructor(queue: string, messageid: string, popreceipt: string, metadata: StorageMetadata); static serialize(messageJs: string): string; static parse(messageXml: any): QueueMessageResult; getPropertiesFromHeaders(headers: any): void; } export class SpeedSummary { name: string; totalSize: number; completeSize: number; _startTime: Date; _timeWindowInSeconds: number; _timeWindow: number; _totalWindowSize: number; _speedTracks: number[]; _speedTrackPtr: number; constructor(name: string); /** * Get running seconds */ getElapsedSeconds(): string; getElapsedSeconds(humanReadable: boolean): number; /** * Get complete percentage */ getCompletePercent(): number; getCompletePercent(len: number): number; /** * Get average upload/download speed */ getAverageSpeed(): string; getAverageSpeed(humanReadable: boolean): number; /** * Get internal speed */ getSpeed(): string; getSpeed(humanReadable: boolean): number; /** * Get auto increment function */ getSpeed(size: number): (error: Error, value: any) => void; /** * Get total size */ getTotalSize(): string; getTotalSize(humanReadable: boolean): number; /** * Get completed data size */ getCompleteSize(): string; getCompleteSize(humanReadable: boolean): number; } export module Constants { } export interface Filter { handle(requestOptions: any, next: Function): void; } export class LinearRetryPolicyFilter implements Filter { constructor(retryCount?: number, retryInterval?: number); retryCount: number; retryInterval: number; handle(requestOptions: any, next: Function): void; } export class ExponentialRetryPolicyFilter implements Filter { constructor(retryCount?: number, retryInterval?: number, minRetryInterval?: number, maxRetryInterval?: number); retryCount: number; retryInterval: number; minRetryInterval: number; maxRetryInterval: number; handle(requestOptions: any, next: Function): void; } export class HmacSha256Sign { } export class SharedAccessSignature { storageAccount: string; storageAccessKey: string; permissionSet: string[]; signer: HmacSha256Sign; constructor(storageAccount: string, storageAccessKey: string, permissionSet: string[]) /** * Generates the query string for a shared access signature signing. */ generateSignedQueryString(path: string, queryString: Dictionary<string>, resourceType: string, sharedAccessPolicy: SharedAccessPolicy): Dictionary<string>; /** * Signs a request with the signature header. */ signRequest(webResource: WebResource, callback: ErrorCallback): void; /** * Generates the shared access signature for a resource. */ _generateSignature(path: string, resourceType: string, sharedAccessPolicy: SharedAccessPolicy): string; /** * Generates the query string for a shared access signature signing. */ _permissionMatchesRequest(sharedAccessSignature: string, webResource: WebResource, resourceType: string, requiredPermissions: string[]): string; } export class SharedKey { storageAccount: string; storageAccessKey: string; usePathStyleUri: string; signer: HmacSha256Sign; constructor(storageAccount: string, storageAccessKey: string, usePathStyleUri: boolean); /** * Signs a request with the Authentication header. */ signRequest(webResource: WebResource, callback: ErrorCallback): void; /** * Retrieves the webresource's canonicalized resource string. */ _getCanonicalizedResource(webResource: WebResource): string; /** * Constructs the Canonicalized Headers string. * * To construct the CanonicalizedHeaders portion of the signature string, * follow these steps: 1. Retrieve all headers for the resource that begin * with x-ms-, including the x-ms-date header. 2. Convert each HTTP header * name to lowercase. 3. Sort the headers lexicographically by header name, * in ascending order. Each header may appear only once in the * string. 4. Unfold the string by replacing any breaking white space with a * single space. 5. Trim any white space around the colon in the header. 6. * Finally, append a new line character to each canonicalized header in the * resulting list. Construct the CanonicalizedHeaders string by * concatenating all headers in this list into a single string. */ _getCanonicalizedHeaders(webResource: WebResource): string; } export class SharedKeyLite { storageAccount: string; storageAccessKey: string; usePathStyleUri: string; signer: HmacSha256Sign; constructor(storageAccount: string, storageAccessKey: string, usePathStyleUri: boolean); /** * Signs a request with the Authentication header. */ signRequest(webResource: WebResource, callback: ErrorCallback): void; /** * Retrieves the webresource's canonicalized resource string. */ _getCanonicalizedResource(webResource: WebResource): string; /** * Constructs the Canonicalized Headers string. * * To construct the CanonicalizedHeaders portion of the signature string, * follow these steps: 1. Retrieve all headers for the resource that begin * with x-ms-, including the x-ms-date header. 2. Convert each HTTP header * name to lowercase. 3. Sort the headers lexicographically by header name, * in ascending order. Each header may appear only once in the * string. 4. Unfold the string by replacing any breaking white space with a * single space. 5. Trim any white space around the colon in the header. 6. * Finally, append a new line character to each canonicalized header in the * resulting list. Construct the CanonicalizedHeaders string by * concatenating all headers in this list into a single string. */ _getCanonicalizedHeaders(webResource: WebResource): string; } export class SharedKeyTable { storageAccount: string; storageAccessKey: string; usePathStyleUri: string; signer: HmacSha256Sign; constructor(storageAccount: string, storageAccessKey: string, usePathStyleUri: boolean); /** * Signs a request with the Authentication header. */ signRequest(webResource: WebResource, callback: ErrorCallback): void; /** * Retrieves the webresource's canonicalized resource string. */ _getCanonicalizedResource(webResource: WebResource): string; } export class SharedKeyLiteTable { torageAccount: string; storageAccessKey: string; usePathStyleUri: string; signer: HmacSha256Sign; constructor(storageAccount: string, storageAccessKey: string, usePathStyleUri: boolean); /** * Signs a request with the Authentication header. */ signRequest(webResource: WebResource, callback: ErrorCallback): void; /** * Retrieves the webresource's canonicalized resource string. */ _getCanonicalizedResource(webResource: WebResource): string; } export module ISO8061Date { /** * Formats a date into an iso 8061 string. */ export function format(date: Date): string; /** * Parses an ISO 8061 date string into a date object. */ export function parse(stringDateTime: string): Date; } export class Logger { level: string; loggerFunction: (level: string, message: string) => void; static LogLevels: { EMERGENCY: string; ALERT: string; CRITICAL: string; ERROR: string; WARNING: string; NOTICE: string; INFO: string; DEBUG: string; }; static logPriority: string[]; log(level: string, message: string): void; emergency(message: string): void; alert(message: string): void; critical(message: string): void; error(message: string): void; warning(message: string): void; notice(message: string): void; info(message: string): void; debug(message: string): void; defaultLoggerFunction(level: string, message: string): void; } export class ConnectionStringParser { _value: string; _pos: number; _state: string; constructor(connectionString: string); _parse(options: ConnectionStringParseOptions): Dictionary<string>; _extractKey(): string; _extractString(quote: string): string; _extractValue(): string; _skipWhitespaces(): void; _skipOperator(operator: string): void; static parse(connectionString: string): Dictionary<string>; } export module ServiceSettings { export var DEFAULT_PROTOCOL: string; export class NoMatchError implements Error { name: string; message: string; constr: any; constructor(); constructor(message: string); constructor(message: string, constr: any); } /** * Throws an exception if the connection string format does not match any of the * available formats. */ export function noMatchConnectionString(connectionString: string): void; /** * Throws an exception if the settings dont match any of the available formats. */ export function noMatchSettings(settings: any): void; /** * Parses the connection string and then validate that the parsed keys belong to * the validSettingKeys */ export function parseAndValidateKeys(connectionString: string, validKeys: string[]): string[]; /** * Creates an anonymous function that acts as predicate to perform a validation. */ export function getValidator(requirements: Dictionary<Requirement>, isRequired: boolean, atLeastOne: boolean): ValidatorFunction; /** * Creates a setting value condition that validates it is one of the passed valid values. */ export function setting(name: string): string[]; /** * Creates an "at least one" predicate for the provided list of requirements. */ export function atLeastOne(...args: any[]): ValidatorFunction; /** * Creates an optional predicate for the provided list of requirements. */ export function optional(...args: any[]): ValidatorFunction; /** * Creates an required predicate for the provided list of requirements. */ export function allRequired(...args: any[]): ValidatorFunction; /** * Creates a setting value condition using the passed predicate. */ export function settingWithFunc(name: string, predicate: Function): Requirement[]; /** * Tests to see if a given list of settings matches a set of filters exactly. */ export function matchedSpecification(settings: Dictionary<any>): boolean; /** * Tests to see if a given list of settings matches a set of filters exactly. */ export function parseHost(uri: string): url.Url; } export class StorageServiceSettings { _name: string; _key: string; _blobEndpointUri: string; _queueEndpointUri: string; _tableEndpointUri: string; _usePathStyleUri: boolean; constructor(name: string, key: string, blobEndpointUri: string, queueEndpointUri: string, tableEndpointUri: string, usePathStyleUri: boolean); /** * Returns a StorageServiceSettings with development storage credentials using * the specified proxy Uri. */ static _getDevelopmentStorageAccount(): StorageServiceSettings; static _getDevelopmentStorageAccount(proxy: string): StorageServiceSettings; /** * Gets a StorageServiceSettings object that references the development storage * account. */ static getDevelopmentStorageAccountSettings(): StorageServiceSettings; /** * Gets the default service endpoint using the specified protocol and account * name. */ static _getDefaultServiceEndpoint(settings: Dictionary<string>, dns: string): string; /** * Creates StorageServiceSettings object given endpoints uri. */ static _createStorageServiceSettings(settings: Dictionary<string>, blobEndpointUri: string, queueEndpointUri: string, tableEndpointUri: string): StorageServiceSettings; /** * Creates a ServiceBusSettings object from a set of settings. */ static createFromSettings(settings: Dictionary<string>): StorageServiceSettings; /** * Creates a StorageServiceSettings object from the given connection string. */ static createFromConnectionString(connectionString: string): StorageServiceSettings; static createExplicitlyOrFromEnvironment(storageAccount: string, storageAccessKey: string, host: string): StorageServiceSettings; static isDevelopmentStorage(storageAccount: string, storageAccessKey: string, parsedHost: string): boolean; static createFromConfig(config: any): StorageServiceSettings; static customizeConfig(config: any): void; } export class ServiceBusSettings { } export class ServiceManagementSettinsg { } export module Validate { /** * Checks if the given uri is valid or not. */ export function isValidUri(uri: string): boolean; /** * Validates that a clusterCreationObject is properly formed. */ export function isValidHDInsightCreationObject(clusterCreationObject: ClusterCreationOptions): void; export function isValidHDInsightCreationObject(clusterCreationObject: ClusterCreationOptions, callback: ErrorCallback): void; export function isValidUuid(uuid: string): void; export function isValidUuid(uuid: string, callback: ErrorCallback): void; /** * Creates a anonymous function that check if a given key is base 64 encoded. */ export function isBase64Encoded(key: string): boolean; /** * Validates a function. */ export function isValidFunction(functionObject: any, functionName: string): void; /** * Validates that a Service Bus namespace name * is legally allowable. Does not check availability. */ export function namespaceNameIsValid(name: string): boolean; export function namespaceNameIsValid(name: string, callback: ErrorCallback): boolean; /** * Validates a container name. */ export function containerNameIsValid(containerName: string): boolean; export function containerNameIsValid(containerName: string, callback: ErrorCallback): boolean; /** * Validates a blob name. */ export function blobNameIsValid(containerName: string, blob: string): boolean; export function blobNameIsValid(containerName: string, blob: string, callback: ErrorCallback): boolean; /** * Validates a table name. */ export function tableNameIsValid(tableName: string): boolean; export function tableNameIsValid(tableName: string, callback: ErrorCallback): boolean; /** * Validates a queue name. */ export function queueNameIsValid(queueName: string): boolean; export function queueNameIsValid(queueName: string, callback: ErrorCallback): boolean; export function pageRangesAreValid(rangeStart: number, rangeEnd: number, writeBlockSizeInBytes: number): boolean; export function pageRangesAreValid(rangeStart: number, rangeEnd: number, writeBlockSizeInBytes: number, callback: ErrorCallback): boolean; export function validateArgs(functionName: string, validationRules: Function): boolean; } export module date { /** * Generates a Date object which is in the given days from now. */ export function daysFromNow(days: number): Date; /** * Generates a Date object which is in the given hours from now. */ export function hoursFromNow(hours: number): Date; /** * Generates a Date object which is in the given minutes from now. */ export function minutesFromNow(minutes: number): Date; /** * Generates a Date object which is in the given seconds from now. */ export function secondsFromNow(seconds: number): Date; } //#endregion //#region Non-explicit, undeclared interfaces export interface WebResponse { isSuccessful: boolean; statusCode: number; body: { entry: { id: string; title: any; updated: string; author: { name: any; }; link: any; category: any; content: any; }; }; headers: any; md5: any; } //#region Common Interfaces export interface SimpleCallback<T> { (error: Error, result: T): void; } export interface ErrorCallback { (error: Error): void; } export interface StorageCallbackVoid { (err: Error, response: WebResponse): void; } export interface StorageCallback<T> { (err: Error, result: T, response: WebResponse): void; } export interface StorageServiceStatsCallback extends StorageCallback<StorageServiceStats> { } export interface StorageServicePropertiesCallback extends StorageCallback<StorageServiceProperties> { } export interface TimeoutIntervalOptions { locationMode?: string; timeoutIntervalInMs?: number; maximumExecutionTimeInMs?: number; } export interface MetadataOptions extends TimeoutIntervalOptions { metadata?: StorageMetadata; } export interface StorageAclOptions extends TimeoutIntervalOptions { leaseId?: string; signedIdentifiers: SignedIdentifier[] } export interface Dictionary<T> { [key: string]: T; } export interface StorageServiceProperties { Logging: { Version: number; Delete: boolean; Read: boolean; Write: boolean; RetentionPolicy: { Enabled: boolean; Days: number; }; }; Metrics: { Version: number; Enabled: boolean; IncludeAPIs: boolean; RetentionPolicy: { Enabled: boolean; Days: number; }; }; DefaultServiceVersion: string; } export interface StorageServiceStats { GeoReplication: { Status: string; LastSyncTime: Date; } } export interface SignedIdentifier { Id: string; AccessPolicy: SharedAccessPolicy; } export interface StorageMetadata { [key: string]: string; } export interface ContinuationToken { nextMarker: string; targetLocation: string; } export interface SharedAccessPolicy { Id?: string; AccessPolicy: { Start?: Date; Expiry: Date; Permission?: string; } } //#endregion //#region TableService Interfaces export interface TableRequestCallback { (error: Error, tableResult: { TableName: string; }, response: WebResponse): void; } export interface CreateTableIfNotExistsCallback { (error: Error, created: boolean, response: WebResponse): void; } export interface DeleteTableCallback { (error: Error, successful: boolean, response: WebResponse): void; } export interface QueryTablesCallback { (error: Error, queryTablesResult: TableResult[], resultsContinuation: QueryResultContinuation, response: WebResponse): void; } export interface QueryResultContinuation { tableService: TableService; } export interface QueryTablesOptions extends TimeoutIntervalOptions { nextTableName?: string; } export interface TableResult { TableName: string; } export interface QueryEntityCallback { (error: Error, entity: Entity, response: WebResponse): void; } export interface QueryEntitiesCallback { (error: Error, entities: Entity[], resultContinuation: QueryEntitiesResultContinuation, response: WebResponse): void; } export interface QueryEntitiesResultContinuation extends QueryResultContinuation { tableQuery: TableQuery; nextPartitionKey: string; nextRowKey: string; getNextPage(callback?: QueryEntitiesCallback): void; hasNextPage(): boolean; } export interface ModifyEntityCallback { (error: Error, entity: Entity, response: WebResponse): void; } export interface DeleteEntityCallback { (error: Error, successful: boolean, response: WebResponse): void; } export interface UpdateEntityOptions extends TimeoutIntervalOptions { checkEtag?: boolean; } export interface Entity { PartitionKey: string; RowKey: string; Timestamp?: Date; etag?: string; } //#endregion //#region BlobService Interfaces export interface LeaseIdOptions extends TimeoutIntervalOptions { leaseId?: string; } export interface AccessConditionsOptions extends TimeoutIntervalOptions { accessConditions?: StorageAccessCondition; } export interface LeaseAccessConditionsOptions extends LeaseIdOptions { accessConditions?: StorageAccessCondition; } export interface ListContainersOptions extends TimeoutIntervalOptions { prefix?: string; maxresults?: number; marker: string; include?: string; } export interface ListContainersCallback { (err: Error, containers: ContainerResult[], continuationToken: ContinuationToken, response: WebResponse): void; } export interface CreateContainerOptions extends TimeoutIntervalOptions { metadata?: StorageMetadata; publicAccessLevel?: string; } export interface GetContainerPropertiesOptions extends TimeoutIntervalOptions { leaseId?: string; } export interface GetContainerMetadataOptions extends GetContainerPropertiesOptions { accessConditions?: StorageAccessCondition; } export interface ListBlobsOptions extends ListContainersOptions { prefix?: string; delimiter?: string; } export interface ListBlobsCallback { (err: Error, blobs: BlobResult[], continuationToken: ContinuationToken, response: WebResponse): void; } export interface GetBlobPropertiesOptions extends LeaseAccessConditionsOptions { snapshotId?: string; } export interface SetBlobPropertiesOptions extends LeaseAccessConditionsOptions { contentType?: string; contentEncoding?: string; contentLanguage?: string; contentMD5?: string; cacheControl?: string; contentDisposition?: string; } export interface ReadBlobOptions extends GetBlobPropertiesOptions { rangeStart?: string; rangeEnd?: string; useTransactionalMD5?: boolean; disableContentMD5Validation?: boolean; } export interface GetBlobToTextCallback { (err: Error, text: string, result: BlobResult, response: WebResponse): void; } export interface DeleteBlobOptions extends GetBlobPropertiesOptions { deleteSnapshots?: string; } export interface BlobSnapshotOptions extends GetBlobPropertiesOptions { metadata?: StorageMetadata; } export interface CopyBlobOptions extends BlobSnapshotOptions { sourceLeaseId?: string; sourceAccessConditions: StorageAccessCondition; } export interface UploadBlobOptions extends SetBlobPropertiesOptions { metadata?: StorageMetadata; speedSummary?: SpeedSummary; parallelOperationThreadCount?: number; storeBlobContentMD5?: boolean; useTransactionalMD5?: boolean; } export interface CreatePagesOptions extends LeaseAccessConditionsOptions { contentMD5?: string; useTransactionalMD5?: boolean; } export interface PageRangeOptions extends LeaseIdOptions { snapshotId?: string; rangeStart?: number; rangeEnd?: number; } export interface UploadBlockBlobOptions extends UploadBlobOptions { blockIdPrefix?: string; } export interface CreateBlockOptions extends LeaseAccessConditionsOptions { contentMD5?: string; useTransactionalMD5?: boolean; } export interface LeaseOptions extends AccessConditionsOptions { leaseDuration?: string; proposedLeaseId?: string; } export interface BreakLeaseOptions extends AccessConditionsOptions { leaseBreakPeriod?: number; } export interface SharedAccessSignatureResult { baseUrl: string; path: string; queryString: { se: string; sp: string; sr: string; sv: string; sig: string; }; url: () => string; } export interface BlobHeaders { cacheControl?: string; contentType?: string; contentEncoding?: string; contentLanguage?: string; contentDisposition?: string; } export interface PageRange { start: number; end: number; } export interface BlockList { LatestBlocks: string[]; CommittedBlocks: string[]; UncommittedBlocks: string[]; } export interface StorageAccessCondition { "If-Modified-Since": Date; "If-Unmodified-Since": Date; "If-Match": string; "If-None-Match": string; } //#endregion //#region QueueService Interfaces export interface ListQueuesOptions extends TimeoutIntervalOptions { prefix?: string; maxresults?: number; marker: string; include?: string; } export interface ListQueuesCallback { (err: Error, queues: QueueResult[], continuationToken: ContinuationToken, response: WebResponse): void; } export interface CreateQueueMessageOptions extends TimeoutIntervalOptions { messagettl?: number; visibilitytimeout?: number; } export interface PeekQueueMessagesOptions extends TimeoutIntervalOptions { numofmessages?: number; } export interface GetQueueMessagesOptions extends PeekQueueMessagesOptions { peekonly?: boolean; visibilitytimeout?: number; } export interface UpdateQueueMessagesOptions extends TimeoutIntervalOptions { messagetext?: string; } //#endregion //#region RoleEnvironment Interfaces export interface Role { name: string; instances: { [instanceId: string]: RoleInstance; }; } export interface RoleInstance { id: string; faultDomain: string; updateDomain: string; endpoints: { [endpoint: string]: RoleInstanceEndpoint }; } export interface RoleInstanceEndpoint { protocol: string; address: string; port: number; } export interface RoleLocalResource { name: string; path: string; maximumSizeInMegabytes: number; } //#endregion //#region ConnectionStringParser Interfaces export interface ConnectionStringParseOptions { skipLowerCase: boolean; } //#endregion //#region Validate Interfaces export interface ClusterCreationOptions { name: string; location: string; defaultStorageAccountName: string; defaultStorageAccountKey: string; defaultStorageContainer: string; user: string; password: string; nodes: number; additionalStorageAccounts?: { name: string; key: string; }[]; oozieMetastore?: { server: string; database: string; user: string; password: string; }; hiveMetastore?: { server: string; database: string; user: string; password: string; }; } //#endregion //#region ServiceSettings Interfaces export interface Requirement { SettingName: string; SettingPredicate: Function; } export interface ValidatorFunction { (userSettings: Dictionary<any>): any; } //#endregion //#endregion //#region Un-exported internal classes class StorageServiceClient extends ServiceClient { static incorrectStorageAccountErr: string; static incorrectStorageAccessKeyErr: string; static getStorageSettings(connectionString: string): StorageServiceSettings; static getStorageSettings(storageAccount?: string, storageAccessKey?: string, host?: string): StorageServiceSettings; apiVersion: string; usePathStyleUri: string; constructor(storageAccount: string, storageAccessKey: string, host: string, usePathStyleUri: boolean, authenticationProvider: any); } //#endregion export function isEmulated(): boolean; }