code: 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
docs: 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.