     @_request { method, path }, callback
 
   # GET FeedURI (/atom/feed)
-  # options:
-  # callback:
-  # - err: error
-  # - res: response
+  # params:
+  #   options:
+  #   callback:
+  #   - err: error
+  #   - res: response
+  # returns:
+  #   Promise
   index: (options, callback) ->
     callback = options unless callback?
     method = 'get'

  @BASE_URL = 'http://f.hatena.ne.jp'

  # constructor
  # options:
  # - type     : always 'wsse'. authentication type. (optional)
  # - username : wsse authentication username. (required)
  # - apikey   : wsse authentication apikey. (required)
  constructor: ({ type, username, apikey }) ->
    @_type = type ? 'wsse'
    @_username = username

    @_wsse = wsse()

  # POST PostURI (/atom/post)
  # params:
  #   options: (required)
  #   - file     : 'content'. image file path. (required)
  #   - title    : 'title'. image title. default `''`.
  #   - type     : 'type'. content-type. default `mime.lookup(file)`.
  #   - folder   : 'dc:subject'. folder name. default `undefined`.
  #   - generator: 'generator'. tool name. default `undefined`.
  #   callback:
  #   - err: error
  #   - res: response
  # returns:
  #   Promise
  create: ({ file, title, type, folder, generator }, callback) ->
    return callback(new Error('options.file is required')) unless file?
    title = title ? ''
