<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>org.apache.iceberg.rest.requests Class Hierarchy</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.6.0.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.min.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="org.apache.iceberg.rest.requests Class Hierarchy";
        }
    }
    catch(err) {
    }
//-->
var pathtoroot = "../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</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" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<main role="main">
<div class="header">
<h1 class="title">Hierarchy For Package org.apache.iceberg.rest.requests</h1>
<span class="packageHierarchyLabel">Package Hierarchies:</span>
<ul class="horizontal">
<li><a href="../../../../../overview-tree.html">All Packages</a></li>
</ul>
</div>
<div class="contentContainer">
<section>
<h2 title="Class Hierarchy">Class Hierarchy</h2>
<ul>
<li class="circle">java.lang.Object
<ul>
<li class="circle">org.apache.iceberg.rest.requests.<a href="CreateNamespaceRequest.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">CreateNamespaceRequest</span></a> (implements org.apache.iceberg.rest.<a href="../RESTRequest.html" title="interface in org.apache.iceberg.rest">RESTRequest</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="CreateNamespaceRequest.Builder.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">CreateNamespaceRequest.Builder</span></a></li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="CreateTableRequest.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">CreateTableRequest</span></a> (implements org.apache.iceberg.rest.<a href="../RESTRequest.html" title="interface in org.apache.iceberg.rest">RESTRequest</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="CreateTableRequest.Builder.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">CreateTableRequest.Builder</span></a></li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="RenameTableRequest.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">RenameTableRequest</span></a> (implements org.apache.iceberg.rest.<a href="../RESTRequest.html" title="interface in org.apache.iceberg.rest">RESTRequest</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="RenameTableRequest.Builder.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">RenameTableRequest.Builder</span></a></li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="ReportMetricsRequestParser.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">ReportMetricsRequestParser</span></a></li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateNamespacePropertiesRequest.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateNamespacePropertiesRequest</span></a> (implements org.apache.iceberg.rest.<a href="../RESTRequest.html" title="interface in org.apache.iceberg.rest">RESTRequest</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateNamespacePropertiesRequest.Builder.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateNamespacePropertiesRequest.Builder</span></a></li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateRequirementParser.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateRequirementParser</span></a></li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest</span></a> (implements org.apache.iceberg.rest.<a href="../RESTRequest.html" title="interface in org.apache.iceberg.rest">RESTRequest</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.Builder.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.Builder</span></a></li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertCurrentSchemaID.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertCurrentSchemaID</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertDefaultSortOrderID.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertDefaultSortOrderID</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertDefaultSpecID.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertDefaultSpecID</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertLastAssignedFieldId.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertLastAssignedFieldId</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertLastAssignedPartitionId.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertLastAssignedPartitionId</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertRefSnapshotID.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertRefSnapshotID</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertTableDoesNotExist.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertTableDoesNotExist</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.AssertTableUUID.html" title="class in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement.AssertTableUUID</span></a> (implements org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests">UpdateTableRequest.UpdateRequirement</a>)</li>
</ul>
</li>
</ul>
</section>
<section>
<h2 title="Interface Hierarchy">Interface Hierarchy</h2>
<ul>
<li class="circle">org.apache.iceberg.rest.<a href="../RESTMessage.html" title="interface in org.apache.iceberg.rest"><span class="typeNameLink">RESTMessage</span></a>
<ul>
<li class="circle">org.apache.iceberg.rest.<a href="../RESTRequest.html" title="interface in org.apache.iceberg.rest"><span class="typeNameLink">RESTRequest</span></a>
<ul>
<li class="circle">org.apache.iceberg.rest.requests.<a href="ReportMetricsRequest.html" title="interface in org.apache.iceberg.rest.requests"><span class="typeNameLink">ReportMetricsRequest</span></a></li>
</ul>
</li>
</ul>
</li>
<li class="circle">org.apache.iceberg.rest.requests.<a href="UpdateTableRequest.UpdateRequirement.html" title="interface in org.apache.iceberg.rest.requests"><span class="typeNameLink">UpdateTableRequest.UpdateRequirement</span></a></li>
</ul>
</section>
<section>
<h2 title="Enum Hierarchy">Enum Hierarchy</h2>
<ul>
<li class="circle">java.lang.Object
<ul>
<li class="circle">java.lang.Enum&lt;E&gt; (implements java.lang.Comparable&lt;T&gt;, java.io.Serializable)
<ul>
<li class="circle">org.apache.iceberg.rest.requests.<a href="ReportMetricsRequest.ReportType.html" title="enum in org.apache.iceberg.rest.requests"><span class="typeNameLink">ReportMetricsRequest.ReportType</span></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</section>
</div>
</main>
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li>Class</li>
<li class="navBarCell1Rev">Tree</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" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.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>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<a id="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
</footer>
</body>
</html>
