<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>Paths</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>

<link rel="shortcut icon" href="/img/microprofile-favicon.png">
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Paths";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/microprofile/openapi/models/PathItem.HttpMethod.html" title="enum in org.eclipse.microprofile.openapi.models"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/microprofile/openapi/models/Reference.html" title="interface in org.eclipse.microprofile.openapi.models"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/microprofile/openapi/models/Paths.html" target="_top">Frames</a></li>
<li><a href="Paths.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.microprofile.openapi.models</div>
<h2 title="Interface Paths" class="title">Interface Paths</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="../../../../../org/eclipse/microprofile/openapi/models/Constructible.html" title="interface in org.eclipse.microprofile.openapi.models">Constructible</a>, <a href="../../../../../org/eclipse/microprofile/openapi/models/Extensible.html" title="interface in org.eclipse.microprofile.openapi.models">Extensible</a>, java.util.Map&lt;java.lang.String,<a href="../../../../../org/eclipse/microprofile/openapi/models/PathItem.html" title="interface in org.eclipse.microprofile.openapi.models">PathItem</a>&gt;</dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Paths</span>
extends <a href="../../../../../org/eclipse/microprofile/openapi/models/Constructible.html" title="interface in org.eclipse.microprofile.openapi.models">Constructible</a>, <a href="../../../../../org/eclipse/microprofile/openapi/models/Extensible.html" title="interface in org.eclipse.microprofile.openapi.models">Extensible</a>, java.util.Map&lt;java.lang.String,<a href="../../../../../org/eclipse/microprofile/openapi/models/PathItem.html" title="interface in org.eclipse.microprofile.openapi.models">PathItem</a>&gt;</pre>
<div class="block">Paths
 <p>
 Holds the relative paths to the individual endpoints and their operations. The path is appended to the URL from the Server Object in order to
 construct the full URL. The Paths MAY be empty, due to
 <a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#security-filtering">security constraints</a>.
 <p></div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href= "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#pathsObject"> OpenAPI Specification Paths Object</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.java.util.Map">
<!--   -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;java.util.Map</h3>
<code>java.util.Map.Entry&lt;K,V&gt;</code></li>
</ul>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/microprofile/openapi/models/Paths.html" title="interface in org.eclipse.microprofile.openapi.models">Paths</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/microprofile/openapi/models/Paths.html#addPathItem-java.lang.String-org.eclipse.microprofile.openapi.models.PathItem-">addPathItem</a></span>(java.lang.String&nbsp;name,
           <a href="../../../../../org/eclipse/microprofile/openapi/models/PathItem.html" title="interface in org.eclipse.microprofile.openapi.models">PathItem</a>&nbsp;item)</code>
<div class="block">Adds the given path item to this Paths and return this instance of Paths</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.microprofile.openapi.models.Extensible">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.microprofile.openapi.models.<a href="../../../../../org/eclipse/microprofile/openapi/models/Extensible.html" title="interface in org.eclipse.microprofile.openapi.models">Extensible</a></h3>
<code><a href="../../../../../org/eclipse/microprofile/openapi/models/Extensible.html#addExtension-java.lang.String-java.lang.Object-">addExtension</a>, <a href="../../../../../org/eclipse/microprofile/openapi/models/Extensible.html#getExtensions--">getExtensions</a>, <a href="../../../../../org/eclipse/microprofile/openapi/models/Extensible.html#setExtensions-java.util.Map-">setExtensions</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.util.Map">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;java.util.Map</h3>
<code>clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="addPathItem-java.lang.String-org.eclipse.microprofile.openapi.models.PathItem-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>addPathItem</h4>
<pre><a href="../../../../../org/eclipse/microprofile/openapi/models/Paths.html" title="interface in org.eclipse.microprofile.openapi.models">Paths</a>&nbsp;addPathItem(java.lang.String&nbsp;name,
                  <a href="../../../../../org/eclipse/microprofile/openapi/models/PathItem.html" title="interface in org.eclipse.microprofile.openapi.models">PathItem</a>&nbsp;item)</pre>
<div class="block">Adds the given path item to this Paths and return this instance of Paths</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - a path name in the format valid for a Paths object. The field name MUST begin with a slash.</dd>
<dd><code>item</code> - the path item added to the list of paths</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current Paths instance</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/microprofile/openapi/models/PathItem.HttpMethod.html" title="enum in org.eclipse.microprofile.openapi.models"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/microprofile/openapi/models/Reference.html" title="interface in org.eclipse.microprofile.openapi.models"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/microprofile/openapi/models/Paths.html" target="_top">Frames</a></li>
<li><a href="Paths.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
