def sync_folder_hierarchy(opts)
      opts = opts.clone
      req = build_soap! do |type, builder|
        if(type == :header)
        else
          builder.nbuild.SyncFolderHierarchy {
            builder.nbuild.parent.default_namespace = @default_ns
            builder.folder_shape!(opts[:folder_shape])
            builder.sync_folder_id!(opts[:sync_folder_id]) if opts[:sync_folder_id]
            builder.sync_state!(opts[:sync_state]) if opts[:sync_state]
          }
        end
      end
      do_soap_request(req, response_class: EwsResponse)
    end
def sync_folder_hierarchy(opts)
      opts = opts.clone
      req = build_soap! do |type, builder|
        if(type == :header)
        else
          builder.nbuild.SyncFolderHierarchy {
            builder.nbuild.parent.default_namespace = @default_ns
            builder.folder_shape!(opts[:folder_shape])
            builder.sync_folder_id!(opts[:sync_folder_id]) if opts[:sync_folder_id]
            builder.sync_state!(opts[:sync_state]) if opts[:sync_state]
          }
        end
      end
      do_soap_request(req, response_class: EwsResponse)
    end
Defines a request to synchronize a folder hierarchy on a client
 @see http://msdn.microsoft.com/en-us/library/aa580990.aspx
 @param [Hash] opts
 @option opts [Hash] :folder_shape The folder shape properties
   Ex: {:base_shape => 'Default', :additional_properties => 'bla bla bla'}
 @option opts [Hash] :sync_folder_id An optional Hash that represents a FolderId or
   DistinguishedFolderId.
   Ex: {:id => :inbox}
 @option opts [Hash] :sync_state The Base64 sync state id. If this is the
   first time syncing this does not need to be passed.