Microsoft.SqlServer.AzureStorageEnum This class implements the AzureStore level of the enumerator(root level). This level represents the Azure Storage server. Urns are this level are of the form: AzureStorage[@Name='accountname'] The following properties are exposed. Name: The account name associated with this server. Urn: The Urn of this enumerator object. Uri: The base URI of the storage account. This is the base class of all enumerator objects in the Azure Storage hierarchy. This abstract class provides implementations of the abstract entities in EnumObject, and defines a number of additional abstract entities for subclasses to implement. In short, subclasses have two responsibilities: contributing to a filter (via AddFilter) or fulfilling a request for data (via GetDataImpl). Only the final level of a request will be asked to fetch data. All intermediate levels will, at most, contribute to a filter. We support filtering on only two dimensions: blobName name and containerName name. For example, suppose we're given the urn: AzureStorage/Container[@Name='mycontainer']/Blob[@Name='myblob'] The will result in three calls to the GetData method in EnumObject, once for each level of the urn (AzureStorage, Container, Blob, in that order). The first call will no nothing, since no filter is given on the first level. The second call will add 'mycontainer' to the containerName filter. The third call will add 'myblob' to the blobName filter, then will issue a request to the storage server for the attributes of the blobName 'myblob' in containerName 'mycontainer'. This class also provides some convenience methods and properties. Initializes a new instance of the AzureStorageEnumObject class, and adds properties common to all storage enumerator objects. Implementation of the GetData method from EnumObject. The algorithm here is: If we're at the first level of the urn, we construct a new AzureStorageEnumResult object. This object will be passed to all subsequent calls. Next, if we're not at the final level of the urn, and our level has a filter, we add that filter to the AzureStorageEnumResult object. Lastly, if we're at the final level of the enumerator, we fetch data from the storage server and package it into a DataTable. The result from the parent request. An EnumResult for the current level. If we're on the final level, the result will contain a DataTable. Adds a filter to the given AzureStorageEnumResult. This is called from GetData when a level specifies a filter. The current enumerator result. Populates a data table with a response to the current request, based on the given AzureStorageEnumResult (which keeps track of all the filters added across all levels). The current enumerator result. The table to populate. Adds a string property with the given usages to this enumerator object. This property will be nonexpensive. The name of the property. The usages of the property. Adds a property with the given type and usages to this enumerator object. This property will be nonexpensive. The name of the property. The name of the type of the property (e.g. "System.String") The usages of the property. Adds a property with the given type and usages to this enumerator object. If the expensive parameter is set to true, this property will be marked as expensive. The name of the property. The name of the type of the property (e.g. "System.String") The usages of the property. Determines wheter this property is marked as expensive or not. Creates a data table with columns determined by the fields in the given Request object. A request to the enumerator. An data table with zero rows, and a column for each requested field in the given Request object. Returns the result types supported by this Gets the storage connection info passed to this enumerator. Gets the blobName client associated with the connection info passed to this enumerator. The parameterized Urn for objects at this level. There is no filter at this level, so this is a NOOP. The AzureStorageEnumResult object for this enumerator query. The class is used to build up filters as we travel down the enumerator query. At the last node, we apply any filters in this object to the query we send to the azure storage server. Initializes a new instance of the AzureStorageEnumResult class, with empty filters. Gets a list of container names we want to get data for. Gets a list of blob names we want to get data for. This class implements the blobName level of the Azure Storage enumerator. This is the third level of the hierarchy. Urns are this level are of the form: AzureStorage[@Name='accountname']/Container[@Name='mycontainer']/Blob[@Name='myblob'] The following properties are exposed. Name: The containerName name. Urn: The Urn of this enumerator object. Uri: The base URI of the containerName. LastModifiedUtc: The base URI of the storage account. Size: The size of the containerName. The parameterized Urn for objects at this level. At this level, we add any blob Name filters to the given AzureStorageEnumResult. The AzureStorageEnumResult object to which we add the filter. At this level, we are fetching blob data, honoring any blob filters and container filters that are present. The AzureStorageEnumResult for this query. The data table to populate. Add a row to the given data table representing the given blob. We only add the properties specified in the given Request. The data table to add a row to. A request to this enumerator. The blob to add to the given table. This class implements the containerName level of the Azure Storage enumerator. This is the second level of the hierarchy. Urns are this level are of the form: AzureStorage[@Name='accountname']/Container[@Name='mycontainer'] The following properties are exposed. Name: The containerName name. Urn: The Urn of this enumerator object. Uri: The base URI of the containerName. LastModifiedUtc: The base URI of the storage account. The parameterized Urn for objects at this level. At this level, we add any container Name filters present to the given AzureStorageEnumResult. The AzureStorageEnumResult for this query. Retrieve data for this request. At this level, we are fetching containerName data. We must honor any containerName filters present. If there is no filter, we fetch data for all containers. The AzureStorageEnumResult for this query. The data table to populate. Add a row to the given data table representing the given container. We only add the properties specified in the given Request. The data table to add a row to. A request to this enumerator. The container to add to the given table.