<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
<!-- on Thu May 12 17:47:43 PDT 2016 -->

<api
  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
  xsi:noNamespaceSchemaLocation='api.xsd'
  name="hadoop-yarn-common 2.7.2"
  jdversion="1.0.9">

<!--  Command line arguments =  -doclet org.apache.hadoop.classification.tools.ExcludePrivateAnnotationsJDiffDoclet -docletpath /Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/target/hadoop-annotations.jar:/Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/target/jdiff.jar -verbose -classpath /Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/target/classes:/Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-common-project/hadoop-common/target/hadoop-common-2.7.2.jar:/Users/vinodkv/.m2/repository/org/apache/commons/commons-math3/3.1.1/commons-math3-3.1.1.jar:/Users/vinodkv/.m2/repository/xmlenc/xmlenc/0.52/xmlenc-0.52.jar:/Users/vinodkv/.m2/repository/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar:/Users/vinodkv/.m2/repository/commons-net/commons-net/3.1/commons-net-3.1.jar:/Users/vinodkv/.m2/repository/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar:/Users/vinodkv/.m2/repository/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar:/Users/vinodkv/.m2/repository/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar:/Users/vinodkv/.m2/repository/net/java/dev/jets3t/jets3t/0.9.0/jets3t-0.9.0.jar:/Users/vinodkv/.m2/repository/org/apache/httpcomponents/httpclient/4.2.5/httpclient-4.2.5.jar:/Users/vinodkv/.m2/repository/org/apache/httpcomponents/httpcore/4.2.5/httpcore-4.2.5.jar:/Users/vinodkv/.m2/repository/com/jamesmurty/utils/java-xmlbuilder/0.4/java-xmlbuilder-0.4.jar:/Users/vinodkv/.m2/repository/commons-configuration/commons-configuration/1.6/commons-configuration-1.6.jar:/Users/vinodkv/.m2/repository/commons-digester/commons-digester/1.8/commons-digester-1.8.jar:/Users/vinodkv/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar:/Users/vinodkv/.m2/repository/commons-beanutils/commons-beanutils-core/1.8.0/commons-beanutils-core-1.8.0.jar:/Users/vinodkv/.m2/repository/org/slf4j/slf4j-log4j12/1.7.10/slf4j-log4j12-1.7.10.jar:/Users/vinodkv/.m2/repository/org/apache/avro/avro/1.7.4/avro-1.7.4.jar:/Users/vinodkv/.m2/repository/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3.jar:/Users/vinodkv/.m2/repository/org/xerial/snappy/snappy-java/1.0.4.1/snappy-java-1.0.4.1.jar:/Users/vinodkv/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar:/Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-common-project/hadoop-auth/target/hadoop-auth-2.7.2.jar:/Users/vinodkv/.m2/repository/org/apache/directory/server/apacheds-kerberos-codec/2.0.0-M15/apacheds-kerberos-codec-2.0.0-M15.jar:/Users/vinodkv/.m2/repository/org/apache/directory/server/apacheds-i18n/2.0.0-M15/apacheds-i18n-2.0.0-M15.jar:/Users/vinodkv/.m2/repository/org/apache/directory/api/api-asn1-api/1.0.0-M20/api-asn1-api-1.0.0-M20.jar:/Users/vinodkv/.m2/repository/org/apache/directory/api/api-util/1.0.0-M20/api-util-1.0.0-M20.jar:/Users/vinodkv/.m2/repository/org/apache/curator/curator-framework/2.7.1/curator-framework-2.7.1.jar:/Users/vinodkv/.m2/repository/com/jcraft/jsch/0.1.42/jsch-0.1.42.jar:/Users/vinodkv/.m2/repository/org/apache/curator/curator-client/2.7.1/curator-client-2.7.1.jar:/Users/vinodkv/.m2/repository/org/apache/curator/curator-recipes/2.7.1/curator-recipes-2.7.1.jar:/Users/vinodkv/.m2/repository/com/google/code/findbugs/jsr305/3.0.0/jsr305-3.0.0.jar:/Users/vinodkv/.m2/repository/org/apache/htrace/htrace-core/3.1.0-incubating/htrace-core-3.1.0-incubating.jar:/Users/vinodkv/.m2/repository/org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar:/Users/vinodkv/.m2/repository/io/netty/netty/3.6.2.Final/netty-3.6.2.Final.jar:/Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/target/hadoop-yarn-api-2.7.2.jar:/Users/vinodkv/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/vinodkv/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/vinodkv/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/vinodkv/.m2/repository/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar:/Users/vinodkv/.m2/repository/org/tukaani/xz/1.0/xz-1.0.jar:/Users/vinodkv/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/vinodkv/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar:/Users/vinodkv/.m2/repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar:/Users/vinodkv/.m2/repository/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.jar:/Users/vinodkv/.m2/repository/com/sun/jersey/jersey-core/1.9/jersey-core-1.9.jar:/Users/vinodkv/.m2/repository/com/sun/jersey/jersey-client/1.9/jersey-client-1.9.jar:/Users/vinodkv/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar:/Users/vinodkv/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar:/Users/vinodkv/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.13/jackson-jaxrs-1.9.13.jar:/Users/vinodkv/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.13/jackson-xc-1.9.13.jar:/Users/vinodkv/.m2/repository/com/google/guava/guava/11.0.2/guava-11.0.2.jar:/Users/vinodkv/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/Users/vinodkv/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar:/Users/vinodkv/.m2/repository/org/slf4j/slf4j-api/1.7.10/slf4j-api-1.7.10.jar:/Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-common-project/hadoop-annotations/target/hadoop-annotations-2.7.2.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/lib/tools.jar:/Users/vinodkv/.m2/repository/com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar:/Users/vinodkv/.m2/repository/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar:/Users/vinodkv/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar:/Users/vinodkv/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar:/Users/vinodkv/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/vinodkv/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/vinodkv/.m2/repository/com/sun/jersey/jersey-server/1.9/jersey-server-1.9.jar:/Users/vinodkv/.m2/repository/asm/asm/3.2/asm-3.2.jar:/Users/vinodkv/.m2/repository/com/sun/jersey/jersey-json/1.9/jersey-json-1.9.jar:/Users/vinodkv/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar:/Users/vinodkv/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/vinodkv/.m2/repository/com/sun/jersey/contribs/jersey-guice/1.9/jersey-guice-1.9.jar:/Users/vinodkv/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar -sourcepath /Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java -apidir /Users/vinodkv/Workspace/eclipse-workspace/apache-git/hadoop/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/target/site/jdiff/xml -apiname hadoop-yarn-common 2.7.2 -->
<package name="org.apache.hadoop.yarn">
  <!-- start class org.apache.hadoop.yarn.ContainerLogAppender -->
  <class name="ContainerLogAppender" extends="org.apache.log4j.FileAppender"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Flushable"/>
    <constructor name="ContainerLogAppender"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="activateOptions"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="append"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="event" type="org.apache.log4j.spi.LoggingEvent"/>
    </method>
    <method name="flush"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getContainerLogDir" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Getter/Setter methods for log4j.]]>
      </doc>
    </method>
    <method name="setContainerLogDir"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="containerLogDir" type="java.lang.String"/>
    </method>
    <method name="getContainerLogFile" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setContainerLogFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="containerLogFile" type="java.lang.String"/>
    </method>
    <method name="getTotalLogFileSize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setTotalLogFileSize"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="logSize" type="long"/>
    </method>
    <doc>
    <![CDATA[A simple log4j-appender for container's logs.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.ContainerLogAppender -->
  <!-- start class org.apache.hadoop.yarn.ContainerRollingLogAppender -->
  <class name="ContainerRollingLogAppender" extends="org.apache.log4j.RollingFileAppender"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Flushable"/>
    <constructor name="ContainerRollingLogAppender"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="activateOptions"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="flush"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getContainerLogDir" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Getter/Setter methods for log4j.]]>
      </doc>
    </method>
    <method name="setContainerLogDir"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="containerLogDir" type="java.lang.String"/>
    </method>
    <method name="getContainerLogFile" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="setContainerLogFile"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="containerLogFile" type="java.lang.String"/>
    </method>
    <doc>
    <![CDATA[A simple log4j-appender for container's logs.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.ContainerRollingLogAppender -->
  <!-- start class org.apache.hadoop.yarn.YarnUncaughtExceptionHandler -->
  <class name="YarnUncaughtExceptionHandler" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Thread.UncaughtExceptionHandler"/>
    <constructor name="YarnUncaughtExceptionHandler"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="uncaughtException"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="t" type="java.lang.Thread"/>
      <param name="e" type="java.lang.Throwable"/>
    </method>
    <doc>
    <![CDATA[This class is intended to be installed by calling
 {@link Thread#setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler)}
 In the main entry point.  It is intended to try and cleanly shut down
 programs using the Yarn Event framework.

 Note: Right now it only will shut down the program if a Error is caught, but
 not any other exception.  Anything else is just logged.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.YarnUncaughtExceptionHandler -->
</package>
<package name="org.apache.hadoop.yarn.api">
</package>
<package name="org.apache.hadoop.yarn.client">
  <!-- start class org.apache.hadoop.yarn.client.AHSProxy -->
  <class name="AHSProxy" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AHSProxy"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createAHSProxy" return="T"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="protocol" type="java.lang.Class"/>
      <param name="ahsAddress" type="java.net.InetSocketAddress"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getProxy" return="T"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="protocol" type="java.lang.Class"/>
      <param name="rmAddress" type="java.net.InetSocketAddress"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.client.AHSProxy -->
  <!-- start class org.apache.hadoop.yarn.client.ClientRMProxy -->
  <class name="ClientRMProxy" extends="org.apache.hadoop.yarn.client.RMProxy"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="createRMProxy" return="T"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="configuration" type="org.apache.hadoop.conf.Configuration"/>
      <param name="protocol" type="java.lang.Class"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Create a proxy to the ResourceManager for the specified protocol.
 @param configuration Configuration with all the required information.
 @param protocol Client protocol for which proxy is being requested.
 @param <T> Type of proxy.
 @return Proxy to the ResourceManager for the specified client protocol.
 @throws IOException]]>
      </doc>
    </method>
    <method name="getRMDelegationTokenService" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Get the token service name to be used for RMDelegationToken. Depending
 on whether HA is enabled or not, this method generates the appropriate
 service name as a comma-separated list of service addresses.

 @param conf Configuration corresponding to the cluster we need the
             RMDelegationToken for
 @return - Service name for RMDelegationToken]]>
      </doc>
    </method>
    <method name="getAMRMTokenService" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getTokenService" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="address" type="java.lang.String"/>
      <param name="defaultAddr" type="java.lang.String"/>
      <param name="defaultPort" type="int"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.client.ClientRMProxy -->
  <!-- start class org.apache.hadoop.yarn.client.NMProxy -->
  <class name="NMProxy" extends="org.apache.hadoop.yarn.client.ServerProxy"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NMProxy"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createNMProxy" return="T"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="protocol" type="java.lang.Class"/>
      <param name="ugi" type="org.apache.hadoop.security.UserGroupInformation"/>
      <param name="rpc" type="org.apache.hadoop.yarn.ipc.YarnRPC"/>
      <param name="serverAddress" type="java.net.InetSocketAddress"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.client.NMProxy -->
  <!-- start class org.apache.hadoop.yarn.client.RMHAServiceTarget -->
  <class name="RMHAServiceTarget" extends="org.apache.hadoop.ha.HAServiceTarget"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RMHAServiceTarget" type="org.apache.hadoop.yarn.conf.YarnConfiguration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getAddress" return="java.net.InetSocketAddress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getZKFCAddress" return="java.net.InetSocketAddress"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getFencer" return="org.apache.hadoop.ha.NodeFencer"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="checkFencingConfigured"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="BadFencingConfigurationException" type="org.apache.hadoop.ha.BadFencingConfigurationException"/>
    </method>
    <method name="isAutoFailoverEnabled" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.client.RMHAServiceTarget -->
  <!-- start class org.apache.hadoop.yarn.client.RMProxy -->
  <class name="RMProxy" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RMProxy"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="createRMProxy" return="T"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="This method is deprecated and is not used by YARN internally any more.
 To create a proxy to the RM, use ClientRMProxy#createRMProxy or
 ServerRMProxy#createRMProxy.

 Create a proxy to the ResourceManager at the specified address.">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="protocol" type="java.lang.Class"/>
      <param name="rmAddress" type="java.net.InetSocketAddress"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[@deprecated
 This method is deprecated and is not used by YARN internally any more.
 To create a proxy to the RM, use ClientRMProxy#createRMProxy or
 ServerRMProxy#createRMProxy.

 Create a proxy to the ResourceManager at the specified address.

 @param conf Configuration to generate retry policy
 @param protocol Protocol for the proxy
 @param rmAddress Address of the ResourceManager
 @param <T> Type information of the proxy
 @return Proxy to the RM
 @throws IOException]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.client.RMProxy -->
  <!-- start class org.apache.hadoop.yarn.client.ServerProxy -->
  <class name="ServerProxy" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ServerProxy"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="createRetryPolicy" return="org.apache.hadoop.io.retry.RetryPolicy"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="maxWaitTimeStr" type="java.lang.String"/>
      <param name="defMaxWaitTime" type="long"/>
      <param name="connectRetryIntervalStr" type="java.lang.String"/>
      <param name="defRetryInterval" type="long"/>
    </method>
    <method name="createRetriableProxy" return="T"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <param name="protocol" type="java.lang.Class"/>
      <param name="user" type="org.apache.hadoop.security.UserGroupInformation"/>
      <param name="rpc" type="org.apache.hadoop.yarn.ipc.YarnRPC"/>
      <param name="serverAddress" type="java.net.InetSocketAddress"/>
      <param name="retryPolicy" type="org.apache.hadoop.io.retry.RetryPolicy"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.client.ServerProxy -->
</package>
<package name="org.apache.hadoop.yarn.client.api">
  <!-- start class org.apache.hadoop.yarn.client.api.TimelineClient -->
  <class name="TimelineClient" extends="org.apache.hadoop.service.AbstractService"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TimelineClient" type="java.lang.String"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="createTimelineClient" return="org.apache.hadoop.yarn.client.api.TimelineClient"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a timeline client. The current UGI when the user initialize the
 client will be used to do the put and the delegation token operations. The
 current user may use {@link UserGroupInformation#doAs} another user to
 construct and initialize a timeline client if the following operations are
 supposed to be conducted by that user.

 @return a timeline client]]>
      </doc>
    </method>
    <method name="putEntities" return="org.apache.hadoop.yarn.api.records.timeline.TimelinePutResponse"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="entities" type="org.apache.hadoop.yarn.api.records.timeline.TimelineEntity[]"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/>
      <doc>
      <![CDATA[<p>
 Send the information of a number of conceptual entities to the timeline
 server. It is a blocking API. The method will not return until it gets the
 response from the timeline server.
 </p>

 @param entities
          the collection of {@link TimelineEntity}
 @return the error information if the sent entities are not correctly stored
 @throws IOException
 @throws YarnException]]>
      </doc>
    </method>
    <method name="putDomain"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="domain" type="org.apache.hadoop.yarn.api.records.timeline.TimelineDomain"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/>
      <doc>
      <![CDATA[<p>
 Send the information of a domain to the timeline server. It is a
 blocking API. The method will not return until it gets the response from
 the timeline server.
 </p>

 @param domain
          an {@link TimelineDomain} object
 @throws IOException
 @throws YarnException]]>
      </doc>
    </method>
    <method name="getDelegationToken" return="org.apache.hadoop.security.token.Token"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="renewer" type="java.lang.String"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/>
      <doc>
      <![CDATA[<p>
 Get a delegation token so as to be able to talk to the timeline server in a
 secure way.
 </p>

 @param renewer
          Address of the renewer who can renew these tokens when needed by
          securely talking to the timeline server
 @return a delegation token ({@link Token}) that can be used to talk to the
         timeline server
 @throws IOException
 @throws YarnException]]>
      </doc>
    </method>
    <method name="renewDelegationToken" return="long"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="timelineDT" type="org.apache.hadoop.security.token.Token"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/>
      <doc>
      <![CDATA[<p>
 Renew a timeline delegation token.
 </p>

 @param timelineDT
          the delegation token to renew
 @return the new expiration time
 @throws IOException
 @throws YarnException]]>
      </doc>
    </method>
    <method name="cancelDelegationToken"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="timelineDT" type="org.apache.hadoop.security.token.Token"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/>
      <doc>
      <![CDATA[<p>
 Cancel a timeline delegation token.
 </p>

 @param timelineDT
          the delegation token to cancel
 @throws IOException
 @throws YarnException]]>
      </doc>
    </method>
    <doc>
    <![CDATA[A client library that can be used to post some information in terms of a
 number of conceptual entities.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.client.api.TimelineClient -->
</package>
<package name="org.apache.hadoop.yarn.client.api.impl">
</package>
<package name="org.apache.hadoop.yarn.event">
  <!-- start class org.apache.hadoop.yarn.event.AbstractEvent -->
  <class name="AbstractEvent" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.yarn.event.Event"/>
    <constructor name="AbstractEvent" type="TYPE"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="AbstractEvent" type="TYPE, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTimestamp" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getType" return="TYPE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Parent class of all the events. All events extend this class.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.event.AbstractEvent -->
  <!-- start class org.apache.hadoop.yarn.event.AsyncDispatcher -->
  <class name="AsyncDispatcher" extends="org.apache.hadoop.service.AbstractService"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.yarn.event.Dispatcher"/>
    <constructor name="AsyncDispatcher"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="AsyncDispatcher" type="java.util.concurrent.BlockingQueue"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="serviceInit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="serviceStart"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="setDrainEventsOnStop"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="serviceStop"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="dispatch"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="event" type="org.apache.hadoop.yarn.event.Event"/>
    </method>
    <method name="register"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eventType" type="java.lang.Class"/>
      <param name="handler" type="org.apache.hadoop.yarn.event.EventHandler"/>
    </method>
    <method name="getEventHandler" return="org.apache.hadoop.yarn.event.EventHandler"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="isEventThreadWaiting" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="isDrained" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <field name="eventDispatchers" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Dispatches {@link Event}s in a separate thread. Currently only single thread
 does that. Potentially there could be multiple channels for each event type
 class and a thread pool can be used to dispatch the events.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.event.AsyncDispatcher -->
  <!-- start interface org.apache.hadoop.yarn.event.Dispatcher -->
  <interface name="Dispatcher"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getEventHandler" return="org.apache.hadoop.yarn.event.EventHandler"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="register"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eventType" type="java.lang.Class"/>
      <param name="handler" type="org.apache.hadoop.yarn.event.EventHandler"/>
    </method>
    <field name="DISPATCHER_EXIT_ON_ERROR_KEY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="DEFAULT_DISPATCHER_EXIT_ON_ERROR" type="boolean"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Event Dispatcher interface. It dispatches events to registered
 event handlers based on event types.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.event.Dispatcher -->
  <!-- start interface org.apache.hadoop.yarn.event.Event -->
  <interface name="Event"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getType" return="TYPE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getTimestamp" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Interface defining events api.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.event.Event -->
  <!-- start interface org.apache.hadoop.yarn.event.EventHandler -->
  <interface name="EventHandler"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="handle"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="event" type="T"/>
    </method>
    <doc>
    <![CDATA[Interface for handling events of type T

 @param <T> parameterized event of type T]]>
    </doc>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.event.EventHandler -->
</package>
<package name="org.apache.hadoop.yarn.factories">
</package>
<package name="org.apache.hadoop.yarn.factory.providers">
</package>
<package name="org.apache.hadoop.yarn.logaggregation">
  <!-- start class org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat -->
  <class name="AggregatedLogFormat" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AggregatedLogFormat"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat -->
  <!-- start class org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat.LogKey -->
  <class name="AggregatedLogFormat.LogKey" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.io.Writable"/>
    <constructor name="AggregatedLogFormat.LogKey"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="AggregatedLogFormat.LogKey" type="org.apache.hadoop.yarn.api.records.ContainerId"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="AggregatedLogFormat.LogKey" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat.LogKey -->
  <!-- start class org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat.LogReader -->
  <class name="AggregatedLogFormat.LogReader" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AggregatedLogFormat.LogReader" type="org.apache.hadoop.conf.Configuration, org.apache.hadoop.fs.Path"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="getApplicationOwner" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns the owner of the application.

 @return the application owner.
 @throws IOException]]>
      </doc>
    </method>
    <method name="getApplicationAcls" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Returns ACLs for the application. An empty map is returned if no ACLs are
 found.

 @return a map of the Application ACLs.
 @throws IOException]]>
      </doc>
    </method>
    <method name="next" return="java.io.DataInputStream"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat.LogKey"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Read the next key and return the value-stream.

 @param key
 @return the valueStream if there are more keys or null otherwise.
 @throws IOException]]>
      </doc>
    </method>
    <method name="readAcontainerLogs"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="valueStream" type="java.io.DataInputStream"/>
      <param name="writer" type="java.io.Writer"/>
      <param name="logUploadedTime" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Writes all logs for a single container to the provided writer.
 @param valueStream
 @param writer
 @param logUploadedTime
 @throws IOException]]>
      </doc>
    </method>
    <method name="readAcontainerLogs"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="valueStream" type="java.io.DataInputStream"/>
      <param name="writer" type="java.io.Writer"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Writes all logs for a single container to the provided writer.
 @param valueStream
 @param writer
 @throws IOException]]>
      </doc>
    </method>
    <method name="readAContainerLogsForALogType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="valueStream" type="java.io.DataInputStream"/>
      <param name="out" type="java.io.PrintStream"/>
      <param name="logUploadedTime" type="long"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Keep calling this till you get a {@link EOFException} for getting logs of
 all types for a single container.

 @param valueStream
 @param out
 @param logUploadedTime
 @throws IOException]]>
      </doc>
    </method>
    <method name="readAContainerLogsForALogType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="valueStream" type="java.io.DataInputStream"/>
      <param name="out" type="java.io.PrintStream"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Keep calling this till you get a {@link EOFException} for getting logs of
 all types for a single container.

 @param valueStream
 @param out
 @throws IOException]]>
      </doc>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.logaggregation.AggregatedLogFormat.LogReader -->
  <!-- start class org.apache.hadoop.yarn.logaggregation.LogCLIHelpers -->
  <class name="LogCLIHelpers" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.conf.Configurable"/>
    <constructor name="LogCLIHelpers"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="setConf"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getConf" return="org.apache.hadoop.conf.Configuration"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.logaggregation.LogCLIHelpers -->
</package>
<package name="org.apache.hadoop.yarn.nodelabels">
  <!-- start class org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager -->
  <class name="CommonNodeLabelsManager" extends="org.apache.hadoop.service.AbstractService"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="CommonNodeLabelsManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="handleStoreEvent"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="event" type="org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEvent"/>
    </method>
    <method name="initDispatcher"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="serviceInit"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="initNodeLabelStore"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="startDispatcher"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="serviceStart"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="stopDispatcher"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </method>
    <method name="serviceStop"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="addToCluserNodeLabels"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="labels" type="java.util.Set"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Add multiple node labels to repository

 @param labels
          new node labels added]]>
      </doc>
    </method>
    <method name="checkAddLabelsToNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="addedLabelsToNode" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="addLabelsToNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="addedLabelsToNode" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[add more labels to nodes

 @param addedLabelsToNode node {@literal ->} labels map]]>
      </doc>
    </method>
    <method name="checkRemoveFromClusterNodeLabels"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="labelsToRemove" type="java.util.Collection"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="internalRemoveFromClusterNodeLabels"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="labelsToRemove" type="java.util.Collection"/>
    </method>
    <method name="removeFromClusterNodeLabels"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="labelsToRemove" type="java.util.Collection"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Remove multiple node labels from repository

 @param labelsToRemove
          node labels to remove
 @throws IOException]]>
      </doc>
    </method>
    <method name="checkRemoveLabelsFromNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="removeLabelsFromNode" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="removeNodeFromLabels"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="node" type="org.apache.hadoop.yarn.api.records.NodeId"/>
      <param name="labels" type="java.util.Set"/>
    </method>
    <method name="internalUpdateLabelsOnNodes"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeToLabels" type="java.util.Map"/>
      <param name="op" type="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.NodeLabelUpdateOperation"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="removeLabelsFromNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="removeLabelsFromNode" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[remove labels from nodes, labels being removed most be contained by these
 nodes

 @param removeLabelsFromNode node {@literal ->} labels map]]>
      </doc>
    </method>
    <method name="checkReplaceLabelsOnNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="replaceLabelsToNode" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="replaceLabelsOnNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="replaceLabelsToNode" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[replace labels to nodes

 @param replaceLabelsToNode node {@literal ->} labels map]]>
      </doc>
    </method>
    <method name="getNodeLabels" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get mapping of nodes to labels

 @return nodes to labels map]]>
      </doc>
    </method>
    <method name="getLabelsToNodes" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get mapping of labels to nodes for all the labels.

 @return labels to nodes map]]>
      </doc>
    </method>
    <method name="getLabelsToNodes" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="labels" type="java.util.Set"/>
      <doc>
      <![CDATA[Get mapping of labels to nodes for specified set of labels.

 @param labels set of labels for which labels to nodes mapping will be
        returned.
 @return labels to nodes map]]>
      </doc>
    </method>
    <method name="getClusterNodeLabels" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get existing valid labels in repository

 @return existing valid labels in repository]]>
      </doc>
    </method>
    <method name="normalizeLabel" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="label" type="java.lang.String"/>
    </method>
    <method name="getNMInNodeSet" return="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Node"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/>
    </method>
    <method name="getNMInNodeSet" return="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Node"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/>
      <param name="map" type="java.util.Map"/>
    </method>
    <method name="getNMInNodeSet" return="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Node"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/>
      <param name="map" type="java.util.Map"/>
      <param name="checkRunning" type="boolean"/>
    </method>
    <method name="getLabelsByNode" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/>
    </method>
    <method name="getLabelsByNode" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/>
      <param name="map" type="java.util.Map"/>
    </method>
    <method name="createNodeIfNonExisted"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="createHostIfNonExisted"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="hostName" type="java.lang.String"/>
    </method>
    <method name="normalizeNodeIdToLabels" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="nodeIdToLabels" type="java.util.Map"/>
    </method>
    <field name="LOG" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="EMPTY_STRING_SET" type="java.util.Set"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ANY" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="ACCESS_ANY_LABEL_SET" type="java.util.Set"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="WILDCARD_PORT" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="NODE_LABELS_NOT_ENABLED_ERR" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Error messages]]>
      </doc>
    </field>
    <field name="NO_LABEL" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[If a user doesn't specify label of a queue or node, it belongs
 DEFAULT_LABEL]]>
      </doc>
    </field>
    <field name="dispatcher" type="org.apache.hadoop.yarn.event.Dispatcher"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="labelCollections" type="java.util.concurrent.ConcurrentMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="nodeCollections" type="java.util.concurrent.ConcurrentMap"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="readLock" type="java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="writeLock" type="java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="store" type="org.apache.hadoop.yarn.nodelabels.NodeLabelsStore"
      transient="false" volatile="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Host -->
  <class name="CommonNodeLabelsManager.Host" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="CommonNodeLabelsManager.Host"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="copy" return="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Host"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="labels" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="nms" type="java.util.Map"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A <code>Host</code> can have multiple <code>Node</code>s]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Host -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Node -->
  <class name="CommonNodeLabelsManager.Node" extends="java.lang.Object"
    abstract="false"
    static="true" final="false" visibility="protected"
    deprecated="not deprecated">
    <constructor name="CommonNodeLabelsManager.Node" type="org.apache.hadoop.yarn.api.records.NodeId"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="copy" return="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Node"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="labels" type="java.util.Set"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="resource" type="org.apache.hadoop.yarn.api.records.Resource"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="running" type="boolean"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
    <field name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"
      transient="false" volatile="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager.Node -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.FileSystemNodeLabelsStore -->
  <class name="FileSystemNodeLabelsStore" extends="org.apache.hadoop.yarn.nodelabels.NodeLabelsStore"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="FileSystemNodeLabelsStore" type="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="updateNodeToLabelsMappings"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nodeToLabels" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="storeNewClusterNodeLabels"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="labels" type="java.util.Set"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="removeClusterNodeLabels"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="labels" type="java.util.Collection"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="recover"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <field name="LOG" type="org.apache.commons.logging.Log"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="DEFAULT_DIR_NAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="MIRROR_FILENAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
    <field name="EDITLOG_FILENAME" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.FileSystemNodeLabelsStore -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.FileSystemNodeLabelsStore.SerializedLogType -->
  <class name="FileSystemNodeLabelsStore.SerializedLogType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="protected"
    deprecated="not deprecated">
    <method name="values" return="org.apache.hadoop.yarn.nodelabels.FileSystemNodeLabelsStore.SerializedLogType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.hadoop.yarn.nodelabels.FileSystemNodeLabelsStore.SerializedLogType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.FileSystemNodeLabelsStore.SerializedLogType -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.NodeLabel -->
  <class name="NodeLabel" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.lang.Comparable"/>
    <constructor name="NodeLabel" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NodeLabel" type="java.lang.String, org.apache.hadoop.yarn.api.records.Resource, int"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
    </constructor>
    <method name="addNodeId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="node" type="org.apache.hadoop.yarn.api.records.NodeId"/>
    </method>
    <method name="removeNodeId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="node" type="org.apache.hadoop.yarn.api.records.NodeId"/>
    </method>
    <method name="getAssociatedNodeIds" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nodeRes" type="org.apache.hadoop.yarn.api.records.Resource"/>
    </method>
    <method name="removeNode"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nodeRes" type="org.apache.hadoop.yarn.api.records.Resource"/>
    </method>
    <method name="getResource" return="org.apache.hadoop.yarn.api.records.Resource"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNumActiveNMs" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLabelName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCopy" return="org.apache.hadoop.yarn.nodelabels.NodeLabel"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="compareTo" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="org.apache.hadoop.yarn.nodelabels.NodeLabel"/>
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="obj" type="java.lang.Object"/>
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.NodeLabel -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.NodeLabelsStore -->
  <class name="NodeLabelsStore" extends="java.lang.Object"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="java.io.Closeable"/>
    <constructor name="NodeLabelsStore" type="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="updateNodeToLabelsMappings"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="nodeToLabels" type="java.util.Map"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Store node {@literal ->} label]]>
      </doc>
    </method>
    <method name="storeNewClusterNodeLabels"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="label" type="java.util.Set"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Store new labels]]>
      </doc>
    </method>
    <method name="removeClusterNodeLabels"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="labels" type="java.util.Collection"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Remove labels]]>
      </doc>
    </method>
    <method name="recover"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Recover labels and node to labels mappings from store]]>
      </doc>
    </method>
    <method name="init"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="getNodeLabelsManager" return="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="mgr" type="org.apache.hadoop.yarn.nodelabels.CommonNodeLabelsManager"
      transient="false" volatile="false"
      static="false" final="true" visibility="protected"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.NodeLabelsStore -->
</package>
<package name="org.apache.hadoop.yarn.nodelabels.event">
  <!-- start class org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEvent -->
  <class name="NodeLabelsStoreEvent" extends="org.apache.hadoop.yarn.event.AbstractEvent"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NodeLabelsStoreEvent" type="org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEventType"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEvent -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEventType -->
  <class name="NodeLabelsStoreEventType" extends="java.lang.Enum"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEventType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEventType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEventType -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.event.RemoveClusterNodeLabels -->
  <class name="RemoveClusterNodeLabels" extends="org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEvent"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RemoveClusterNodeLabels" type="java.util.Collection"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLabels" return="java.util.Collection"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.event.RemoveClusterNodeLabels -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.event.StoreNewClusterNodeLabels -->
  <class name="StoreNewClusterNodeLabels" extends="org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEvent"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="StoreNewClusterNodeLabels" type="java.util.Set"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getLabels" return="java.util.Set"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.event.StoreNewClusterNodeLabels -->
  <!-- start class org.apache.hadoop.yarn.nodelabels.event.UpdateNodeToLabelsMappingsEvent -->
  <class name="UpdateNodeToLabelsMappingsEvent" extends="org.apache.hadoop.yarn.nodelabels.event.NodeLabelsStoreEvent"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="UpdateNodeToLabelsMappingsEvent" type="java.util.Map"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getNodeToLabels" return="java.util.Map"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.nodelabels.event.UpdateNodeToLabelsMappingsEvent -->
</package>
<package name="org.apache.hadoop.yarn.security">
  <!-- start class org.apache.hadoop.yarn.security.AMRMTokenIdentifier -->
  <class name="AMRMTokenIdentifier" extends="org.apache.hadoop.security.token.TokenIdentifier"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AMRMTokenIdentifier"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="AMRMTokenIdentifier" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getKind" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUser" return="org.apache.hadoop.security.UserGroupInformation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getKeyId" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProto" return="org.apache.hadoop.yarn.proto.YarnSecurityTokenProtos.AMRMTokenIdentifierProto"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="KIND_NAME" type="org.apache.hadoop.io.Text"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[AMRMTokenIdentifier is the TokenIdentifier to be used by
 ApplicationMasters to authenticate to the ResourceManager.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.AMRMTokenIdentifier -->
  <!-- start class org.apache.hadoop.yarn.security.AMRMTokenSelector -->
  <class name="AMRMTokenSelector" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.security.token.TokenSelector"/>
    <constructor name="AMRMTokenSelector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="selectToken" return="org.apache.hadoop.security.token.Token"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="service" type="org.apache.hadoop.io.Text"/>
      <param name="tokens" type="java.util.Collection"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.AMRMTokenSelector -->
  <!-- start class org.apache.hadoop.yarn.security.ContainerManagerSecurityInfo -->
  <class name="ContainerManagerSecurityInfo" extends="org.apache.hadoop.security.SecurityInfo"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ContainerManagerSecurityInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKerberosInfo" return="org.apache.hadoop.security.KerberosInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getTokenInfo" return="org.apache.hadoop.security.token.TokenInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.ContainerManagerSecurityInfo -->
  <!-- start class org.apache.hadoop.yarn.security.ContainerTokenIdentifier -->
  <class name="ContainerTokenIdentifier" extends="org.apache.hadoop.security.token.TokenIdentifier"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ContainerTokenIdentifier" type="org.apache.hadoop.yarn.api.records.ContainerId, java.lang.String, java.lang.String, org.apache.hadoop.yarn.api.records.Resource, long, int, long, org.apache.hadoop.yarn.api.records.Priority, long"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ContainerTokenIdentifier" type="org.apache.hadoop.yarn.api.records.ContainerId, java.lang.String, java.lang.String, org.apache.hadoop.yarn.api.records.Resource, long, int, long, org.apache.hadoop.yarn.api.records.Priority, long, org.apache.hadoop.yarn.api.records.LogAggregationContext"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ContainerTokenIdentifier"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Default constructor needed by RPC layer/SecretManager.]]>
      </doc>
    </constructor>
    <method name="getContainerID" return="org.apache.hadoop.yarn.api.records.ContainerId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getApplicationSubmitter" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNmHostAddress" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getResource" return="org.apache.hadoop.yarn.api.records.Resource"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getExpiryTimeStamp" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getMasterKeyId" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getPriority" return="org.apache.hadoop.yarn.api.records.Priority"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getCreationTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getRMIdentifier" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the RMIdentifier of RM in which containers are allocated
 @return RMIdentifier]]>
      </doc>
    </method>
    <method name="getProto" return="org.apache.hadoop.yarn.proto.YarnSecurityTokenProtos.ContainerTokenIdentifierProto"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getLogAggregationContext" return="org.apache.hadoop.yarn.api.records.LogAggregationContext"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getKind" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUser" return="org.apache.hadoop.security.UserGroupInformation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="KIND" type="org.apache.hadoop.io.Text"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[TokenIdentifier for a container. Encodes {@link ContainerId},
 {@link Resource} needed by the container and the target NMs host-address.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.ContainerTokenIdentifier -->
  <!-- start class org.apache.hadoop.yarn.security.ContainerTokenSelector -->
  <class name="ContainerTokenSelector" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.security.token.TokenSelector"/>
    <constructor name="ContainerTokenSelector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="selectToken" return="org.apache.hadoop.security.token.Token"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="service" type="org.apache.hadoop.io.Text"/>
      <param name="tokens" type="java.util.Collection"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.ContainerTokenSelector -->
  <!-- start class org.apache.hadoop.yarn.security.NMTokenIdentifier -->
  <class name="NMTokenIdentifier" extends="org.apache.hadoop.security.token.TokenIdentifier"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="NMTokenIdentifier" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId, org.apache.hadoop.yarn.api.records.NodeId, java.lang.String, int"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="NMTokenIdentifier"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Default constructor needed by RPC/Secret manager]]>
      </doc>
    </constructor>
    <method name="getApplicationAttemptId" return="org.apache.hadoop.yarn.api.records.ApplicationAttemptId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getNodeId" return="org.apache.hadoop.yarn.api.records.NodeId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getApplicationSubmitter" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getKeyId" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getKind" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUser" return="org.apache.hadoop.security.UserGroupInformation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProto" return="org.apache.hadoop.yarn.proto.YarnSecurityTokenProtos.NMTokenIdentifierProto"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="KIND" type="org.apache.hadoop.io.Text"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.NMTokenIdentifier -->
  <!-- start class org.apache.hadoop.yarn.security.NMTokenSelector -->
  <class name="NMTokenSelector" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.security.token.TokenSelector"/>
    <constructor name="NMTokenSelector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="selectToken" return="org.apache.hadoop.security.token.Token"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="service" type="org.apache.hadoop.io.Text"/>
      <param name="tokens" type="java.util.Collection"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.NMTokenSelector -->
  <!-- start class org.apache.hadoop.yarn.security.PrivilegedEntity.EntityType -->
  <class name="PrivilegedEntity.EntityType" extends="java.lang.Enum"
    abstract="false"
    static="true" final="true" visibility="public"
    deprecated="not deprecated">
    <method name="values" return="org.apache.hadoop.yarn.security.PrivilegedEntity.EntityType[]"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="valueOf" return="org.apache.hadoop.yarn.security.PrivilegedEntity.EntityType"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.PrivilegedEntity.EntityType -->
  <!-- start class org.apache.hadoop.yarn.security.SchedulerSecurityInfo -->
  <class name="SchedulerSecurityInfo" extends="org.apache.hadoop.security.SecurityInfo"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SchedulerSecurityInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKerberosInfo" return="org.apache.hadoop.security.KerberosInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getTokenInfo" return="org.apache.hadoop.security.token.TokenInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.SchedulerSecurityInfo -->
</package>
<package name="org.apache.hadoop.yarn.security.admin">
  <!-- start class org.apache.hadoop.yarn.security.admin.AdminSecurityInfo -->
  <class name="AdminSecurityInfo" extends="org.apache.hadoop.security.SecurityInfo"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AdminSecurityInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKerberosInfo" return="org.apache.hadoop.security.KerberosInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getTokenInfo" return="org.apache.hadoop.security.token.TokenInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.admin.AdminSecurityInfo -->
</package>
<package name="org.apache.hadoop.yarn.security.client">
  <!-- start class org.apache.hadoop.yarn.security.client.BaseClientToAMTokenSecretManager -->
  <class name="BaseClientToAMTokenSecretManager" extends="org.apache.hadoop.security.token.SecretManager"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="BaseClientToAMTokenSecretManager"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <doc>
    <![CDATA[A base {@link SecretManager} for AMs to extend and validate Client-RM tokens
 issued to clients by the RM using the underlying master-key shared by RM to
 the AMs on their launch. All the methods are called by either Hadoop RPC or
 YARN, so this class is strictly for the purpose of inherit/extend and
 register with Hadoop RPC.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.BaseClientToAMTokenSecretManager -->
  <!-- start class org.apache.hadoop.yarn.security.client.ClientRMSecurityInfo -->
  <class name="ClientRMSecurityInfo" extends="org.apache.hadoop.security.SecurityInfo"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ClientRMSecurityInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKerberosInfo" return="org.apache.hadoop.security.KerberosInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getTokenInfo" return="org.apache.hadoop.security.token.TokenInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.ClientRMSecurityInfo -->
  <!-- start class org.apache.hadoop.yarn.security.client.ClientTimelineSecurityInfo -->
  <class name="ClientTimelineSecurityInfo" extends="org.apache.hadoop.security.SecurityInfo"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ClientTimelineSecurityInfo"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getKerberosInfo" return="org.apache.hadoop.security.KerberosInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="getTokenInfo" return="org.apache.hadoop.security.token.TokenInfo"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="protocol" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.ClientTimelineSecurityInfo -->
  <!-- start class org.apache.hadoop.yarn.security.client.ClientToAMTokenIdentifier -->
  <class name="ClientToAMTokenIdentifier" extends="org.apache.hadoop.security.token.TokenIdentifier"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ClientToAMTokenIdentifier"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ClientToAMTokenIdentifier" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getApplicationAttemptID" return="org.apache.hadoop.yarn.api.records.ApplicationAttemptId"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getClientName" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getProto" return="org.apache.hadoop.yarn.proto.YarnSecurityTokenProtos.ClientToAMTokenIdentifierProto"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="write"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="out" type="java.io.DataOutput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="readFields"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.DataInput"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="getKind" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getUser" return="org.apache.hadoop.security.UserGroupInformation"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="hashCode" return="int"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="equals" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="other" type="java.lang.Object"/>
    </method>
    <method name="toString" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="KIND_NAME" type="org.apache.hadoop.io.Text"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.ClientToAMTokenIdentifier -->
  <!-- start class org.apache.hadoop.yarn.security.client.ClientToAMTokenSecretManager -->
  <class name="ClientToAMTokenSecretManager" extends="org.apache.hadoop.yarn.security.client.BaseClientToAMTokenSecretManager"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ClientToAMTokenSecretManager" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId, byte[]"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="retrievePassword" return="byte[]"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="identifier" type="org.apache.hadoop.yarn.security.client.ClientToAMTokenIdentifier"/>
      <exception name="SecretManager.InvalidToken" type="org.apache.hadoop.security.token.SecretManager.InvalidToken"/>
    </method>
    <method name="getMasterKey" return="javax.crypto.SecretKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="applicationAttemptID" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId"/>
    </method>
    <method name="setMasterKey"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="key" type="byte[]"/>
    </method>
    <doc>
    <![CDATA[A simple {@link SecretManager} for AMs to validate Client-RM tokens issued to
 clients by the RM using the underlying master-key shared by RM to the AMs on
 their launch. All the methods are called by either Hadoop RPC or YARN, so
 this class is strictly for the purpose of inherit/extend and register with
 Hadoop RPC.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.ClientToAMTokenSecretManager -->
  <!-- start class org.apache.hadoop.yarn.security.client.ClientToAMTokenSelector -->
  <class name="ClientToAMTokenSelector" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.security.token.TokenSelector"/>
    <constructor name="ClientToAMTokenSelector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="selectToken" return="org.apache.hadoop.security.token.Token"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="service" type="org.apache.hadoop.io.Text"/>
      <param name="tokens" type="java.util.Collection"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.ClientToAMTokenSelector -->
  <!-- start class org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier -->
  <class name="RMDelegationTokenIdentifier" extends="org.apache.hadoop.yarn.security.client.YARNDelegationTokenIdentifier"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RMDelegationTokenIdentifier"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="RMDelegationTokenIdentifier" type="org.apache.hadoop.io.Text, org.apache.hadoop.io.Text, org.apache.hadoop.io.Text"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new delegation token identifier
 @param owner the effective username of the token owner
 @param renewer the username of the renewer
 @param realUser the real username of the token owner]]>
      </doc>
    </constructor>
    <method name="getKind" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="KIND_NAME" type="org.apache.hadoop.io.Text"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Delegation Token Identifier that identifies the delegation tokens from the
 Resource Manager.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier -->
  <!-- start class org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier.Renewer -->
  <class name="RMDelegationTokenIdentifier.Renewer" extends="org.apache.hadoop.security.token.TokenRenewer"
    abstract="false"
    static="true" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="RMDelegationTokenIdentifier.Renewer"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="handleKind" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="kind" type="org.apache.hadoop.io.Text"/>
    </method>
    <method name="isManaged" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="token" type="org.apache.hadoop.security.token.Token"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
    <method name="renew" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="token" type="org.apache.hadoop.security.token.Token"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
    <method name="cancel"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="token" type="org.apache.hadoop.security.token.Token"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <exception name="IOException" type="java.io.IOException"/>
      <exception name="InterruptedException" type="java.lang.InterruptedException"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.RMDelegationTokenIdentifier.Renewer -->
  <!-- start class org.apache.hadoop.yarn.security.client.RMDelegationTokenSelector -->
  <class name="RMDelegationTokenSelector" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.security.token.TokenSelector"/>
    <constructor name="RMDelegationTokenSelector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="selectToken" return="org.apache.hadoop.security.token.Token"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="service" type="org.apache.hadoop.io.Text"/>
      <param name="tokens" type="java.util.Collection"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.RMDelegationTokenSelector -->
  <!-- start class org.apache.hadoop.yarn.security.client.TimelineDelegationTokenIdentifier -->
  <class name="TimelineDelegationTokenIdentifier" extends="org.apache.hadoop.yarn.security.client.YARNDelegationTokenIdentifier"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TimelineDelegationTokenIdentifier"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="TimelineDelegationTokenIdentifier" type="org.apache.hadoop.io.Text, org.apache.hadoop.io.Text, org.apache.hadoop.io.Text"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create a new timeline delegation token identifier

 @param owner the effective username of the token owner
 @param renewer the username of the renewer
 @param realUser the real username of the token owner]]>
      </doc>
    </constructor>
    <method name="getKind" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="KIND_NAME" type="org.apache.hadoop.io.Text"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.TimelineDelegationTokenIdentifier -->
  <!-- start class org.apache.hadoop.yarn.security.client.TimelineDelegationTokenSelector -->
  <class name="TimelineDelegationTokenSelector" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.security.token.TokenSelector"/>
    <constructor name="TimelineDelegationTokenSelector"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="selectToken" return="org.apache.hadoop.security.token.Token"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="service" type="org.apache.hadoop.io.Text"/>
      <param name="tokens" type="java.util.Collection"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.security.client.TimelineDelegationTokenSelector -->
</package>
<package name="org.apache.hadoop.yarn.server.api">
</package>
<package name="org.apache.hadoop.yarn.server.api.impl.pb.client">
  <!-- start class org.apache.hadoop.yarn.server.api.impl.pb.client.SCMAdminProtocolPBClientImpl -->
  <class name="SCMAdminProtocolPBClientImpl" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.yarn.server.api.SCMAdminProtocol"/>
    <implements name="java.io.Closeable"/>
    <constructor name="SCMAdminProtocolPBClientImpl" type="long, java.net.InetSocketAddress, org.apache.hadoop.conf.Configuration"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="IOException" type="java.io.IOException"/>
    </constructor>
    <method name="close"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="runCleanerTask" return="org.apache.hadoop.yarn.server.api.protocolrecords.RunSharedCacheCleanerTaskResponse"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="request" type="org.apache.hadoop.yarn.server.api.protocolrecords.RunSharedCacheCleanerTaskRequest"/>
      <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/>
      <exception name="IOException" type="java.io.IOException"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.server.api.impl.pb.client.SCMAdminProtocolPBClientImpl -->
</package>
<package name="org.apache.hadoop.yarn.server.api.impl.pb.service">
  <!-- start class org.apache.hadoop.yarn.server.api.impl.pb.service.SCMAdminProtocolPBServiceImpl -->
  <class name="SCMAdminProtocolPBServiceImpl" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.yarn.server.api.SCMAdminProtocolPB"/>
    <constructor name="SCMAdminProtocolPBServiceImpl" type="org.apache.hadoop.yarn.server.api.SCMAdminProtocol"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="runCleanerTask" return="org.apache.hadoop.yarn.proto.YarnServiceProtos.RunSharedCacheCleanerTaskResponseProto"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="controller" type="com.google.protobuf.RpcController"/>
      <param name="proto" type="org.apache.hadoop.yarn.proto.YarnServiceProtos.RunSharedCacheCleanerTaskRequestProto"/>
      <exception name="ServiceException" type="com.google.protobuf.ServiceException"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.server.api.impl.pb.service.SCMAdminProtocolPBServiceImpl -->
</package>
<package name="org.apache.hadoop.yarn.sharedcache">
  <!-- start interface org.apache.hadoop.yarn.sharedcache.SharedCacheChecksum -->
  <interface name="SharedCacheChecksum"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="computeChecksum" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="in" type="java.io.InputStream"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Calculate the checksum of the passed input stream.

 @param in <code>InputStream</code> to be checksumed
 @return the message digest of the input stream
 @throws IOException]]>
      </doc>
    </method>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.sharedcache.SharedCacheChecksum -->
  <!-- start class org.apache.hadoop.yarn.sharedcache.SharedCacheChecksumFactory -->
  <class name="SharedCacheChecksumFactory" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="SharedCacheChecksumFactory"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getChecksum" return="org.apache.hadoop.yarn.sharedcache.SharedCacheChecksum"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Get a new <code>SharedCacheChecksum</code> object based on the configurable
 algorithm implementation
 (see <code>yarn.sharedcache.checksum.algo.impl</code>)

 @return <code>SharedCacheChecksum</code> object]]>
      </doc>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.sharedcache.SharedCacheChecksumFactory -->
</package>
<package name="org.apache.hadoop.yarn.state">
  <!-- start class org.apache.hadoop.yarn.state.Graph.Edge -->
  <class name="Graph.Edge" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Graph.Edge" type="org.apache.hadoop.yarn.state.Graph.Node, org.apache.hadoop.yarn.state.Graph.Node, java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="sameAs" return="boolean"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rhs" type="org.apache.hadoop.yarn.state.Graph.Edge"/>
    </method>
    <method name="combine" return="org.apache.hadoop.yarn.state.Graph.Edge"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="rhs" type="org.apache.hadoop.yarn.state.Graph.Edge"/>
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.state.Graph.Edge -->
  <!-- start class org.apache.hadoop.yarn.state.Graph.Node -->
  <class name="Graph.Node" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="Graph.Node" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getParent" return="org.apache.hadoop.yarn.state.Graph"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="addEdge" return="org.apache.hadoop.yarn.state.Graph.Node"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="to" type="org.apache.hadoop.yarn.state.Graph.Node"/>
      <param name="info" type="java.lang.String"/>
    </method>
    <method name="getUniqueId" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.state.Graph.Node -->
  <!-- start class org.apache.hadoop.yarn.state.InvalidStateTransitonException -->
  <class name="InvalidStateTransitonException" extends="org.apache.hadoop.yarn.exceptions.YarnRuntimeException"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="InvalidStateTransitonException" type="java.lang.Enum, java.lang.Enum"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getCurrentState" return="java.lang.Enum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="getEvent" return="java.lang.Enum"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
  </class>
  <!-- end class org.apache.hadoop.yarn.state.InvalidStateTransitonException -->
  <!-- start interface org.apache.hadoop.yarn.state.MultipleArcTransition -->
  <interface name="MultipleArcTransition"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="transition" return="STATE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operand" type="OPERAND"/>
      <param name="event" type="EVENT"/>
      <doc>
      <![CDATA[Transition hook.
 @return the postState. Post state must be one of the
                      valid post states registered in StateMachine.
 @param operand the entity attached to the FSM, whose internal
                state may change.
 @param event causal event]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Hook for Transition.
 Post state is decided by Transition hook. Post state must be one of the
 valid post states registered in StateMachine.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.state.MultipleArcTransition -->
  <!-- start interface org.apache.hadoop.yarn.state.SingleArcTransition -->
  <interface name="SingleArcTransition"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="transition"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operand" type="OPERAND"/>
      <param name="event" type="EVENT"/>
      <doc>
      <![CDATA[Transition hook.

 @param operand the entity attached to the FSM, whose internal
                state may change.
 @param event causal event]]>
      </doc>
    </method>
    <doc>
    <![CDATA[Hook for Transition. This lead to state machine to move to
 the post state as registered in the state machine.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.state.SingleArcTransition -->
  <!-- start interface org.apache.hadoop.yarn.state.StateMachine -->
  <interface name="StateMachine"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getCurrentState" return="STATE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <method name="doTransition" return="STATE"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="eventType" type="EVENTTYPE"/>
      <param name="event" type="EVENT"/>
      <exception name="InvalidStateTransitonException" type="org.apache.hadoop.yarn.state.InvalidStateTransitonException"/>
    </method>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.state.StateMachine -->
  <!-- start class org.apache.hadoop.yarn.state.StateMachineFactory -->
  <class name="StateMachineFactory" extends="java.lang.Object"
    abstract="false"
    static="false" final="true" visibility="public"
    deprecated="not deprecated">
    <constructor name="StateMachineFactory" type="STATE"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Constructor

 This is the only constructor in the API.]]>
      </doc>
    </constructor>
    <method name="addTransition" return="org.apache.hadoop.yarn.state.StateMachineFactory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preState" type="STATE"/>
      <param name="postState" type="STATE"/>
      <param name="eventType" type="EVENTTYPE"/>
      <doc>
      <![CDATA[@return a NEW StateMachineFactory just like {@code this} with the current
          transition added as a new legal transition.  This overload
          has no hook object.

         Note that the returned StateMachineFactory is a distinct
         object.

         This method is part of the API.

 @param preState pre-transition state
 @param postState post-transition state
 @param eventType stimulus for the transition]]>
      </doc>
    </method>
    <method name="addTransition" return="org.apache.hadoop.yarn.state.StateMachineFactory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preState" type="STATE"/>
      <param name="postState" type="STATE"/>
      <param name="eventTypes" type="java.util.Set"/>
      <doc>
      <![CDATA[@return a NEW StateMachineFactory just like {@code this} with the current
          transition added as a new legal transition.  This overload
          has no hook object.


         Note that the returned StateMachineFactory is a distinct
         object.

         This method is part of the API.

 @param preState pre-transition state
 @param postState post-transition state
 @param eventTypes List of stimuli for the transitions]]>
      </doc>
    </method>
    <method name="addTransition" return="org.apache.hadoop.yarn.state.StateMachineFactory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preState" type="STATE"/>
      <param name="postState" type="STATE"/>
      <param name="eventTypes" type="java.util.Set"/>
      <param name="hook" type="org.apache.hadoop.yarn.state.SingleArcTransition"/>
      <doc>
      <![CDATA[@return a NEW StateMachineFactory just like {@code this} with the current
          transition added as a new legal transition

         Note that the returned StateMachineFactory is a distinct
         object.

         This method is part of the API.

 @param preState pre-transition state
 @param postState post-transition state
 @param eventTypes List of stimuli for the transitions
 @param hook transition hook]]>
      </doc>
    </method>
    <method name="addTransition" return="org.apache.hadoop.yarn.state.StateMachineFactory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preState" type="STATE"/>
      <param name="postState" type="STATE"/>
      <param name="eventType" type="EVENTTYPE"/>
      <param name="hook" type="org.apache.hadoop.yarn.state.SingleArcTransition"/>
      <doc>
      <![CDATA[@return a NEW StateMachineFactory just like {@code this} with the current
          transition added as a new legal transition

         Note that the returned StateMachineFactory is a distinct object.

         This method is part of the API.

 @param preState pre-transition state
 @param postState post-transition state
 @param eventType stimulus for the transition
 @param hook transition hook]]>
      </doc>
    </method>
    <method name="addTransition" return="org.apache.hadoop.yarn.state.StateMachineFactory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="preState" type="STATE"/>
      <param name="postStates" type="java.util.Set"/>
      <param name="eventType" type="EVENTTYPE"/>
      <param name="hook" type="org.apache.hadoop.yarn.state.MultipleArcTransition"/>
      <doc>
      <![CDATA[@return a NEW StateMachineFactory just like {@code this} with the current
          transition added as a new legal transition

         Note that the returned StateMachineFactory is a distinct object.

         This method is part of the API.

 @param preState pre-transition state
 @param postStates valid post-transition states
 @param eventType stimulus for the transition
 @param hook transition hook]]>
      </doc>
    </method>
    <method name="installTopology" return="org.apache.hadoop.yarn.state.StateMachineFactory"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[@return a StateMachineFactory just like {@code this}, except that if
         you won't need any synchronization to build a state machine

         Note that the returned StateMachineFactory is a distinct object.

         This method is part of the API.

         The only way you could distinguish the returned
         StateMachineFactory from {@code this} would be by
         measuring the performance of the derived
         {@code StateMachine} you can get from it.

 Calling this is optional.  It doesn't change the semantics of the factory,
   if you call it then when you use the factory there is no synchronization.]]>
      </doc>
    </method>
    <method name="make" return="org.apache.hadoop.yarn.state.StateMachine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operand" type="OPERAND"/>
      <param name="initialState" type="STATE"/>
    </method>
    <method name="make" return="org.apache.hadoop.yarn.state.StateMachine"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="operand" type="OPERAND"/>
    </method>
    <method name="generateStateGraph" return="org.apache.hadoop.yarn.state.Graph"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="name" type="java.lang.String"/>
      <doc>
      <![CDATA[Generate a graph represents the state graph of this StateMachine
 @param name graph name
 @return Graph object generated]]>
      </doc>
    </method>
    <doc>
    <![CDATA[State machine topology.
 This object is semantically immutable.  If you have a
 StateMachineFactory there's no operation in the API that changes
 its semantic properties.

 @param <OPERAND> The object type on which this state machine operates.
 @param <STATE> The state of the entity.
 @param <EVENTTYPE> The external eventType to be handled.
 @param <EVENT> The event object.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.state.StateMachineFactory -->
</package>
<package name="org.apache.hadoop.yarn.util">
  <!-- start class org.apache.hadoop.yarn.util.AbstractLivelinessMonitor -->
  <class name="AbstractLivelinessMonitor" extends="org.apache.hadoop.service.AbstractService"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AbstractLivelinessMonitor" type="java.lang.String, org.apache.hadoop.yarn.util.Clock"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="serviceStart"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="serviceStop"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <exception name="Exception" type="java.lang.Exception"/>
    </method>
    <method name="expire"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="ob" type="O"/>
    </method>
    <method name="setExpireInterval"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="expireInterval" type="int"/>
    </method>
    <method name="setMonitorInterval"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="protected"
      deprecated="not deprecated">
      <param name="monitorInterval" type="int"/>
    </method>
    <method name="receivedPing"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ob" type="O"/>
    </method>
    <method name="register"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ob" type="O"/>
    </method>
    <method name="unregister"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="ob" type="O"/>
    </method>
    <method name="resetTimer"
      abstract="false" native="false" synchronized="true"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <field name="DEFAULT_EXPIRE" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[A simple liveliness monitor with which clients can register, trust the
 component to monitor liveliness, get a call-back on expiry and then finally
 unregister.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.util.AbstractLivelinessMonitor -->
  <!-- start class org.apache.hadoop.yarn.util.ApplicationClassLoader -->
  <class name="ApplicationClassLoader" extends="org.apache.hadoop.util.ApplicationClassLoader"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ApplicationClassLoader" type="java.net.URL[], java.lang.ClassLoader, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <constructor name="ApplicationClassLoader" type="java.lang.String, java.lang.ClassLoader, java.util.List"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <exception name="MalformedURLException" type="java.net.MalformedURLException"/>
    </constructor>
    <doc>
    <![CDATA[This type has been deprecated in favor of
 {@link org.apache.hadoop.util.ApplicationClassLoader}. All new uses of
 ApplicationClassLoader should use that type instead.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.util.ApplicationClassLoader -->
  <!-- start class org.apache.hadoop.yarn.util.AuxiliaryServiceHelper -->
  <class name="AuxiliaryServiceHelper" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="AuxiliaryServiceHelper"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getServiceDataFromEnv" return="java.nio.ByteBuffer"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="serviceName" type="java.lang.String"/>
      <param name="env" type="java.util.Map"/>
    </method>
    <method name="setServiceDataIntoEnv"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="serviceName" type="java.lang.String"/>
      <param name="metaData" type="java.nio.ByteBuffer"/>
      <param name="env" type="java.util.Map"/>
    </method>
    <field name="NM_AUX_SERVICE" type="java.lang.String"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
  </class>
  <!-- end class org.apache.hadoop.yarn.util.AuxiliaryServiceHelper -->
  <!-- start interface org.apache.hadoop.yarn.util.Clock -->
  <interface name="Clock"    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <method name="getTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[A simple clock interface that gives you time.]]>
    </doc>
  </interface>
  <!-- end interface org.apache.hadoop.yarn.util.Clock -->
  <!-- start class org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree -->
  <class name="ResourceCalculatorProcessTree" extends="org.apache.hadoop.conf.Configured"
    abstract="true"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="ResourceCalculatorProcessTree" type="java.lang.String"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Create process-tree instance with specified root process.

 Subclass must override this.
 @param root process-tree root-process]]>
      </doc>
    </constructor>
    <method name="updateProcessTree"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Update the process-tree with latest state.

 Each call to this function should increment the age of the running
 processes that already exist in the process tree. Age is used other API's
 of the interface.]]>
      </doc>
    </method>
    <method name="getProcessTreeDump" return="java.lang.String"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get a dump of the process-tree.

 @return a string concatenating the dump of information of all the processes
         in the process-tree]]>
      </doc>
    </method>
    <method name="getVirtualMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the virtual memory used by all the processes in the
 process-tree.

 @return virtual memory used by the process-tree in bytes,
 {@link #UNAVAILABLE} if it cannot be calculated.]]>
      </doc>
    </method>
    <method name="getCumulativeVmem" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the virtual memory used by all the processes in the
 process-tree.

 @return virtual memory used by the process-tree in bytes,
 {@link #UNAVAILABLE} if it cannot be calculated.]]>
      </doc>
    </method>
    <method name="getRssMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the resident set size (rss) memory used by all the processes
 in the process-tree.

 @return rss memory used by the process-tree in bytes,
 {@link #UNAVAILABLE} if it cannot be calculated.]]>
      </doc>
    </method>
    <method name="getCumulativeRssmem" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the resident set size (rss) memory used by all the processes
 in the process-tree.

 @return rss memory used by the process-tree in bytes,
 {@link #UNAVAILABLE} if it cannot be calculated.]]>
      </doc>
    </method>
    <method name="getVirtualMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="olderThanAge" type="int"/>
      <doc>
      <![CDATA[Get the virtual memory used by all the processes in the
 process-tree that are older than the passed in age.

 @param olderThanAge processes above this age are included in the
                     memory addition
 @return virtual memory used by the process-tree in bytes for
 processes older than the specified age, {@link #UNAVAILABLE} if it
 cannot be calculated.]]>
      </doc>
    </method>
    <method name="getCumulativeVmem" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="olderThanAge" type="int"/>
      <doc>
      <![CDATA[Get the virtual memory used by all the processes in the
 process-tree that are older than the passed in age.

 @param olderThanAge processes above this age are included in the
                     memory addition
 @return virtual memory used by the process-tree in bytes for
 processes older than the specified age, {@link #UNAVAILABLE} if it
 cannot be calculated.]]>
      </doc>
    </method>
    <method name="getRssMemorySize" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="olderThanAge" type="int"/>
      <doc>
      <![CDATA[Get the resident set size (rss) memory used by all the processes
 in the process-tree that are older than the passed in age.

 @param olderThanAge processes above this age are included in the
                     memory addition
 @return rss memory used by the process-tree in bytes for
 processes older than specified age, {@link #UNAVAILABLE} if it cannot be
 calculated.]]>
      </doc>
    </method>
    <method name="getCumulativeRssmem" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="olderThanAge" type="int"/>
      <doc>
      <![CDATA[Get the resident set size (rss) memory used by all the processes
 in the process-tree that are older than the passed in age.

 @param olderThanAge processes above this age are included in the
                     memory addition
 @return rss memory used by the process-tree in bytes for
 processes older than specified age, {@link #UNAVAILABLE} if it cannot be
 calculated.]]>
      </doc>
    </method>
    <method name="getCumulativeCpuTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the CPU time in millisecond used by all the processes in the
 process-tree since the process-tree was created

 @return cumulative CPU time in millisecond since the process-tree
 created, {@link #UNAVAILABLE} if it cannot be calculated.]]>
      </doc>
    </method>
    <method name="getCpuUsagePercent" return="float"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Get the CPU usage by all the processes in the process-tree based on
 average between samples as a ratio of overall CPU cycles similar to top.
 Thus, if 2 out of 4 cores are used this should return 200.0.

 @return percentage CPU usage since the process-tree was created,
 {@link #UNAVAILABLE} if it cannot be calculated.]]>
      </doc>
    </method>
    <method name="checkPidPgrpidForMatch" return="boolean"
      abstract="true" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
      <doc>
      <![CDATA[Verify that the tree process id is same as its process group id.
 @return true if the process id matches else return false.]]>
      </doc>
    </method>
    <method name="getResourceCalculatorProcessTree" return="org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="pid" type="java.lang.String"/>
      <param name="clazz" type="java.lang.Class"/>
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
      <doc>
      <![CDATA[Create the ResourceCalculatorProcessTree rooted to specified process
 from the class name and configure it. If class name is null, this method
 will try and return a process tree plugin available for this system.

 @param pid process pid of the root of the process tree
 @param clazz class-name
 @param conf configure the plugin with this.

 @return ResourceCalculatorProcessTree or null if ResourceCalculatorPluginTree
         is not available for this system.]]>
      </doc>
    </method>
    <field name="UNAVAILABLE" type="int"
      transient="false" volatile="false"
      static="true" final="true" visibility="public"
      deprecated="not deprecated">
    </field>
    <doc>
    <![CDATA[Interface class to obtain process resource usage
 NOTE: This class should not be used by external users, but only by external
 developers to extend and include their own process-tree implementation,
 especially for platforms other than Linux and Windows.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.util.ResourceCalculatorProcessTree -->
  <!-- start class org.apache.hadoop.yarn.util.SystemClock -->
  <class name="SystemClock" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.yarn.util.Clock"/>
    <constructor name="SystemClock"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Implementation of {@link Clock} that gives the current time from the system
 clock in milliseconds.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.util.SystemClock -->
  <!-- start class org.apache.hadoop.yarn.util.UTCClock -->
  <class name="UTCClock" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <implements name="org.apache.hadoop.yarn.util.Clock"/>
    <constructor name="UTCClock"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="getTime" return="long"
      abstract="false" native="false" synchronized="false"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </method>
    <doc>
    <![CDATA[Implementation of {@link Clock} that gives the current UTC time in
 milliseconds.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.util.UTCClock -->
</package>
<package name="org.apache.hadoop.yarn.util.resource">
</package>
<package name="org.apache.hadoop.yarn.util.timeline">
  <!-- start class org.apache.hadoop.yarn.util.timeline.TimelineUtils -->
  <class name="TimelineUtils" extends="java.lang.Object"
    abstract="false"
    static="false" final="false" visibility="public"
    deprecated="not deprecated">
    <constructor name="TimelineUtils"
      static="false" final="false" visibility="public"
      deprecated="not deprecated">
    </constructor>
    <method name="dumpTimelineRecordtoJSON" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <exception name="JsonGenerationException" type="org.codehaus.jackson.JsonGenerationException"/>
      <exception name="JsonMappingException" type="org.codehaus.jackson.map.JsonMappingException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Serialize a POJO object into a JSON string not in a pretty format

 @param o
          an object to serialize
 @return a JSON string
 @throws IOException
 @throws JsonMappingException
 @throws JsonGenerationException]]>
      </doc>
    </method>
    <method name="dumpTimelineRecordtoJSON" return="java.lang.String"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="o" type="java.lang.Object"/>
      <param name="pretty" type="boolean"/>
      <exception name="JsonGenerationException" type="org.codehaus.jackson.JsonGenerationException"/>
      <exception name="JsonMappingException" type="org.codehaus.jackson.map.JsonMappingException"/>
      <exception name="IOException" type="java.io.IOException"/>
      <doc>
      <![CDATA[Serialize a POJO object into a JSON string

 @param o
          an object to serialize
 @param pretty
          whether in a pretty format or not
 @return a JSON string
 @throws IOException
 @throws JsonMappingException
 @throws JsonGenerationException]]>
      </doc>
    </method>
    <method name="getTimelineTokenServiceAddress" return="java.net.InetSocketAddress"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <method name="buildTimelineTokenService" return="org.apache.hadoop.io.Text"
      abstract="false" native="false" synchronized="false"
      static="true" final="false" visibility="public"
      deprecated="not deprecated">
      <param name="conf" type="org.apache.hadoop.conf.Configuration"/>
    </method>
    <doc>
    <![CDATA[The helper class for the timeline module.]]>
    </doc>
  </class>
  <!-- end class org.apache.hadoop.yarn.util.timeline.TimelineUtils -->
</package>
<package name="org.apache.hadoop.yarn.webapp.util">
</package>

</api>
