<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_112-google-v7) on Thu Jun 22 17:47:47 AEST 2017 -->
<title>Deprecated List (proto-google-common-protos 0.1.11 API)</title>
<meta name="date" content="2017-06-22">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Deprecated List (proto-google-common-protos 0.1.11 API)";
        }
    }
    catch(err) {
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Deprecated API" class="title">Deprecated API</h1>
<h2 title="Contents">Contents</h2>
<ul>
<li><a href="#method">Deprecated Methods</a></li>
</ul>
</div>
<div class="contentContainer"><a name="method">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<table class="deprecatedSummary" border="0" cellpadding="3" cellspacing="0" summary="Deprecated Methods table, listing deprecated methods, and an explanation">
<caption><span>Deprecated Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Method and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/MetricOrBuilder.html#getLabels--">com.google.api.MetricOrBuilder.getLabels()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/MonitoredResource.html#getLabels--">com.google.api.MonitoredResource.getLabels()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/MonitoredResource.Builder.html#getLabels--">com.google.api.MonitoredResource.Builder.getLabels()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/MonitoredResourceOrBuilder.html#getLabels--">com.google.api.MonitoredResourceOrBuilder.getLabels()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/Metric.html#getLabels--">com.google.api.Metric.getLabels()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/Metric.Builder.html#getLabels--">com.google.api.Metric.Builder.getLabels()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/MetricRuleOrBuilder.html#getMetricCosts--">com.google.api.MetricRuleOrBuilder.getMetricCosts()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/MetricRule.html#getMetricCosts--">com.google.api.MetricRule.getMetricCosts()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/MetricRule.Builder.html#getMetricCosts--">com.google.api.MetricRule.Builder.getMetricCosts()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/MonitoredResource.Builder.html#getMutableLabels--">com.google.api.MonitoredResource.Builder.getMutableLabels()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/Metric.Builder.html#getMutableLabels--">com.google.api.Metric.Builder.getMutableLabels()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/MetricRule.Builder.html#getMutableMetricCosts--">com.google.api.MetricRule.Builder.getMutableMetricCosts()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/QuotaLimit.Builder.html#getMutableValues--">com.google.api.QuotaLimit.Builder.getMutableValues()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/QuotaLimitOrBuilder.html#getValues--">com.google.api.QuotaLimitOrBuilder.getValues()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/QuotaLimit.html#getValues--">com.google.api.QuotaLimit.getValues()</a></td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/QuotaLimit.Builder.html#getValues--">com.google.api.QuotaLimit.Builder.getValues()</a></td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/longrunning/Operation.ResultCase.html#valueOf-int-">com.google.longrunning.Operation.ResultCase.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/longrunning/Operation.ResultCase.html#forNumber-int-"><code>Operation.ResultCase.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/type/DayOfWeek.html#valueOf-int-">com.google.type.DayOfWeek.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/type/DayOfWeek.html#forNumber-int-"><code>DayOfWeek.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/ChangeType.html#valueOf-int-">com.google.api.ChangeType.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/api/ChangeType.html#forNumber-int-"><code>ChangeType.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/HttpRule.PatternCase.html#valueOf-int-">com.google.api.HttpRule.PatternCase.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/api/HttpRule.PatternCase.html#forNumber-int-"><code>HttpRule.PatternCase.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/Property.PropertyType.html#valueOf-int-">com.google.api.Property.PropertyType.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/api/Property.PropertyType.html#forNumber-int-"><code>Property.PropertyType.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/MetricDescriptor.MetricKind.html#valueOf-int-">com.google.api.MetricDescriptor.MetricKind.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/api/MetricDescriptor.MetricKind.html#forNumber-int-"><code>MetricDescriptor.MetricKind.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/MetricDescriptor.ValueType.html#valueOf-int-">com.google.api.MetricDescriptor.ValueType.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/api/MetricDescriptor.ValueType.html#forNumber-int-"><code>MetricDescriptor.ValueType.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/api/LabelDescriptor.ValueType.html#valueOf-int-">com.google.api.LabelDescriptor.ValueType.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/api/LabelDescriptor.ValueType.html#forNumber-int-"><code>LabelDescriptor.ValueType.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/api/Distribution.BucketOptions.OptionsCase.html#valueOf-int-">com.google.api.Distribution.BucketOptions.OptionsCase.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/api/Distribution.BucketOptions.OptionsCase.html#forNumber-int-"><code>Distribution.BucketOptions.OptionsCase.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="com/google/rpc/Code.html#valueOf-int-">com.google.rpc.Code.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/rpc/Code.html#forNumber-int-"><code>Code.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="com/google/logging/type/LogSeverity.html#valueOf-int-">com.google.logging.type.LogSeverity.valueOf(int)</a>
<div class="block"><span class="deprecationComment">Use <a href="com/google/logging/type/LogSeverity.html#forNumber-int-"><code>LogSeverity.forNumber(int)</code></a> instead.</span></div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="overview-summary.html">Overview</a></li>
<li>Package</li>
<li>Class</li>
<li><a href="overview-tree.html">Tree</a></li>
<li class="navBarCell1Rev">Deprecated</li>
<li><a href="index-all.html">Index</a></li>
<li><a href="help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="index.html?deprecated-list.html" target="_top">Frames</a></li>
<li><a href="deprecated-list.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
