<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->

  <title>Apache Archiva REST API: MergeRepositoriesService</title>

  <!-- Mobile viewport optimized: j.mp/bplateviewport -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- Bootstrap core CSS -->
  <!-- <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css"> -->

  <!--custom css for these pages-->
  <link rel="stylesheet" href="css/enunciate.css">

  <link href="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.css" type="text/css">

  <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
</head>

<body class="home">
 <div class="container">
  <header>
 
   <div id="header" class="column first last span-20">
        <div id="site-name" class="column span-18 append-1 prepend-1 first last"><a href="index.html">Apache Archiva REST API: MergeRepositoriesService</a></div>
        <div id="primary" class="column span-18 append-1 prepend-1 first last">
          <ul class="navigation">
            <li id="nav-rest"><a href="resources.html">REST</a></li>
            <li id="nav-data"><a href="data.html">Data Model</a></li>
          </ul>
        </div>
        <div>
          <ul class="xbreadcrumbs" id="breadcrumbs">
<li>
 <a href="index.html" class="home">Home</a> &gt;

            </li>
<li>
 <a href="resources.html">Resources</a> &gt;

            </li>
<li class="current">
 <a href="resource_MergeRepositoriesService.html">MergeRepositoriesService</a>

            </li>
          </ul>
        </div>
      </div>
  <!--<nav class="navbar navbar-inverse navbar-fixed-top">
    <div class="container-fluid">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" href="index.html">Apache Archiva REST API: MergeRepositoriesService</a>
      </div>
      <div id="navbar" class="navbar-collapse collapse">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="resources.html">Resources</a></li>
          <li><a href="data.html">Data Types</a></li>
          <li><a href="downloads.html">Files and Libraries</a></li>
        </ul>
      </div>
    </div>
  </nav>-->
 </header>
  <div id="main" class="column first last span-20">
  
      <h1 class="page-header">MergeRepositoriesService <small>Resource</small></h1>

      <p>provide REST services on the top of stage merge repository plugin</p>
      <ul>
        <li><a href="#resource_MergeRepositoriesService_getMergeConflictedArtifacts_GET">.//mergeRepositoriesService/mergeConflictedArtifacts/{sourceRepositoryId}/{targetRepositoryId}</a></li>
        <li><a href="#resource_MergeRepositoriesService_mergeRepositories_GET">.//mergeRepositoriesService/mergeRepositories/{sourceRepositoryId}/{targetRepositoryId}/{skipConflicts}</a></li>
      </ul>

      <dl class="dl-horizontal">
        <dt>Available Since</dt>
        <dd>1.4-M3</dd>
      </dl>

      <div id="resource_MergeRepositoriesService_getMergeConflictedArtifacts_GET">
        <h2>GET <small>/mergeRepositoriesService/mergeConflictedArtifacts/{sourceRepositoryId}/{targetRepositoryId} <a href=".//mergeRepositoriesService/mergeConflictedArtifacts/{sourceRepositoryId}/{targetRepositoryId}" class="glyphicon glyphicon-new-window" target="_blank"></a></small></h2>

        <p><b>permissions are checked in impl</b></p>

        <dl class="dl-horizontal">
          <dt>Available Since</dt>
          <dd>1.4-M3</dd>
        </dl>

        <table class="table">
          <caption>Request Parameters</caption>
          <thead>
          <tr>
            <th>name</th>
            <th>type</th>
            <th>description</th>
            <th>default</th>
          </tr>
          </thead>
          <tbody>
          <tr>
            <td>sourceRepositoryId</td>
            <td>path</td>
            <td></td>
            <td>n/a</td>
          </tr>
          <tr>
            <td>targetRepositoryId</td>
            <td>path</td>
            <td></td>
            <td>n/a</td>
          </tr>
          </tbody>
        </table>

        <table class="table">
          <caption>Response Body</caption>
          <thead>
          <tr>
            <th>media type</th>
            <th>data type</th>
            <th>description</th>
          </tr>
          </thead>
          <tbody>
          <tr>
            <td><abbr data-toggle="tooltip" data-placement="top" title="Use the &quot;Accept: application/json&quot; HTTP header to request that this media type be provided by the server.">application/json</abbr></td>
            <td>object
</td>
            <td rowspan="2"></td>
          </tr>
          <tr>
            <td><abbr data-toggle="tooltip" data-placement="top" title="Use the &quot;Accept: application/xml&quot; HTTP header to request that this media type be provided by the server.">application/xml</abbr></td>
            <td>list of <a href="xml_ns0_artifact.html">artifact</a>
 (XML)</td>
          </tr>
          </tbody>
        </table>
      </div>

      <dl class="dl-horizontal">
        <dt>Available Since</dt>
        <dd>1.4-M3</dd>
      </dl>

      <div id="resource_MergeRepositoriesService_mergeRepositories_GET">
        <h2>GET <small>/mergeRepositoriesService/mergeRepositories/{sourceRepositoryId}/{targetRepositoryId}/{skipConflicts} <a href=".//mergeRepositoriesService/mergeRepositories/{sourceRepositoryId}/{targetRepositoryId}/{skipConflicts}" class="glyphicon glyphicon-new-window" target="_blank"></a></small></h2>

        <p><b>permissions are checked in impl</b></p>

        <dl class="dl-horizontal">
          <dt>Available Since</dt>
          <dd>1.4-M3</dd>
        </dl>

        <table class="table">
          <caption>Request Parameters</caption>
          <thead>
          <tr>
            <th>name</th>
            <th>type</th>
            <th>description</th>
            <th>default</th>
          </tr>
          </thead>
          <tbody>
          <tr>
            <td>skipConflicts</td>
            <td>path</td>
            <td></td>
            <td>n/a</td>
          </tr>
          <tr>
            <td>sourceRepositoryId</td>
            <td>path</td>
            <td></td>
            <td>n/a</td>
          </tr>
          <tr>
            <td>targetRepositoryId</td>
            <td>path</td>
            <td></td>
            <td>n/a</td>
          </tr>
          </tbody>
        </table>
      </div>
        
        <footer>
          <div class="footer">
            Generated by <a href="http://enunciate.webcohesion.com">Enunciate</a>.
          </div>
        </footer>

      </div>
    
  </div>


  <!-- JavaScript placed at the end of the document so the pages load faster. -->
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>

  
  <!-- prettify code blocks. see http://code.google.com/p/google-code-prettify/ -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/run_prettify.js" type="text/javascript"></script>
  

</body>
</html>