1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one
3  * or more contributor license agreements.  See the NOTICE file
4  * distributed with this work for additional information
5  * regarding copyright ownership.  The ASF licenses this file
6  * to you under the Apache License, Version 2.0 (the
7  * "License"); you may not use this file except in compliance
8  * with the License.  You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18 
19 package org.apache.hadoop.yarn.api.protocolrecords;
20 
21 import org.apache.hadoop.classification.InterfaceAudience.Public;
22 import org.apache.hadoop.classification.InterfaceStability.Stable;
23 import org.apache.hadoop.yarn.api.ApplicationClientProtocol;
24 import org.apache.hadoop.yarn.api.records.ApplicationId;
25 import org.apache.hadoop.yarn.api.records.ApplicationReport;
26 import org.apache.hadoop.yarn.util.Records;
27 
28 /**
29  * <p>The request sent by a client to the <code>ResourceManager</code> to
30  * get an {@link ApplicationReport} for an application.</p>
31  *
32  * <p>The request should include the {@link ApplicationId} of the
33  * application.</p>
34  *
35  * @see ApplicationClientProtocol#getApplicationReport(GetApplicationReportRequest)
36  * @see ApplicationReport
37  */
38 @Public
39 @Stable
40 public abstract class GetApplicationReportRequest {
41 
42   @Public
43   @Stable
newInstance( ApplicationId applicationId)44   public static GetApplicationReportRequest newInstance(
45       ApplicationId applicationId) {
46     GetApplicationReportRequest request =
47         Records.newRecord(GetApplicationReportRequest.class);
48     request.setApplicationId(applicationId);
49     return request;
50   }
51 
52   /**
53    * Get the <code>ApplicationId</code> of the application.
54    * @return <code>ApplicationId</code> of the application
55    */
56   @Public
57   @Stable
getApplicationId()58   public abstract ApplicationId getApplicationId();
59 
60   /**
61    * Set the <code>ApplicationId</code> of the application
62    * @param applicationId <code>ApplicationId</code> of the application
63    */
64   @Public
65   @Stable
setApplicationId(ApplicationId applicationId)66   public abstract void setApplicationId(ApplicationId applicationId);
67 }
68