<!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 -->
<title>CloudVision (Apache Beam 2.38.0-SNAPSHOT)</title>
<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="CloudVision (Apache Beam 2.38.0-SNAPSHOT)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":9,"i1":9,"i2":9,"i3":9,"i4":9,"i5":9,"i6":9,"i7":9};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/extensions/ml/AnnotateText.Builder.html" title="class in org.apache.beam.sdk.extensions.ml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytes.html" title="class in org.apache.beam.sdk.extensions.ml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/extensions/ml/CloudVision.html" target="_top">Frames</a></li>
<li><a href="CloudVision.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.beam.sdk.extensions.ml</div>
<h2 title="Class CloudVision" class="title">Class CloudVision</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.beam.sdk.extensions.ml.CloudVision</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre><a href="../../../../../../org/apache/beam/sdk/annotations/Experimental.html" title="annotation in org.apache.beam.sdk.annotations">@Experimental</a>
public class <span class="typeNameLabel">CloudVision</span>
extends java.lang.Object</pre>
<div class="block">Factory class for implementations of <code>AnnotateImages</code>.

 <p>Example usage:

 <pre>
 pipeline
  .apply(Create.of(IMAGE_URI))
  .apply(CloudVision.annotateImagesFromGcsUri(sideInputWithContext,
         features, 1, 1));
 </pre></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytes.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytes</a></span></code>
<div class="block">Accepts <a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf"><code>ByteString</code></a> (encoded image contents) with optional <a href="../../../../../../org/apache/beam/sdk/transforms/DoFn.SideInput.html" title="annotation in org.apache.beam.sdk.transforms"><code>DoFn.SideInput</code></a> with a <code>Map</code> of <code>ImageContext</code> to
 the image.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytesWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytesWithContext</a></span></code>
<div class="block">Accepts <a href="../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values"><code>KV</code></a>s of <a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf"><code>ByteString</code></a> (encoded image contents) and <code>ImageContext</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUri.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUri</a></span></code>
<div class="block">Accepts <code>String</code> (image URI on GCS) with optional <a href="../../../../../../org/apache/beam/sdk/transforms/DoFn.SideInput.html" title="annotation in org.apache.beam.sdk.transforms"><code>DoFn.SideInput</code></a> with a <code>Map</code> of <code>ImageContext</code> to
 the image.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUriWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUriWithContext</a></span></code>
<div class="block">Accepts <a href="../../../../../../org/apache/beam/sdk/values/KV.html" title="class in org.apache.beam.sdk.values"><code>KV</code></a>s of <code>String</code> (GCS URI to the image) and <code>ImageContext</code>.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#CloudVision--">CloudVision</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytes.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytes</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromBytes-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-">annotateImagesFromBytes</a></span>(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;<a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf">ByteString</a>,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                       java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                       long&nbsp;batchSize)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 contents encoded in <a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf"><code>ByteString</code></a>s.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytes.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytes</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromBytes-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-int-">annotateImagesFromBytes</a></span>(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;<a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf">ByteString</a>,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                       java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                       long&nbsp;batchSize,
                       int&nbsp;desiredRequestParallelism)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 contents encoded in <a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf"><code>ByteString</code></a>s.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytesWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytesWithContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromBytesWithContext-java.util.List-long-">annotateImagesFromBytesWithContext</a></span>(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                  long&nbsp;batchSize)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their GCS addresses in Strings and <code>ImageContext</code> for each image.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytesWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytesWithContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromBytesWithContext-java.util.List-long-int-">annotateImagesFromBytesWithContext</a></span>(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                  long&nbsp;batchSize,
                                  int&nbsp;desiredRequestParallelism)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their GCS addresses in Strings and <code>ImageContext</code> for each image.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUri.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUri</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromGcsUri-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-">annotateImagesFromGcsUri</a></span>(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;java.lang.String,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                        java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                        long&nbsp;batchSize)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 GCS addresses.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUri.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUri</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromGcsUri-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-int-">annotateImagesFromGcsUri</a></span>(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;java.lang.String,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                        java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                        long&nbsp;batchSize,
                        int&nbsp;desiredRequestParallelism)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 GCS addresses.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUriWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUriWithContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromGcsUriWithContext-java.util.List-long-">annotateImagesFromGcsUriWithContext</a></span>(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                   long&nbsp;batchSize)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their String-encoded contents and <code>ImageContext</code> for each image.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static <a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUriWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUriWithContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.html#annotateImagesFromGcsUriWithContext-java.util.List-long-int-">annotateImagesFromGcsUriWithContext</a></span>(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                   long&nbsp;batchSize,
                                   int&nbsp;desiredRequestParallelism)</code>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their String-encoded contents and <code>ImageContext</code> for each image.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="CloudVision--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CloudVision</h4>
<pre>public&nbsp;CloudVision()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="annotateImagesFromGcsUri-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>annotateImagesFromGcsUri</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUri.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUri</a>&nbsp;annotateImagesFromGcsUri(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;java.lang.String,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                                                                            java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                            long&nbsp;batchSize,
                                                                            int&nbsp;desiredRequestParallelism)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 GCS addresses.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contextSideInput</code> - optional side input with contexts for select images. The <code>ImageContext</code> objects provide additional metadata for the annotation API. This way users
     can</dd>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dd><code>desiredRequestParallelism</code> - desired number of concurrent batched requests.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
<a name="annotateImagesFromGcsUri-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>annotateImagesFromGcsUri</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUri.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUri</a>&nbsp;annotateImagesFromGcsUri(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;java.lang.String,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                                                                            java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                            long&nbsp;batchSize)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 GCS addresses. Uses a default value 5 for desiredRequestParallelism.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contextSideInput</code> - optional side input with contexts for select images. The <code>ImageContext</code> objects provide additional metadata for the annotation API. This way users
     can fine-tune analysis of selected images.</dd>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
<a name="annotateImagesFromBytes-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>annotateImagesFromBytes</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytes.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytes</a>&nbsp;annotateImagesFromBytes(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;<a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf">ByteString</a>,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                                                                          java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                          long&nbsp;batchSize,
                                                                          int&nbsp;desiredRequestParallelism)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 contents encoded in <a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf"><code>ByteString</code></a>s.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contextSideInput</code> - optional side input with contexts for select images. The <code>ImageContext</code> objects provide additional metadata for the annotation API. This way users
     can fine-tune analysis of selected images.</dd>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dd><code>desiredRequestParallelism</code> - desired number of concurrent batched requests.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
<a name="annotateImagesFromBytes-org.apache.beam.sdk.values.PCollectionView-java.util.List-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>annotateImagesFromBytes</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytes.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytes</a>&nbsp;annotateImagesFromBytes(<a href="../../../../../../org/apache/beam/sdk/values/PCollectionView.html" title="interface in org.apache.beam.sdk.values">PCollectionView</a>&lt;java.util.Map&lt;<a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf">ByteString</a>,com.google.cloud.vision.v1.ImageContext&gt;&gt;&nbsp;contextSideInput,
                                                                          java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                          long&nbsp;batchSize)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from their
 contents encoded in <a href="https://static.javadoc.io/com.google.protobuf/protobuf-java/3.19.3/com/google/protobuf/ByteString.html?is-external=true" title="class or interface in com.google.protobuf"><code>ByteString</code></a>s. Uses a default value 5 for desiredRequestParallelism.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>contextSideInput</code> - optional side input with contexts for select images. The <code>ImageContext</code> objects provide additional metadata for the annotation API. This way users
     can fine-tune analysis of selected images.</dd>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
<a name="annotateImagesFromBytesWithContext-java.util.List-long-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>annotateImagesFromBytesWithContext</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytesWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytesWithContext</a>&nbsp;annotateImagesFromBytesWithContext(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                                                long&nbsp;batchSize,
                                                                                                int&nbsp;desiredRequestParallelism)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their GCS addresses in Strings and <code>ImageContext</code> for each image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dd><code>desiredRequestParallelism</code> - desired number of concurrent batched requests.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
<a name="annotateImagesFromBytesWithContext-java.util.List-long-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>annotateImagesFromBytesWithContext</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytesWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromBytesWithContext</a>&nbsp;annotateImagesFromBytesWithContext(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                                                long&nbsp;batchSize)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their GCS addresses in Strings and <code>ImageContext</code> for each image. Uses a default value 5
 for desiredRequestParallelism.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
<a name="annotateImagesFromGcsUriWithContext-java.util.List-long-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>annotateImagesFromGcsUriWithContext</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUriWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUriWithContext</a>&nbsp;annotateImagesFromGcsUriWithContext(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                                                  long&nbsp;batchSize,
                                                                                                  int&nbsp;desiredRequestParallelism)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their String-encoded contents and <code>ImageContext</code> for each image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dd><code>desiredRequestParallelism</code> - desired number of concurrent batched requests.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
<a name="annotateImagesFromGcsUriWithContext-java.util.List-long-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>annotateImagesFromGcsUriWithContext</h4>
<pre>public static&nbsp;<a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromGcsUriWithContext.html" title="class in org.apache.beam.sdk.extensions.ml">CloudVision.AnnotateImagesFromGcsUriWithContext</a>&nbsp;annotateImagesFromGcsUriWithContext(java.util.List&lt;com.google.cloud.vision.v1.Feature&gt;&nbsp;features,
                                                                                                  long&nbsp;batchSize)</pre>
<div class="block">Creates a <a href="../../../../../../org/apache/beam/sdk/transforms/PTransform.html" title="class in org.apache.beam.sdk.transforms"><code>PTransform</code></a> that annotates images from KVs of
 their String-encoded contents and <code>ImageContext</code> for each image. Uses a default value 5
 for desiredRequestParallelism.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>features</code> - annotation features that should be passed to the API</dd>
<dd><code>batchSize</code> - request batch size to be sent to API. Max 16, at least 1.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the PTransform.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/beam/sdk/extensions/ml/AnnotateText.Builder.html" title="class in org.apache.beam.sdk.extensions.ml"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/beam/sdk/extensions/ml/CloudVision.AnnotateImagesFromBytes.html" title="class in org.apache.beam.sdk.extensions.ml"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/beam/sdk/extensions/ml/CloudVision.html" target="_top">Frames</a></li>
<li><a href="CloudVision.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
