Source: services/blob/blobutilities.js

// 
// Copyright (c) Microsoft and contributors.  All rights reserved.
// 
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// 
// See the License for the specific language governing permissions and
// limitations under the License.
// 

// Expose 'BlobUtilities'.
exports = module.exports;

/**
* Defines constants, enums, and utility functions for use with the Blob service.
* @namespace BlobUtilities
*/
var BlobUtilities = {
  /**
  * Permission types
  *
  * @const
  * @enum {string}
  */
  SharedAccessPermissions: {
    READ: 'r',
    ADD: 'a',
    CREATE: 'c',
    WRITE: 'w',
    DELETE: 'd',
    LIST: 'l'
  },

  /**
  * Blob listing details.
  *
  * @const
  * @enum {string}
  */
  BlobListingDetails: {
    SNAPSHOTS: 'snapshots',
    METADATA: 'metadata',
    UNCOMMITTED_BLOBS: 'uncommittedblobs',
    COPY: 'copy',
    DELETED: 'deleted'
  },

  /**
  * Deletion options for blob snapshots
  *
  * @const
  * @enum {string}
  */
  SnapshotDeleteOptions: {
    SNAPSHOTS_ONLY: 'only',
    BLOB_AND_SNAPSHOTS: 'include'
  },

  /**
  * Type of block list to retrieve
  *
  * @const
  * @enum {string}
  */
  BlockListFilter: {
    ALL: 'all',
    COMMITTED: 'committed',
    UNCOMMITTED: 'uncommitted'
  },

  /**
  * Blobs and container public access types.
  *
  * @const
  * @enum {string}
  */
  BlobContainerPublicAccessType: {
    OFF: null,
    CONTAINER: 'container',
    BLOB: 'blob'
  },

  /**
  * Describes actions that can be performed on a page blob sequence number.
  * @const
  * @enum {string}
  */
  SequenceNumberAction: {
    MAX: 'max',
    UPDATE: 'update',
    INCREMENT: 'increment'
  },

  /**
  * Candidate values for blob tiers.
  *
  * @property {object} PremiumPageBlobTier      Candidate values for premium pageblob tiers.
  * @property {string} PremiumPageBlobTier.P4
  * @property {string} PremiumPageBlobTier.P6
  * @property {string} PremiumPageBlobTier.P10
  * @property {string} PremiumPageBlobTier.P20
  * @property {string} PremiumPageBlobTier.P30
  * @property {string} PremiumPageBlobTier.P40
  * @property {string} PremiumPageBlobTier.P50
  * @property {string} PremiumPageBlobTier.P60
  * @property {object} StandardBlobTier         Candidate values for standard blobs tiers.
  * @property {string} StandardBlobTier.HOT
  * @property {string} StandardBlobTier.COOL
  * @property {string} StandardBlobTier.ARCHIVE
  */
  BlobTier: {
    PremiumPageBlobTier: {
      P4: 'P4',
      P6: 'P6',
      P10: 'P10',
      P20: 'P20',
      P30: 'P30',
      P40: 'P40',
      P50: 'P50',
      P60: 'P60'
    },
    StandardBlobTier: {
      HOT: 'Hot',
      COOL: 'Cool',
      ARCHIVE: 'Archive'
    }
  }
};

module.exports = BlobUtilities;