xref: /aosp_15_r20/external/googleapis/google/cloud/documentai/v1beta2/document.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC
2*d5c09012SAndroid Build Coastguard Worker//
3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*d5c09012SAndroid Build Coastguard Worker//
7*d5c09012SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*d5c09012SAndroid Build Coastguard Worker//
9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*d5c09012SAndroid Build Coastguard Worker// limitations under the License.
14*d5c09012SAndroid Build Coastguard Worker
15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3";
16*d5c09012SAndroid Build Coastguard Worker
17*d5c09012SAndroid Build Coastguard Workerpackage google.cloud.documentai.v1beta2;
18*d5c09012SAndroid Build Coastguard Worker
19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto";
20*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/documentai/v1beta2/barcode.proto";
21*d5c09012SAndroid Build Coastguard Workerimport "google/cloud/documentai/v1beta2/geometry.proto";
22*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto";
23*d5c09012SAndroid Build Coastguard Workerimport "google/rpc/status.proto";
24*d5c09012SAndroid Build Coastguard Workerimport "google/type/color.proto";
25*d5c09012SAndroid Build Coastguard Workerimport "google/type/date.proto";
26*d5c09012SAndroid Build Coastguard Workerimport "google/type/datetime.proto";
27*d5c09012SAndroid Build Coastguard Workerimport "google/type/money.proto";
28*d5c09012SAndroid Build Coastguard Workerimport "google/type/postal_address.proto";
29*d5c09012SAndroid Build Coastguard Worker
30*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.DocumentAI.V1Beta2";
31*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/documentai/apiv1beta2/documentaipb;documentaipb";
32*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true;
33*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "DocumentProto";
34*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.cloud.documentai.v1beta2";
35*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\DocumentAI\\V1beta2";
36*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::DocumentAI::V1beta2";
37*d5c09012SAndroid Build Coastguard Worker
38*d5c09012SAndroid Build Coastguard Worker// Document represents the canonical document resource in Document AI. It is an
39*d5c09012SAndroid Build Coastguard Worker// interchange format that provides insights into documents and allows for
40*d5c09012SAndroid Build Coastguard Worker// collaboration between users and Document AI to iterate and optimize for
41*d5c09012SAndroid Build Coastguard Worker// quality.
42*d5c09012SAndroid Build Coastguard Workermessage Document {
43*d5c09012SAndroid Build Coastguard Worker  // For a large document, sharding may be performed to produce several
44*d5c09012SAndroid Build Coastguard Worker  // document shards. Each document shard contains this field to detail which
45*d5c09012SAndroid Build Coastguard Worker  // shard it is.
46*d5c09012SAndroid Build Coastguard Worker  message ShardInfo {
47*d5c09012SAndroid Build Coastguard Worker    // The 0-based index of this shard.
48*d5c09012SAndroid Build Coastguard Worker    int64 shard_index = 1;
49*d5c09012SAndroid Build Coastguard Worker
50*d5c09012SAndroid Build Coastguard Worker    // Total number of shards.
51*d5c09012SAndroid Build Coastguard Worker    int64 shard_count = 2;
52*d5c09012SAndroid Build Coastguard Worker
53*d5c09012SAndroid Build Coastguard Worker    // The index of the first character in
54*d5c09012SAndroid Build Coastguard Worker    // [Document.text][google.cloud.documentai.v1beta2.Document.text] in the
55*d5c09012SAndroid Build Coastguard Worker    // overall document global text.
56*d5c09012SAndroid Build Coastguard Worker    int64 text_offset = 3;
57*d5c09012SAndroid Build Coastguard Worker  }
58*d5c09012SAndroid Build Coastguard Worker
59*d5c09012SAndroid Build Coastguard Worker  // Label attaches schema information and/or other metadata to segments within
60*d5c09012SAndroid Build Coastguard Worker  // a [Document][google.cloud.documentai.v1beta2.Document]. Multiple
61*d5c09012SAndroid Build Coastguard Worker  // [Label][google.cloud.documentai.v1beta2.Document.Label]s on a single field
62*d5c09012SAndroid Build Coastguard Worker  // can denote either different labels, different instances of the same label
63*d5c09012SAndroid Build Coastguard Worker  // created at different times, or some combination of both.
64*d5c09012SAndroid Build Coastguard Worker  message Label {
65*d5c09012SAndroid Build Coastguard Worker    // Provenance of the label.
66*d5c09012SAndroid Build Coastguard Worker    oneof source {
67*d5c09012SAndroid Build Coastguard Worker      // Label is generated AutoML model. This field stores the full resource
68*d5c09012SAndroid Build Coastguard Worker      // name of the AutoML model.
69*d5c09012SAndroid Build Coastguard Worker      //
70*d5c09012SAndroid Build Coastguard Worker      // Format:
71*d5c09012SAndroid Build Coastguard Worker      // `projects/{project-id}/locations/{location-id}/models/{model-id}`
72*d5c09012SAndroid Build Coastguard Worker      string automl_model = 2;
73*d5c09012SAndroid Build Coastguard Worker    }
74*d5c09012SAndroid Build Coastguard Worker
75*d5c09012SAndroid Build Coastguard Worker    // Name of the label.
76*d5c09012SAndroid Build Coastguard Worker    //
77*d5c09012SAndroid Build Coastguard Worker    // When the label is generated from AutoML Text Classification model, this
78*d5c09012SAndroid Build Coastguard Worker    // field represents the name of the category.
79*d5c09012SAndroid Build Coastguard Worker    string name = 1;
80*d5c09012SAndroid Build Coastguard Worker
81*d5c09012SAndroid Build Coastguard Worker    // Confidence score between 0 and 1 for label assignment.
82*d5c09012SAndroid Build Coastguard Worker    float confidence = 3;
83*d5c09012SAndroid Build Coastguard Worker  }
84*d5c09012SAndroid Build Coastguard Worker
85*d5c09012SAndroid Build Coastguard Worker  // Annotation for common text style attributes. This adheres to CSS
86*d5c09012SAndroid Build Coastguard Worker  // conventions as much as possible.
87*d5c09012SAndroid Build Coastguard Worker  message Style {
88*d5c09012SAndroid Build Coastguard Worker    // Font size with unit.
89*d5c09012SAndroid Build Coastguard Worker    message FontSize {
90*d5c09012SAndroid Build Coastguard Worker      // Font size for the text.
91*d5c09012SAndroid Build Coastguard Worker      float size = 1;
92*d5c09012SAndroid Build Coastguard Worker
93*d5c09012SAndroid Build Coastguard Worker      // Unit for the font size. Follows CSS naming (such as `in`, `px`, and
94*d5c09012SAndroid Build Coastguard Worker      // `pt`).
95*d5c09012SAndroid Build Coastguard Worker      string unit = 2;
96*d5c09012SAndroid Build Coastguard Worker    }
97*d5c09012SAndroid Build Coastguard Worker
98*d5c09012SAndroid Build Coastguard Worker    // Text anchor indexing into the
99*d5c09012SAndroid Build Coastguard Worker    // [Document.text][google.cloud.documentai.v1beta2.Document.text].
100*d5c09012SAndroid Build Coastguard Worker    TextAnchor text_anchor = 1;
101*d5c09012SAndroid Build Coastguard Worker
102*d5c09012SAndroid Build Coastguard Worker    // Text color.
103*d5c09012SAndroid Build Coastguard Worker    google.type.Color color = 2;
104*d5c09012SAndroid Build Coastguard Worker
105*d5c09012SAndroid Build Coastguard Worker    // Text background color.
106*d5c09012SAndroid Build Coastguard Worker    google.type.Color background_color = 3;
107*d5c09012SAndroid Build Coastguard Worker
108*d5c09012SAndroid Build Coastguard Worker    // [Font weight](https://www.w3schools.com/cssref/pr_font_weight.asp).
109*d5c09012SAndroid Build Coastguard Worker    // Possible values are `normal`, `bold`, `bolder`, and `lighter`.
110*d5c09012SAndroid Build Coastguard Worker    string font_weight = 4;
111*d5c09012SAndroid Build Coastguard Worker
112*d5c09012SAndroid Build Coastguard Worker    // [Text style](https://www.w3schools.com/cssref/pr_font_font-style.asp).
113*d5c09012SAndroid Build Coastguard Worker    // Possible values are `normal`, `italic`, and `oblique`.
114*d5c09012SAndroid Build Coastguard Worker    string text_style = 5;
115*d5c09012SAndroid Build Coastguard Worker
116*d5c09012SAndroid Build Coastguard Worker    // [Text
117*d5c09012SAndroid Build Coastguard Worker    // decoration](https://www.w3schools.com/cssref/pr_text_text-decoration.asp).
118*d5c09012SAndroid Build Coastguard Worker    // Follows CSS standard. <text-decoration-line> <text-decoration-color>
119*d5c09012SAndroid Build Coastguard Worker    // <text-decoration-style>
120*d5c09012SAndroid Build Coastguard Worker    string text_decoration = 6;
121*d5c09012SAndroid Build Coastguard Worker
122*d5c09012SAndroid Build Coastguard Worker    // Font size.
123*d5c09012SAndroid Build Coastguard Worker    FontSize font_size = 7;
124*d5c09012SAndroid Build Coastguard Worker
125*d5c09012SAndroid Build Coastguard Worker    // Font family such as `Arial`, `Times New Roman`.
126*d5c09012SAndroid Build Coastguard Worker    // https://www.w3schools.com/cssref/pr_font_font-family.asp
127*d5c09012SAndroid Build Coastguard Worker    string font_family = 8;
128*d5c09012SAndroid Build Coastguard Worker  }
129*d5c09012SAndroid Build Coastguard Worker
130*d5c09012SAndroid Build Coastguard Worker  // A page in a [Document][google.cloud.documentai.v1beta2.Document].
131*d5c09012SAndroid Build Coastguard Worker  message Page {
132*d5c09012SAndroid Build Coastguard Worker    // Dimension for the page.
133*d5c09012SAndroid Build Coastguard Worker    message Dimension {
134*d5c09012SAndroid Build Coastguard Worker      // Page width.
135*d5c09012SAndroid Build Coastguard Worker      float width = 1;
136*d5c09012SAndroid Build Coastguard Worker
137*d5c09012SAndroid Build Coastguard Worker      // Page height.
138*d5c09012SAndroid Build Coastguard Worker      float height = 2;
139*d5c09012SAndroid Build Coastguard Worker
140*d5c09012SAndroid Build Coastguard Worker      // Dimension unit.
141*d5c09012SAndroid Build Coastguard Worker      string unit = 3;
142*d5c09012SAndroid Build Coastguard Worker    }
143*d5c09012SAndroid Build Coastguard Worker
144*d5c09012SAndroid Build Coastguard Worker    // Rendered image contents for this page.
145*d5c09012SAndroid Build Coastguard Worker    message Image {
146*d5c09012SAndroid Build Coastguard Worker      // Raw byte content of the image.
147*d5c09012SAndroid Build Coastguard Worker      bytes content = 1;
148*d5c09012SAndroid Build Coastguard Worker
149*d5c09012SAndroid Build Coastguard Worker      // Encoding [media type (MIME
150*d5c09012SAndroid Build Coastguard Worker      // type)](https://www.iana.org/assignments/media-types/media-types.xhtml)
151*d5c09012SAndroid Build Coastguard Worker      // for the image.
152*d5c09012SAndroid Build Coastguard Worker      string mime_type = 2;
153*d5c09012SAndroid Build Coastguard Worker
154*d5c09012SAndroid Build Coastguard Worker      // Width of the image in pixels.
155*d5c09012SAndroid Build Coastguard Worker      int32 width = 3;
156*d5c09012SAndroid Build Coastguard Worker
157*d5c09012SAndroid Build Coastguard Worker      // Height of the image in pixels.
158*d5c09012SAndroid Build Coastguard Worker      int32 height = 4;
159*d5c09012SAndroid Build Coastguard Worker    }
160*d5c09012SAndroid Build Coastguard Worker
161*d5c09012SAndroid Build Coastguard Worker    // Representation for transformation matrix, intended to be compatible and
162*d5c09012SAndroid Build Coastguard Worker    // used with OpenCV format for image manipulation.
163*d5c09012SAndroid Build Coastguard Worker    message Matrix {
164*d5c09012SAndroid Build Coastguard Worker      // Number of rows in the matrix.
165*d5c09012SAndroid Build Coastguard Worker      int32 rows = 1;
166*d5c09012SAndroid Build Coastguard Worker
167*d5c09012SAndroid Build Coastguard Worker      // Number of columns in the matrix.
168*d5c09012SAndroid Build Coastguard Worker      int32 cols = 2;
169*d5c09012SAndroid Build Coastguard Worker
170*d5c09012SAndroid Build Coastguard Worker      // This encodes information about what data type the matrix uses.
171*d5c09012SAndroid Build Coastguard Worker      // For example, 0 (CV_8U) is an unsigned 8-bit image. For the full list
172*d5c09012SAndroid Build Coastguard Worker      // of OpenCV primitive data types, please refer to
173*d5c09012SAndroid Build Coastguard Worker      // https://docs.opencv.org/4.3.0/d1/d1b/group__core__hal__interface.html
174*d5c09012SAndroid Build Coastguard Worker      int32 type = 3;
175*d5c09012SAndroid Build Coastguard Worker
176*d5c09012SAndroid Build Coastguard Worker      // The matrix data.
177*d5c09012SAndroid Build Coastguard Worker      bytes data = 4;
178*d5c09012SAndroid Build Coastguard Worker    }
179*d5c09012SAndroid Build Coastguard Worker
180*d5c09012SAndroid Build Coastguard Worker    // Visual element describing a layout unit on a page.
181*d5c09012SAndroid Build Coastguard Worker    message Layout {
182*d5c09012SAndroid Build Coastguard Worker      // Detected human reading orientation.
183*d5c09012SAndroid Build Coastguard Worker      enum Orientation {
184*d5c09012SAndroid Build Coastguard Worker        // Unspecified orientation.
185*d5c09012SAndroid Build Coastguard Worker        ORIENTATION_UNSPECIFIED = 0;
186*d5c09012SAndroid Build Coastguard Worker
187*d5c09012SAndroid Build Coastguard Worker        // Orientation is aligned with page up.
188*d5c09012SAndroid Build Coastguard Worker        PAGE_UP = 1;
189*d5c09012SAndroid Build Coastguard Worker
190*d5c09012SAndroid Build Coastguard Worker        // Orientation is aligned with page right.
191*d5c09012SAndroid Build Coastguard Worker        // Turn the head 90 degrees clockwise from upright to read.
192*d5c09012SAndroid Build Coastguard Worker        PAGE_RIGHT = 2;
193*d5c09012SAndroid Build Coastguard Worker
194*d5c09012SAndroid Build Coastguard Worker        // Orientation is aligned with page down.
195*d5c09012SAndroid Build Coastguard Worker        // Turn the head 180 degrees from upright to read.
196*d5c09012SAndroid Build Coastguard Worker        PAGE_DOWN = 3;
197*d5c09012SAndroid Build Coastguard Worker
198*d5c09012SAndroid Build Coastguard Worker        // Orientation is aligned with page left.
199*d5c09012SAndroid Build Coastguard Worker        // Turn the head 90 degrees counterclockwise from upright to read.
200*d5c09012SAndroid Build Coastguard Worker        PAGE_LEFT = 4;
201*d5c09012SAndroid Build Coastguard Worker      }
202*d5c09012SAndroid Build Coastguard Worker
203*d5c09012SAndroid Build Coastguard Worker      // Text anchor indexing into the
204*d5c09012SAndroid Build Coastguard Worker      // [Document.text][google.cloud.documentai.v1beta2.Document.text].
205*d5c09012SAndroid Build Coastguard Worker      TextAnchor text_anchor = 1;
206*d5c09012SAndroid Build Coastguard Worker
207*d5c09012SAndroid Build Coastguard Worker      // Confidence of the current
208*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] within
209*d5c09012SAndroid Build Coastguard Worker      // context of the object this layout is for. e.g. confidence can be for a
210*d5c09012SAndroid Build Coastguard Worker      // single token, a table, a visual element, etc. depending on context.
211*d5c09012SAndroid Build Coastguard Worker      // Range `[0, 1]`.
212*d5c09012SAndroid Build Coastguard Worker      float confidence = 2;
213*d5c09012SAndroid Build Coastguard Worker
214*d5c09012SAndroid Build Coastguard Worker      // The bounding polygon for the
215*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout].
216*d5c09012SAndroid Build Coastguard Worker      BoundingPoly bounding_poly = 3;
217*d5c09012SAndroid Build Coastguard Worker
218*d5c09012SAndroid Build Coastguard Worker      // Detected orientation for the
219*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout].
220*d5c09012SAndroid Build Coastguard Worker      Orientation orientation = 4;
221*d5c09012SAndroid Build Coastguard Worker    }
222*d5c09012SAndroid Build Coastguard Worker
223*d5c09012SAndroid Build Coastguard Worker    // A block has a set of lines (collected into paragraphs) that have a
224*d5c09012SAndroid Build Coastguard Worker    // common line-spacing and orientation.
225*d5c09012SAndroid Build Coastguard Worker    message Block {
226*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
227*d5c09012SAndroid Build Coastguard Worker      // [Block][google.cloud.documentai.v1beta2.Document.Page.Block].
228*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
229*d5c09012SAndroid Build Coastguard Worker
230*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages together with confidence.
231*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage detected_languages = 2;
232*d5c09012SAndroid Build Coastguard Worker
233*d5c09012SAndroid Build Coastguard Worker      // The history of this annotation.
234*d5c09012SAndroid Build Coastguard Worker      Provenance provenance = 3 [deprecated = true];
235*d5c09012SAndroid Build Coastguard Worker    }
236*d5c09012SAndroid Build Coastguard Worker
237*d5c09012SAndroid Build Coastguard Worker    // A collection of lines that a human would perceive as a paragraph.
238*d5c09012SAndroid Build Coastguard Worker    message Paragraph {
239*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
240*d5c09012SAndroid Build Coastguard Worker      // [Paragraph][google.cloud.documentai.v1beta2.Document.Page.Paragraph].
241*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
242*d5c09012SAndroid Build Coastguard Worker
243*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages together with confidence.
244*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage detected_languages = 2;
245*d5c09012SAndroid Build Coastguard Worker
246*d5c09012SAndroid Build Coastguard Worker      // The  history of this annotation.
247*d5c09012SAndroid Build Coastguard Worker      Provenance provenance = 3 [deprecated = true];
248*d5c09012SAndroid Build Coastguard Worker    }
249*d5c09012SAndroid Build Coastguard Worker
250*d5c09012SAndroid Build Coastguard Worker    // A collection of tokens that a human would perceive as a line.
251*d5c09012SAndroid Build Coastguard Worker    // Does not cross column boundaries, can be horizontal, vertical, etc.
252*d5c09012SAndroid Build Coastguard Worker    message Line {
253*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
254*d5c09012SAndroid Build Coastguard Worker      // [Line][google.cloud.documentai.v1beta2.Document.Page.Line].
255*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
256*d5c09012SAndroid Build Coastguard Worker
257*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages together with confidence.
258*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage detected_languages = 2;
259*d5c09012SAndroid Build Coastguard Worker
260*d5c09012SAndroid Build Coastguard Worker      // The  history of this annotation.
261*d5c09012SAndroid Build Coastguard Worker      Provenance provenance = 3 [deprecated = true];
262*d5c09012SAndroid Build Coastguard Worker    }
263*d5c09012SAndroid Build Coastguard Worker
264*d5c09012SAndroid Build Coastguard Worker    // A detected token.
265*d5c09012SAndroid Build Coastguard Worker    message Token {
266*d5c09012SAndroid Build Coastguard Worker      // Detected break at the end of a
267*d5c09012SAndroid Build Coastguard Worker      // [Token][google.cloud.documentai.v1beta2.Document.Page.Token].
268*d5c09012SAndroid Build Coastguard Worker      message DetectedBreak {
269*d5c09012SAndroid Build Coastguard Worker        // Enum to denote the type of break found.
270*d5c09012SAndroid Build Coastguard Worker        enum Type {
271*d5c09012SAndroid Build Coastguard Worker          // Unspecified break type.
272*d5c09012SAndroid Build Coastguard Worker          TYPE_UNSPECIFIED = 0;
273*d5c09012SAndroid Build Coastguard Worker
274*d5c09012SAndroid Build Coastguard Worker          // A single whitespace.
275*d5c09012SAndroid Build Coastguard Worker          SPACE = 1;
276*d5c09012SAndroid Build Coastguard Worker
277*d5c09012SAndroid Build Coastguard Worker          // A wider whitespace.
278*d5c09012SAndroid Build Coastguard Worker          WIDE_SPACE = 2;
279*d5c09012SAndroid Build Coastguard Worker
280*d5c09012SAndroid Build Coastguard Worker          // A hyphen that indicates that a token has been split across lines.
281*d5c09012SAndroid Build Coastguard Worker          HYPHEN = 3;
282*d5c09012SAndroid Build Coastguard Worker        }
283*d5c09012SAndroid Build Coastguard Worker
284*d5c09012SAndroid Build Coastguard Worker        // Detected break type.
285*d5c09012SAndroid Build Coastguard Worker        Type type = 1;
286*d5c09012SAndroid Build Coastguard Worker      }
287*d5c09012SAndroid Build Coastguard Worker
288*d5c09012SAndroid Build Coastguard Worker      // Font and other text style attributes.
289*d5c09012SAndroid Build Coastguard Worker      message StyleInfo {
290*d5c09012SAndroid Build Coastguard Worker        // Font size in points (`1` point is `¹⁄₇₂` inches).
291*d5c09012SAndroid Build Coastguard Worker        int32 font_size = 1;
292*d5c09012SAndroid Build Coastguard Worker
293*d5c09012SAndroid Build Coastguard Worker        // Font size in pixels, equal to _unrounded
294*d5c09012SAndroid Build Coastguard Worker        // [font_size][google.cloud.documentai.v1beta2.Document.Page.Token.StyleInfo.font_size]_
295*d5c09012SAndroid Build Coastguard Worker        // * _resolution_ ÷ `72.0`.
296*d5c09012SAndroid Build Coastguard Worker        double pixel_font_size = 2;
297*d5c09012SAndroid Build Coastguard Worker
298*d5c09012SAndroid Build Coastguard Worker        // Letter spacing in points.
299*d5c09012SAndroid Build Coastguard Worker        double letter_spacing = 3;
300*d5c09012SAndroid Build Coastguard Worker
301*d5c09012SAndroid Build Coastguard Worker        // Name or style of the font.
302*d5c09012SAndroid Build Coastguard Worker        string font_type = 4;
303*d5c09012SAndroid Build Coastguard Worker
304*d5c09012SAndroid Build Coastguard Worker        // Whether the text is bold (equivalent to
305*d5c09012SAndroid Build Coastguard Worker        // [font_weight][google.cloud.documentai.v1beta2.Document.Page.Token.StyleInfo.font_weight]
306*d5c09012SAndroid Build Coastguard Worker        // is at least `700`).
307*d5c09012SAndroid Build Coastguard Worker        bool bold = 5;
308*d5c09012SAndroid Build Coastguard Worker
309*d5c09012SAndroid Build Coastguard Worker        // Whether the text is italic.
310*d5c09012SAndroid Build Coastguard Worker        bool italic = 6;
311*d5c09012SAndroid Build Coastguard Worker
312*d5c09012SAndroid Build Coastguard Worker        // Whether the text is underlined.
313*d5c09012SAndroid Build Coastguard Worker        bool underlined = 7;
314*d5c09012SAndroid Build Coastguard Worker
315*d5c09012SAndroid Build Coastguard Worker        // Whether the text is strikethrough.
316*d5c09012SAndroid Build Coastguard Worker        bool strikeout = 8;
317*d5c09012SAndroid Build Coastguard Worker
318*d5c09012SAndroid Build Coastguard Worker        // Whether the text is a subscript.
319*d5c09012SAndroid Build Coastguard Worker        bool subscript = 9;
320*d5c09012SAndroid Build Coastguard Worker
321*d5c09012SAndroid Build Coastguard Worker        // Whether the text is a superscript.
322*d5c09012SAndroid Build Coastguard Worker        bool superscript = 10;
323*d5c09012SAndroid Build Coastguard Worker
324*d5c09012SAndroid Build Coastguard Worker        // Whether the text is in small caps.
325*d5c09012SAndroid Build Coastguard Worker        bool smallcaps = 11;
326*d5c09012SAndroid Build Coastguard Worker
327*d5c09012SAndroid Build Coastguard Worker        // TrueType weight on a scale `100` (thin) to `1000` (ultra-heavy).
328*d5c09012SAndroid Build Coastguard Worker        // Normal is `400`, bold is `700`.
329*d5c09012SAndroid Build Coastguard Worker        int32 font_weight = 12;
330*d5c09012SAndroid Build Coastguard Worker
331*d5c09012SAndroid Build Coastguard Worker        // Whether the text is handwritten.
332*d5c09012SAndroid Build Coastguard Worker        bool handwritten = 13;
333*d5c09012SAndroid Build Coastguard Worker
334*d5c09012SAndroid Build Coastguard Worker        // Color of the text.
335*d5c09012SAndroid Build Coastguard Worker        google.type.Color text_color = 14;
336*d5c09012SAndroid Build Coastguard Worker
337*d5c09012SAndroid Build Coastguard Worker        // Color of the background.
338*d5c09012SAndroid Build Coastguard Worker        google.type.Color background_color = 15;
339*d5c09012SAndroid Build Coastguard Worker      }
340*d5c09012SAndroid Build Coastguard Worker
341*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
342*d5c09012SAndroid Build Coastguard Worker      // [Token][google.cloud.documentai.v1beta2.Document.Page.Token].
343*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
344*d5c09012SAndroid Build Coastguard Worker
345*d5c09012SAndroid Build Coastguard Worker      // Detected break at the end of a
346*d5c09012SAndroid Build Coastguard Worker      // [Token][google.cloud.documentai.v1beta2.Document.Page.Token].
347*d5c09012SAndroid Build Coastguard Worker      DetectedBreak detected_break = 2;
348*d5c09012SAndroid Build Coastguard Worker
349*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages together with confidence.
350*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage detected_languages = 3;
351*d5c09012SAndroid Build Coastguard Worker
352*d5c09012SAndroid Build Coastguard Worker      // The history of this annotation.
353*d5c09012SAndroid Build Coastguard Worker      Provenance provenance = 4 [deprecated = true];
354*d5c09012SAndroid Build Coastguard Worker
355*d5c09012SAndroid Build Coastguard Worker      // Text style attributes.
356*d5c09012SAndroid Build Coastguard Worker      StyleInfo style_info = 5;
357*d5c09012SAndroid Build Coastguard Worker    }
358*d5c09012SAndroid Build Coastguard Worker
359*d5c09012SAndroid Build Coastguard Worker    // A detected symbol.
360*d5c09012SAndroid Build Coastguard Worker    message Symbol {
361*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
362*d5c09012SAndroid Build Coastguard Worker      // [Symbol][google.cloud.documentai.v1beta2.Document.Page.Symbol].
363*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
364*d5c09012SAndroid Build Coastguard Worker
365*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages together with confidence.
366*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage detected_languages = 2;
367*d5c09012SAndroid Build Coastguard Worker    }
368*d5c09012SAndroid Build Coastguard Worker
369*d5c09012SAndroid Build Coastguard Worker    // Detected non-text visual elements e.g. checkbox, signature etc. on the
370*d5c09012SAndroid Build Coastguard Worker    // page.
371*d5c09012SAndroid Build Coastguard Worker    message VisualElement {
372*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
373*d5c09012SAndroid Build Coastguard Worker      // [VisualElement][google.cloud.documentai.v1beta2.Document.Page.VisualElement].
374*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
375*d5c09012SAndroid Build Coastguard Worker
376*d5c09012SAndroid Build Coastguard Worker      // Type of the
377*d5c09012SAndroid Build Coastguard Worker      // [VisualElement][google.cloud.documentai.v1beta2.Document.Page.VisualElement].
378*d5c09012SAndroid Build Coastguard Worker      string type = 2;
379*d5c09012SAndroid Build Coastguard Worker
380*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages together with confidence.
381*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage detected_languages = 3;
382*d5c09012SAndroid Build Coastguard Worker    }
383*d5c09012SAndroid Build Coastguard Worker
384*d5c09012SAndroid Build Coastguard Worker    // A table representation similar to HTML table structure.
385*d5c09012SAndroid Build Coastguard Worker    message Table {
386*d5c09012SAndroid Build Coastguard Worker      // A row of table cells.
387*d5c09012SAndroid Build Coastguard Worker      message TableRow {
388*d5c09012SAndroid Build Coastguard Worker        // Cells that make up this row.
389*d5c09012SAndroid Build Coastguard Worker        repeated TableCell cells = 1;
390*d5c09012SAndroid Build Coastguard Worker      }
391*d5c09012SAndroid Build Coastguard Worker
392*d5c09012SAndroid Build Coastguard Worker      // A cell representation inside the table.
393*d5c09012SAndroid Build Coastguard Worker      message TableCell {
394*d5c09012SAndroid Build Coastguard Worker        // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
395*d5c09012SAndroid Build Coastguard Worker        // [TableCell][google.cloud.documentai.v1beta2.Document.Page.Table.TableCell].
396*d5c09012SAndroid Build Coastguard Worker        Layout layout = 1;
397*d5c09012SAndroid Build Coastguard Worker
398*d5c09012SAndroid Build Coastguard Worker        // How many rows this cell spans.
399*d5c09012SAndroid Build Coastguard Worker        int32 row_span = 2;
400*d5c09012SAndroid Build Coastguard Worker
401*d5c09012SAndroid Build Coastguard Worker        // How many columns this cell spans.
402*d5c09012SAndroid Build Coastguard Worker        int32 col_span = 3;
403*d5c09012SAndroid Build Coastguard Worker
404*d5c09012SAndroid Build Coastguard Worker        // A list of detected languages together with confidence.
405*d5c09012SAndroid Build Coastguard Worker        repeated DetectedLanguage detected_languages = 4;
406*d5c09012SAndroid Build Coastguard Worker      }
407*d5c09012SAndroid Build Coastguard Worker
408*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
409*d5c09012SAndroid Build Coastguard Worker      // [Table][google.cloud.documentai.v1beta2.Document.Page.Table].
410*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
411*d5c09012SAndroid Build Coastguard Worker
412*d5c09012SAndroid Build Coastguard Worker      // Header rows of the table.
413*d5c09012SAndroid Build Coastguard Worker      repeated TableRow header_rows = 2;
414*d5c09012SAndroid Build Coastguard Worker
415*d5c09012SAndroid Build Coastguard Worker      // Body rows of the table.
416*d5c09012SAndroid Build Coastguard Worker      repeated TableRow body_rows = 3;
417*d5c09012SAndroid Build Coastguard Worker
418*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages together with confidence.
419*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage detected_languages = 4;
420*d5c09012SAndroid Build Coastguard Worker
421*d5c09012SAndroid Build Coastguard Worker      // The history of this table.
422*d5c09012SAndroid Build Coastguard Worker      Provenance provenance = 5 [deprecated = true];
423*d5c09012SAndroid Build Coastguard Worker    }
424*d5c09012SAndroid Build Coastguard Worker
425*d5c09012SAndroid Build Coastguard Worker    // A form field detected on the page.
426*d5c09012SAndroid Build Coastguard Worker    message FormField {
427*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for the
428*d5c09012SAndroid Build Coastguard Worker      // [FormField][google.cloud.documentai.v1beta2.Document.Page.FormField]
429*d5c09012SAndroid Build Coastguard Worker      // name. e.g. `Address`, `Email`, `Grand total`, `Phone number`, etc.
430*d5c09012SAndroid Build Coastguard Worker      Layout field_name = 1;
431*d5c09012SAndroid Build Coastguard Worker
432*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for the
433*d5c09012SAndroid Build Coastguard Worker      // [FormField][google.cloud.documentai.v1beta2.Document.Page.FormField]
434*d5c09012SAndroid Build Coastguard Worker      // value.
435*d5c09012SAndroid Build Coastguard Worker      Layout field_value = 2;
436*d5c09012SAndroid Build Coastguard Worker
437*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages for name together with confidence.
438*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage name_detected_languages = 3;
439*d5c09012SAndroid Build Coastguard Worker
440*d5c09012SAndroid Build Coastguard Worker      // A list of detected languages for value together with confidence.
441*d5c09012SAndroid Build Coastguard Worker      repeated DetectedLanguage value_detected_languages = 4;
442*d5c09012SAndroid Build Coastguard Worker
443*d5c09012SAndroid Build Coastguard Worker      // If the value is non-textual, this field represents the type. Current
444*d5c09012SAndroid Build Coastguard Worker      // valid values are:
445*d5c09012SAndroid Build Coastguard Worker      //
446*d5c09012SAndroid Build Coastguard Worker      // - blank (this indicates the `field_value` is normal text)
447*d5c09012SAndroid Build Coastguard Worker      // - `unfilled_checkbox`
448*d5c09012SAndroid Build Coastguard Worker      // - `filled_checkbox`
449*d5c09012SAndroid Build Coastguard Worker      string value_type = 5;
450*d5c09012SAndroid Build Coastguard Worker
451*d5c09012SAndroid Build Coastguard Worker      // Created for Labeling UI to export key text.
452*d5c09012SAndroid Build Coastguard Worker      // If corrections were made to the text identified by the
453*d5c09012SAndroid Build Coastguard Worker      // `field_name.text_anchor`, this field will contain the correction.
454*d5c09012SAndroid Build Coastguard Worker      string corrected_key_text = 6;
455*d5c09012SAndroid Build Coastguard Worker
456*d5c09012SAndroid Build Coastguard Worker      // Created for Labeling UI to export value text.
457*d5c09012SAndroid Build Coastguard Worker      // If corrections were made to the text identified by the
458*d5c09012SAndroid Build Coastguard Worker      // `field_value.text_anchor`, this field will contain the correction.
459*d5c09012SAndroid Build Coastguard Worker      string corrected_value_text = 7;
460*d5c09012SAndroid Build Coastguard Worker
461*d5c09012SAndroid Build Coastguard Worker      // The history of this annotation.
462*d5c09012SAndroid Build Coastguard Worker      Provenance provenance = 8;
463*d5c09012SAndroid Build Coastguard Worker    }
464*d5c09012SAndroid Build Coastguard Worker
465*d5c09012SAndroid Build Coastguard Worker    // A detected barcode.
466*d5c09012SAndroid Build Coastguard Worker    message DetectedBarcode {
467*d5c09012SAndroid Build Coastguard Worker      // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for
468*d5c09012SAndroid Build Coastguard Worker      // [DetectedBarcode][google.cloud.documentai.v1beta2.Document.Page.DetectedBarcode].
469*d5c09012SAndroid Build Coastguard Worker      Layout layout = 1;
470*d5c09012SAndroid Build Coastguard Worker
471*d5c09012SAndroid Build Coastguard Worker      // Detailed barcode information of the
472*d5c09012SAndroid Build Coastguard Worker      // [DetectedBarcode][google.cloud.documentai.v1beta2.Document.Page.DetectedBarcode].
473*d5c09012SAndroid Build Coastguard Worker      Barcode barcode = 2;
474*d5c09012SAndroid Build Coastguard Worker    }
475*d5c09012SAndroid Build Coastguard Worker
476*d5c09012SAndroid Build Coastguard Worker    // Detected language for a structural component.
477*d5c09012SAndroid Build Coastguard Worker    message DetectedLanguage {
478*d5c09012SAndroid Build Coastguard Worker      // The [BCP-47 language
479*d5c09012SAndroid Build Coastguard Worker      // code](https://www.unicode.org/reports/tr35/#Unicode_locale_identifier),
480*d5c09012SAndroid Build Coastguard Worker      // such as `en-US` or `sr-Latn`.
481*d5c09012SAndroid Build Coastguard Worker      string language_code = 1;
482*d5c09012SAndroid Build Coastguard Worker
483*d5c09012SAndroid Build Coastguard Worker      // Confidence of detected language. Range `[0, 1]`.
484*d5c09012SAndroid Build Coastguard Worker      float confidence = 2;
485*d5c09012SAndroid Build Coastguard Worker    }
486*d5c09012SAndroid Build Coastguard Worker
487*d5c09012SAndroid Build Coastguard Worker    // Image quality scores for the page image.
488*d5c09012SAndroid Build Coastguard Worker    message ImageQualityScores {
489*d5c09012SAndroid Build Coastguard Worker      // Image Quality Defects
490*d5c09012SAndroid Build Coastguard Worker      message DetectedDefect {
491*d5c09012SAndroid Build Coastguard Worker        // Name of the defect type. Supported values are:
492*d5c09012SAndroid Build Coastguard Worker        //
493*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_blurry`
494*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_noisy`
495*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_dark`
496*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_faint`
497*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_text_too_small`
498*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_document_cutoff`
499*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_text_cutoff`
500*d5c09012SAndroid Build Coastguard Worker        // - `quality/defect_glare`
501*d5c09012SAndroid Build Coastguard Worker        string type = 1;
502*d5c09012SAndroid Build Coastguard Worker
503*d5c09012SAndroid Build Coastguard Worker        // Confidence of detected defect. Range `[0, 1]` where `1` indicates
504*d5c09012SAndroid Build Coastguard Worker        // strong confidence that the defect exists.
505*d5c09012SAndroid Build Coastguard Worker        float confidence = 2;
506*d5c09012SAndroid Build Coastguard Worker      }
507*d5c09012SAndroid Build Coastguard Worker
508*d5c09012SAndroid Build Coastguard Worker      // The overall quality score. Range `[0, 1]` where `1` is perfect quality.
509*d5c09012SAndroid Build Coastguard Worker      float quality_score = 1;
510*d5c09012SAndroid Build Coastguard Worker
511*d5c09012SAndroid Build Coastguard Worker      // A list of detected defects.
512*d5c09012SAndroid Build Coastguard Worker      repeated DetectedDefect detected_defects = 2;
513*d5c09012SAndroid Build Coastguard Worker    }
514*d5c09012SAndroid Build Coastguard Worker
515*d5c09012SAndroid Build Coastguard Worker    // 1-based index for current
516*d5c09012SAndroid Build Coastguard Worker    // [Page][google.cloud.documentai.v1beta2.Document.Page] in a parent
517*d5c09012SAndroid Build Coastguard Worker    // [Document][google.cloud.documentai.v1beta2.Document]. Useful when a page
518*d5c09012SAndroid Build Coastguard Worker    // is taken out of a [Document][google.cloud.documentai.v1beta2.Document]
519*d5c09012SAndroid Build Coastguard Worker    // for individual processing.
520*d5c09012SAndroid Build Coastguard Worker    int32 page_number = 1;
521*d5c09012SAndroid Build Coastguard Worker
522*d5c09012SAndroid Build Coastguard Worker    // Rendered image for this page. This image is preprocessed to remove any
523*d5c09012SAndroid Build Coastguard Worker    // skew, rotation, and distortions such that the annotation bounding boxes
524*d5c09012SAndroid Build Coastguard Worker    // can be upright and axis-aligned.
525*d5c09012SAndroid Build Coastguard Worker    Image image = 13;
526*d5c09012SAndroid Build Coastguard Worker
527*d5c09012SAndroid Build Coastguard Worker    // Transformation matrices that were applied to the original document image
528*d5c09012SAndroid Build Coastguard Worker    // to produce
529*d5c09012SAndroid Build Coastguard Worker    // [Page.image][google.cloud.documentai.v1beta2.Document.Page.image].
530*d5c09012SAndroid Build Coastguard Worker    repeated Matrix transforms = 14;
531*d5c09012SAndroid Build Coastguard Worker
532*d5c09012SAndroid Build Coastguard Worker    // Physical dimension of the page.
533*d5c09012SAndroid Build Coastguard Worker    Dimension dimension = 2;
534*d5c09012SAndroid Build Coastguard Worker
535*d5c09012SAndroid Build Coastguard Worker    // [Layout][google.cloud.documentai.v1beta2.Document.Page.Layout] for the
536*d5c09012SAndroid Build Coastguard Worker    // page.
537*d5c09012SAndroid Build Coastguard Worker    Layout layout = 3;
538*d5c09012SAndroid Build Coastguard Worker
539*d5c09012SAndroid Build Coastguard Worker    // A list of detected languages together with confidence.
540*d5c09012SAndroid Build Coastguard Worker    repeated DetectedLanguage detected_languages = 4;
541*d5c09012SAndroid Build Coastguard Worker
542*d5c09012SAndroid Build Coastguard Worker    // A list of visually detected text blocks on the page.
543*d5c09012SAndroid Build Coastguard Worker    // A block has a set of lines (collected into paragraphs) that have a common
544*d5c09012SAndroid Build Coastguard Worker    // line-spacing and orientation.
545*d5c09012SAndroid Build Coastguard Worker    repeated Block blocks = 5;
546*d5c09012SAndroid Build Coastguard Worker
547*d5c09012SAndroid Build Coastguard Worker    // A list of visually detected text paragraphs on the page.
548*d5c09012SAndroid Build Coastguard Worker    // A collection of lines that a human would perceive as a paragraph.
549*d5c09012SAndroid Build Coastguard Worker    repeated Paragraph paragraphs = 6;
550*d5c09012SAndroid Build Coastguard Worker
551*d5c09012SAndroid Build Coastguard Worker    // A list of visually detected text lines on the page.
552*d5c09012SAndroid Build Coastguard Worker    // A collection of tokens that a human would perceive as a line.
553*d5c09012SAndroid Build Coastguard Worker    repeated Line lines = 7;
554*d5c09012SAndroid Build Coastguard Worker
555*d5c09012SAndroid Build Coastguard Worker    // A list of visually detected tokens on the page.
556*d5c09012SAndroid Build Coastguard Worker    repeated Token tokens = 8;
557*d5c09012SAndroid Build Coastguard Worker
558*d5c09012SAndroid Build Coastguard Worker    // A list of detected non-text visual elements e.g. checkbox,
559*d5c09012SAndroid Build Coastguard Worker    // signature etc. on the page.
560*d5c09012SAndroid Build Coastguard Worker    repeated VisualElement visual_elements = 9;
561*d5c09012SAndroid Build Coastguard Worker
562*d5c09012SAndroid Build Coastguard Worker    // A list of visually detected tables on the page.
563*d5c09012SAndroid Build Coastguard Worker    repeated Table tables = 10;
564*d5c09012SAndroid Build Coastguard Worker
565*d5c09012SAndroid Build Coastguard Worker    // A list of visually detected form fields on the page.
566*d5c09012SAndroid Build Coastguard Worker    repeated FormField form_fields = 11;
567*d5c09012SAndroid Build Coastguard Worker
568*d5c09012SAndroid Build Coastguard Worker    // A list of visually detected symbols on the page.
569*d5c09012SAndroid Build Coastguard Worker    repeated Symbol symbols = 12;
570*d5c09012SAndroid Build Coastguard Worker
571*d5c09012SAndroid Build Coastguard Worker    // A list of detected barcodes.
572*d5c09012SAndroid Build Coastguard Worker    repeated DetectedBarcode detected_barcodes = 15;
573*d5c09012SAndroid Build Coastguard Worker
574*d5c09012SAndroid Build Coastguard Worker    // Image quality scores.
575*d5c09012SAndroid Build Coastguard Worker    ImageQualityScores image_quality_scores = 17;
576*d5c09012SAndroid Build Coastguard Worker
577*d5c09012SAndroid Build Coastguard Worker    // The history of this page.
578*d5c09012SAndroid Build Coastguard Worker    Provenance provenance = 16 [deprecated = true];
579*d5c09012SAndroid Build Coastguard Worker  }
580*d5c09012SAndroid Build Coastguard Worker
581*d5c09012SAndroid Build Coastguard Worker  // An entity that could be a phrase in the text or a property that belongs to
582*d5c09012SAndroid Build Coastguard Worker  // the document. It is a known entity type, such as a person, an organization,
583*d5c09012SAndroid Build Coastguard Worker  // or location.
584*d5c09012SAndroid Build Coastguard Worker  message Entity {
585*d5c09012SAndroid Build Coastguard Worker    // Parsed and normalized entity value.
586*d5c09012SAndroid Build Coastguard Worker    message NormalizedValue {
587*d5c09012SAndroid Build Coastguard Worker      // An optional structured entity value.
588*d5c09012SAndroid Build Coastguard Worker      // Must match entity type defined in schema if
589*d5c09012SAndroid Build Coastguard Worker      // known. If this field is present, the `text` field could also be
590*d5c09012SAndroid Build Coastguard Worker      // populated.
591*d5c09012SAndroid Build Coastguard Worker      oneof structured_value {
592*d5c09012SAndroid Build Coastguard Worker        // Money value. See also:
593*d5c09012SAndroid Build Coastguard Worker        // https://github.com/googleapis/googleapis/blob/master/google/type/money.proto
594*d5c09012SAndroid Build Coastguard Worker        google.type.Money money_value = 2;
595*d5c09012SAndroid Build Coastguard Worker
596*d5c09012SAndroid Build Coastguard Worker        // Date value. Includes year, month, day. See also:
597*d5c09012SAndroid Build Coastguard Worker        // https://github.com/googleapis/googleapis/blob/master/google/type/date.proto
598*d5c09012SAndroid Build Coastguard Worker        google.type.Date date_value = 3;
599*d5c09012SAndroid Build Coastguard Worker
600*d5c09012SAndroid Build Coastguard Worker        // DateTime value. Includes date, time, and timezone. See also:
601*d5c09012SAndroid Build Coastguard Worker        // https://github.com/googleapis/googleapis/blob/master/google/type/datetime.proto
602*d5c09012SAndroid Build Coastguard Worker        google.type.DateTime datetime_value = 4;
603*d5c09012SAndroid Build Coastguard Worker
604*d5c09012SAndroid Build Coastguard Worker        // Postal address. See also:
605*d5c09012SAndroid Build Coastguard Worker        // https://github.com/googleapis/googleapis/blob/master/google/type/postal_address.proto
606*d5c09012SAndroid Build Coastguard Worker        google.type.PostalAddress address_value = 5;
607*d5c09012SAndroid Build Coastguard Worker
608*d5c09012SAndroid Build Coastguard Worker        // Boolean value. Can be used for entities with binary values, or for
609*d5c09012SAndroid Build Coastguard Worker        // checkboxes.
610*d5c09012SAndroid Build Coastguard Worker        bool boolean_value = 6;
611*d5c09012SAndroid Build Coastguard Worker
612*d5c09012SAndroid Build Coastguard Worker        // Integer value.
613*d5c09012SAndroid Build Coastguard Worker        int32 integer_value = 7;
614*d5c09012SAndroid Build Coastguard Worker
615*d5c09012SAndroid Build Coastguard Worker        // Float value.
616*d5c09012SAndroid Build Coastguard Worker        float float_value = 8;
617*d5c09012SAndroid Build Coastguard Worker      }
618*d5c09012SAndroid Build Coastguard Worker
619*d5c09012SAndroid Build Coastguard Worker      // Optional. An optional field to store a normalized string.
620*d5c09012SAndroid Build Coastguard Worker      // For some entity types, one of respective `structured_value` fields may
621*d5c09012SAndroid Build Coastguard Worker      // also be populated. Also not all the types of `structured_value` will be
622*d5c09012SAndroid Build Coastguard Worker      // normalized. For example, some processors may not generate `float`
623*d5c09012SAndroid Build Coastguard Worker      // or `integer` normalized text by default.
624*d5c09012SAndroid Build Coastguard Worker      //
625*d5c09012SAndroid Build Coastguard Worker      // Below are sample formats mapped to structured values.
626*d5c09012SAndroid Build Coastguard Worker      //
627*d5c09012SAndroid Build Coastguard Worker      // - Money/Currency type (`money_value`) is in the ISO 4217 text format.
628*d5c09012SAndroid Build Coastguard Worker      // - Date type (`date_value`) is in the ISO 8601 text format.
629*d5c09012SAndroid Build Coastguard Worker      // - Datetime type (`datetime_value`) is in the ISO 8601 text format.
630*d5c09012SAndroid Build Coastguard Worker      string text = 1 [(google.api.field_behavior) = OPTIONAL];
631*d5c09012SAndroid Build Coastguard Worker    }
632*d5c09012SAndroid Build Coastguard Worker
633*d5c09012SAndroid Build Coastguard Worker    // Optional. Provenance of the entity.
634*d5c09012SAndroid Build Coastguard Worker    // Text anchor indexing into the
635*d5c09012SAndroid Build Coastguard Worker    // [Document.text][google.cloud.documentai.v1beta2.Document.text].
636*d5c09012SAndroid Build Coastguard Worker    TextAnchor text_anchor = 1 [(google.api.field_behavior) = OPTIONAL];
637*d5c09012SAndroid Build Coastguard Worker
638*d5c09012SAndroid Build Coastguard Worker    // Required. Entity type from a schema e.g. `Address`.
639*d5c09012SAndroid Build Coastguard Worker    string type = 2 [(google.api.field_behavior) = REQUIRED];
640*d5c09012SAndroid Build Coastguard Worker
641*d5c09012SAndroid Build Coastguard Worker    // Optional. Text value of the entity e.g. `1600 Amphitheatre Pkwy`.
642*d5c09012SAndroid Build Coastguard Worker    string mention_text = 3 [(google.api.field_behavior) = OPTIONAL];
643*d5c09012SAndroid Build Coastguard Worker
644*d5c09012SAndroid Build Coastguard Worker    // Optional. Deprecated.  Use `id` field instead.
645*d5c09012SAndroid Build Coastguard Worker    string mention_id = 4 [(google.api.field_behavior) = OPTIONAL];
646*d5c09012SAndroid Build Coastguard Worker
647*d5c09012SAndroid Build Coastguard Worker    // Optional. Confidence of detected Schema entity. Range `[0, 1]`.
648*d5c09012SAndroid Build Coastguard Worker    float confidence = 5 [(google.api.field_behavior) = OPTIONAL];
649*d5c09012SAndroid Build Coastguard Worker
650*d5c09012SAndroid Build Coastguard Worker    // Optional. Represents the provenance of this entity wrt. the location on
651*d5c09012SAndroid Build Coastguard Worker    // the page where it was found.
652*d5c09012SAndroid Build Coastguard Worker    PageAnchor page_anchor = 6 [(google.api.field_behavior) = OPTIONAL];
653*d5c09012SAndroid Build Coastguard Worker
654*d5c09012SAndroid Build Coastguard Worker    // Optional. Canonical id. This will be a unique value in the entity list
655*d5c09012SAndroid Build Coastguard Worker    // for this document.
656*d5c09012SAndroid Build Coastguard Worker    string id = 7 [(google.api.field_behavior) = OPTIONAL];
657*d5c09012SAndroid Build Coastguard Worker
658*d5c09012SAndroid Build Coastguard Worker    // Optional. Normalized entity value. Absent if the extracted value could
659*d5c09012SAndroid Build Coastguard Worker    // not be converted or the type (e.g. address) is not supported for certain
660*d5c09012SAndroid Build Coastguard Worker    // parsers. This field is also only populated for certain supported document
661*d5c09012SAndroid Build Coastguard Worker    // types.
662*d5c09012SAndroid Build Coastguard Worker    NormalizedValue normalized_value = 9
663*d5c09012SAndroid Build Coastguard Worker        [(google.api.field_behavior) = OPTIONAL];
664*d5c09012SAndroid Build Coastguard Worker
665*d5c09012SAndroid Build Coastguard Worker    // Optional. Entities can be nested to form a hierarchical data structure
666*d5c09012SAndroid Build Coastguard Worker    // representing the content in the document.
667*d5c09012SAndroid Build Coastguard Worker    repeated Entity properties = 10 [(google.api.field_behavior) = OPTIONAL];
668*d5c09012SAndroid Build Coastguard Worker
669*d5c09012SAndroid Build Coastguard Worker    // Optional. The history of this annotation.
670*d5c09012SAndroid Build Coastguard Worker    Provenance provenance = 11 [(google.api.field_behavior) = OPTIONAL];
671*d5c09012SAndroid Build Coastguard Worker
672*d5c09012SAndroid Build Coastguard Worker    // Optional. Whether the entity will be redacted for de-identification
673*d5c09012SAndroid Build Coastguard Worker    // purposes.
674*d5c09012SAndroid Build Coastguard Worker    bool redacted = 12 [(google.api.field_behavior) = OPTIONAL];
675*d5c09012SAndroid Build Coastguard Worker  }
676*d5c09012SAndroid Build Coastguard Worker
677*d5c09012SAndroid Build Coastguard Worker  // Relationship between
678*d5c09012SAndroid Build Coastguard Worker  // [Entities][google.cloud.documentai.v1beta2.Document.Entity].
679*d5c09012SAndroid Build Coastguard Worker  message EntityRelation {
680*d5c09012SAndroid Build Coastguard Worker    // Subject entity id.
681*d5c09012SAndroid Build Coastguard Worker    string subject_id = 1;
682*d5c09012SAndroid Build Coastguard Worker
683*d5c09012SAndroid Build Coastguard Worker    // Object entity id.
684*d5c09012SAndroid Build Coastguard Worker    string object_id = 2;
685*d5c09012SAndroid Build Coastguard Worker
686*d5c09012SAndroid Build Coastguard Worker    // Relationship description.
687*d5c09012SAndroid Build Coastguard Worker    string relation = 3;
688*d5c09012SAndroid Build Coastguard Worker  }
689*d5c09012SAndroid Build Coastguard Worker
690*d5c09012SAndroid Build Coastguard Worker  // Text reference indexing into the
691*d5c09012SAndroid Build Coastguard Worker  // [Document.text][google.cloud.documentai.v1beta2.Document.text].
692*d5c09012SAndroid Build Coastguard Worker  message TextAnchor {
693*d5c09012SAndroid Build Coastguard Worker    // A text segment in the
694*d5c09012SAndroid Build Coastguard Worker    // [Document.text][google.cloud.documentai.v1beta2.Document.text]. The
695*d5c09012SAndroid Build Coastguard Worker    // indices may be out of bounds which indicate that the text extends into
696*d5c09012SAndroid Build Coastguard Worker    // another document shard for large sharded documents. See
697*d5c09012SAndroid Build Coastguard Worker    // [ShardInfo.text_offset][google.cloud.documentai.v1beta2.Document.ShardInfo.text_offset]
698*d5c09012SAndroid Build Coastguard Worker    message TextSegment {
699*d5c09012SAndroid Build Coastguard Worker      // [TextSegment][google.cloud.documentai.v1beta2.Document.TextAnchor.TextSegment]
700*d5c09012SAndroid Build Coastguard Worker      // start UTF-8 char index in the
701*d5c09012SAndroid Build Coastguard Worker      // [Document.text][google.cloud.documentai.v1beta2.Document.text].
702*d5c09012SAndroid Build Coastguard Worker      int64 start_index = 1;
703*d5c09012SAndroid Build Coastguard Worker
704*d5c09012SAndroid Build Coastguard Worker      // [TextSegment][google.cloud.documentai.v1beta2.Document.TextAnchor.TextSegment]
705*d5c09012SAndroid Build Coastguard Worker      // half open end UTF-8 char index in the
706*d5c09012SAndroid Build Coastguard Worker      // [Document.text][google.cloud.documentai.v1beta2.Document.text].
707*d5c09012SAndroid Build Coastguard Worker      int64 end_index = 2;
708*d5c09012SAndroid Build Coastguard Worker    }
709*d5c09012SAndroid Build Coastguard Worker
710*d5c09012SAndroid Build Coastguard Worker    // The text segments from the
711*d5c09012SAndroid Build Coastguard Worker    // [Document.text][google.cloud.documentai.v1beta2.Document.text].
712*d5c09012SAndroid Build Coastguard Worker    repeated TextSegment text_segments = 1;
713*d5c09012SAndroid Build Coastguard Worker
714*d5c09012SAndroid Build Coastguard Worker    // Contains the content of the text span so that users do
715*d5c09012SAndroid Build Coastguard Worker    // not have to look it up in the text_segments.  It is always
716*d5c09012SAndroid Build Coastguard Worker    // populated for formFields.
717*d5c09012SAndroid Build Coastguard Worker    string content = 2;
718*d5c09012SAndroid Build Coastguard Worker  }
719*d5c09012SAndroid Build Coastguard Worker
720*d5c09012SAndroid Build Coastguard Worker  // Referencing the visual context of the entity in the
721*d5c09012SAndroid Build Coastguard Worker  // [Document.pages][google.cloud.documentai.v1beta2.Document.pages]. Page
722*d5c09012SAndroid Build Coastguard Worker  // anchors can be cross-page, consist of multiple bounding polygons and
723*d5c09012SAndroid Build Coastguard Worker  // optionally reference specific layout element types.
724*d5c09012SAndroid Build Coastguard Worker  message PageAnchor {
725*d5c09012SAndroid Build Coastguard Worker    // Represents a weak reference to a page element within a document.
726*d5c09012SAndroid Build Coastguard Worker    message PageRef {
727*d5c09012SAndroid Build Coastguard Worker      // The type of layout that is being referenced.
728*d5c09012SAndroid Build Coastguard Worker      enum LayoutType {
729*d5c09012SAndroid Build Coastguard Worker        // Layout Unspecified.
730*d5c09012SAndroid Build Coastguard Worker        LAYOUT_TYPE_UNSPECIFIED = 0;
731*d5c09012SAndroid Build Coastguard Worker
732*d5c09012SAndroid Build Coastguard Worker        // References a
733*d5c09012SAndroid Build Coastguard Worker        // [Page.blocks][google.cloud.documentai.v1beta2.Document.Page.blocks]
734*d5c09012SAndroid Build Coastguard Worker        // element.
735*d5c09012SAndroid Build Coastguard Worker        BLOCK = 1;
736*d5c09012SAndroid Build Coastguard Worker
737*d5c09012SAndroid Build Coastguard Worker        // References a
738*d5c09012SAndroid Build Coastguard Worker        // [Page.paragraphs][google.cloud.documentai.v1beta2.Document.Page.paragraphs]
739*d5c09012SAndroid Build Coastguard Worker        // element.
740*d5c09012SAndroid Build Coastguard Worker        PARAGRAPH = 2;
741*d5c09012SAndroid Build Coastguard Worker
742*d5c09012SAndroid Build Coastguard Worker        // References a
743*d5c09012SAndroid Build Coastguard Worker        // [Page.lines][google.cloud.documentai.v1beta2.Document.Page.lines]
744*d5c09012SAndroid Build Coastguard Worker        // element.
745*d5c09012SAndroid Build Coastguard Worker        LINE = 3;
746*d5c09012SAndroid Build Coastguard Worker
747*d5c09012SAndroid Build Coastguard Worker        // References a
748*d5c09012SAndroid Build Coastguard Worker        // [Page.tokens][google.cloud.documentai.v1beta2.Document.Page.tokens]
749*d5c09012SAndroid Build Coastguard Worker        // element.
750*d5c09012SAndroid Build Coastguard Worker        TOKEN = 4;
751*d5c09012SAndroid Build Coastguard Worker
752*d5c09012SAndroid Build Coastguard Worker        // References a
753*d5c09012SAndroid Build Coastguard Worker        // [Page.visual_elements][google.cloud.documentai.v1beta2.Document.Page.visual_elements]
754*d5c09012SAndroid Build Coastguard Worker        // element.
755*d5c09012SAndroid Build Coastguard Worker        VISUAL_ELEMENT = 5;
756*d5c09012SAndroid Build Coastguard Worker
757*d5c09012SAndroid Build Coastguard Worker        // Refrrences a
758*d5c09012SAndroid Build Coastguard Worker        // [Page.tables][google.cloud.documentai.v1beta2.Document.Page.tables]
759*d5c09012SAndroid Build Coastguard Worker        // element.
760*d5c09012SAndroid Build Coastguard Worker        TABLE = 6;
761*d5c09012SAndroid Build Coastguard Worker
762*d5c09012SAndroid Build Coastguard Worker        // References a
763*d5c09012SAndroid Build Coastguard Worker        // [Page.form_fields][google.cloud.documentai.v1beta2.Document.Page.form_fields]
764*d5c09012SAndroid Build Coastguard Worker        // element.
765*d5c09012SAndroid Build Coastguard Worker        FORM_FIELD = 7;
766*d5c09012SAndroid Build Coastguard Worker      }
767*d5c09012SAndroid Build Coastguard Worker
768*d5c09012SAndroid Build Coastguard Worker      // Required. Index into the
769*d5c09012SAndroid Build Coastguard Worker      // [Document.pages][google.cloud.documentai.v1beta2.Document.pages]
770*d5c09012SAndroid Build Coastguard Worker      // element, for example using
771*d5c09012SAndroid Build Coastguard Worker      // `[Document.pages][page_refs.page]` to locate the related page element.
772*d5c09012SAndroid Build Coastguard Worker      // This field is skipped when its value is the default `0`. See
773*d5c09012SAndroid Build Coastguard Worker      // https://developers.google.com/protocol-buffers/docs/proto3#json.
774*d5c09012SAndroid Build Coastguard Worker      int64 page = 1 [(google.api.field_behavior) = REQUIRED];
775*d5c09012SAndroid Build Coastguard Worker
776*d5c09012SAndroid Build Coastguard Worker      // Optional. The type of the layout element that is being referenced if
777*d5c09012SAndroid Build Coastguard Worker      // any.
778*d5c09012SAndroid Build Coastguard Worker      LayoutType layout_type = 2 [(google.api.field_behavior) = OPTIONAL];
779*d5c09012SAndroid Build Coastguard Worker
780*d5c09012SAndroid Build Coastguard Worker      // Optional. Deprecated.  Use
781*d5c09012SAndroid Build Coastguard Worker      // [PageRef.bounding_poly][google.cloud.documentai.v1beta2.Document.PageAnchor.PageRef.bounding_poly]
782*d5c09012SAndroid Build Coastguard Worker      // instead.
783*d5c09012SAndroid Build Coastguard Worker      string layout_id = 3
784*d5c09012SAndroid Build Coastguard Worker          [deprecated = true, (google.api.field_behavior) = OPTIONAL];
785*d5c09012SAndroid Build Coastguard Worker
786*d5c09012SAndroid Build Coastguard Worker      // Optional. Identifies the bounding polygon of a layout element on the
787*d5c09012SAndroid Build Coastguard Worker      // page. If `layout_type` is set, the bounding polygon must be exactly the
788*d5c09012SAndroid Build Coastguard Worker      // same to the layout element it's referring to.
789*d5c09012SAndroid Build Coastguard Worker      BoundingPoly bounding_poly = 4 [(google.api.field_behavior) = OPTIONAL];
790*d5c09012SAndroid Build Coastguard Worker
791*d5c09012SAndroid Build Coastguard Worker      // Optional. Confidence of detected page element, if applicable. Range
792*d5c09012SAndroid Build Coastguard Worker      // `[0, 1]`.
793*d5c09012SAndroid Build Coastguard Worker      float confidence = 5 [(google.api.field_behavior) = OPTIONAL];
794*d5c09012SAndroid Build Coastguard Worker    }
795*d5c09012SAndroid Build Coastguard Worker
796*d5c09012SAndroid Build Coastguard Worker    // One or more references to visual page elements
797*d5c09012SAndroid Build Coastguard Worker    repeated PageRef page_refs = 1;
798*d5c09012SAndroid Build Coastguard Worker  }
799*d5c09012SAndroid Build Coastguard Worker
800*d5c09012SAndroid Build Coastguard Worker  // Structure to identify provenance relationships between annotations in
801*d5c09012SAndroid Build Coastguard Worker  // different revisions.
802*d5c09012SAndroid Build Coastguard Worker  message Provenance {
803*d5c09012SAndroid Build Coastguard Worker    // The parent element the current element is based on. Used for
804*d5c09012SAndroid Build Coastguard Worker    // referencing/aligning, removal and replacement operations.
805*d5c09012SAndroid Build Coastguard Worker    message Parent {
806*d5c09012SAndroid Build Coastguard Worker      // The index of the index into current revision's parent_ids list.
807*d5c09012SAndroid Build Coastguard Worker      int32 revision = 1;
808*d5c09012SAndroid Build Coastguard Worker
809*d5c09012SAndroid Build Coastguard Worker      // The index of the parent item in the corresponding item list (eg. list
810*d5c09012SAndroid Build Coastguard Worker      // of entities, properties within entities, etc.) in the parent revision.
811*d5c09012SAndroid Build Coastguard Worker      int32 index = 3;
812*d5c09012SAndroid Build Coastguard Worker
813*d5c09012SAndroid Build Coastguard Worker      // The id of the parent provenance.
814*d5c09012SAndroid Build Coastguard Worker      int32 id = 2 [deprecated = true];
815*d5c09012SAndroid Build Coastguard Worker    }
816*d5c09012SAndroid Build Coastguard Worker
817*d5c09012SAndroid Build Coastguard Worker    // If a processor or agent does an explicit operation on existing elements.
818*d5c09012SAndroid Build Coastguard Worker    enum OperationType {
819*d5c09012SAndroid Build Coastguard Worker      // Operation type unspecified. If no operation is specified a provenance
820*d5c09012SAndroid Build Coastguard Worker      // entry is simply used to match against a `parent`.
821*d5c09012SAndroid Build Coastguard Worker      OPERATION_TYPE_UNSPECIFIED = 0;
822*d5c09012SAndroid Build Coastguard Worker
823*d5c09012SAndroid Build Coastguard Worker      // Add an element.
824*d5c09012SAndroid Build Coastguard Worker      ADD = 1;
825*d5c09012SAndroid Build Coastguard Worker
826*d5c09012SAndroid Build Coastguard Worker      // Remove an element identified by `parent`.
827*d5c09012SAndroid Build Coastguard Worker      REMOVE = 2;
828*d5c09012SAndroid Build Coastguard Worker
829*d5c09012SAndroid Build Coastguard Worker      // Updates any fields within the given provenance scope of the message. It
830*d5c09012SAndroid Build Coastguard Worker      // overwrites the fields rather than replacing them.  Use this when you
831*d5c09012SAndroid Build Coastguard Worker      // want to update a field value of an entity without also updating all the
832*d5c09012SAndroid Build Coastguard Worker      // child properties.
833*d5c09012SAndroid Build Coastguard Worker      UPDATE = 7;
834*d5c09012SAndroid Build Coastguard Worker
835*d5c09012SAndroid Build Coastguard Worker      // Currently unused. Replace an element identified by `parent`.
836*d5c09012SAndroid Build Coastguard Worker      REPLACE = 3;
837*d5c09012SAndroid Build Coastguard Worker
838*d5c09012SAndroid Build Coastguard Worker      // Deprecated. Request human review for the element identified by
839*d5c09012SAndroid Build Coastguard Worker      // `parent`.
840*d5c09012SAndroid Build Coastguard Worker      EVAL_REQUESTED = 4 [deprecated = true];
841*d5c09012SAndroid Build Coastguard Worker
842*d5c09012SAndroid Build Coastguard Worker      // Deprecated. Element is reviewed and approved at human review,
843*d5c09012SAndroid Build Coastguard Worker      // confidence will be set to 1.0.
844*d5c09012SAndroid Build Coastguard Worker      EVAL_APPROVED = 5 [deprecated = true];
845*d5c09012SAndroid Build Coastguard Worker
846*d5c09012SAndroid Build Coastguard Worker      // Deprecated. Element is skipped in the validation process.
847*d5c09012SAndroid Build Coastguard Worker      EVAL_SKIPPED = 6 [deprecated = true];
848*d5c09012SAndroid Build Coastguard Worker    }
849*d5c09012SAndroid Build Coastguard Worker
850*d5c09012SAndroid Build Coastguard Worker    // The index of the revision that produced this element.
851*d5c09012SAndroid Build Coastguard Worker    int32 revision = 1 [deprecated = true];
852*d5c09012SAndroid Build Coastguard Worker
853*d5c09012SAndroid Build Coastguard Worker    // The Id of this operation.  Needs to be unique within the scope of the
854*d5c09012SAndroid Build Coastguard Worker    // revision.
855*d5c09012SAndroid Build Coastguard Worker    int32 id = 2 [deprecated = true];
856*d5c09012SAndroid Build Coastguard Worker
857*d5c09012SAndroid Build Coastguard Worker    // References to the original elements that are replaced.
858*d5c09012SAndroid Build Coastguard Worker    repeated Parent parents = 3;
859*d5c09012SAndroid Build Coastguard Worker
860*d5c09012SAndroid Build Coastguard Worker    // The type of provenance operation.
861*d5c09012SAndroid Build Coastguard Worker    OperationType type = 4;
862*d5c09012SAndroid Build Coastguard Worker  }
863*d5c09012SAndroid Build Coastguard Worker
864*d5c09012SAndroid Build Coastguard Worker  // Contains past or forward revisions of this document.
865*d5c09012SAndroid Build Coastguard Worker  message Revision {
866*d5c09012SAndroid Build Coastguard Worker    // Human Review information of the document.
867*d5c09012SAndroid Build Coastguard Worker    message HumanReview {
868*d5c09012SAndroid Build Coastguard Worker      // Human review state. e.g. `requested`, `succeeded`, `rejected`.
869*d5c09012SAndroid Build Coastguard Worker      string state = 1;
870*d5c09012SAndroid Build Coastguard Worker
871*d5c09012SAndroid Build Coastguard Worker      // A message providing more details about the current state of processing.
872*d5c09012SAndroid Build Coastguard Worker      // For example, the rejection reason when the state is `rejected`.
873*d5c09012SAndroid Build Coastguard Worker      string state_message = 2;
874*d5c09012SAndroid Build Coastguard Worker    }
875*d5c09012SAndroid Build Coastguard Worker
876*d5c09012SAndroid Build Coastguard Worker    // Who/what made the change
877*d5c09012SAndroid Build Coastguard Worker    oneof source {
878*d5c09012SAndroid Build Coastguard Worker      // If the change was made by a person specify the name or id of that
879*d5c09012SAndroid Build Coastguard Worker      // person.
880*d5c09012SAndroid Build Coastguard Worker      string agent = 4;
881*d5c09012SAndroid Build Coastguard Worker
882*d5c09012SAndroid Build Coastguard Worker      // If the annotation was made by processor identify the processor by its
883*d5c09012SAndroid Build Coastguard Worker      // resource name.
884*d5c09012SAndroid Build Coastguard Worker      string processor = 5;
885*d5c09012SAndroid Build Coastguard Worker    }
886*d5c09012SAndroid Build Coastguard Worker
887*d5c09012SAndroid Build Coastguard Worker    // Id of the revision, internally generated by doc proto storage.
888*d5c09012SAndroid Build Coastguard Worker    // Unique within the context of the document.
889*d5c09012SAndroid Build Coastguard Worker    string id = 1;
890*d5c09012SAndroid Build Coastguard Worker
891*d5c09012SAndroid Build Coastguard Worker    // The revisions that this revision is based on.  This can include one or
892*d5c09012SAndroid Build Coastguard Worker    // more parent (when documents are merged.)  This field represents the
893*d5c09012SAndroid Build Coastguard Worker    // index into the `revisions` field.
894*d5c09012SAndroid Build Coastguard Worker    repeated int32 parent = 2 [deprecated = true];
895*d5c09012SAndroid Build Coastguard Worker
896*d5c09012SAndroid Build Coastguard Worker    // The revisions that this revision is based on. Must include all the ids
897*d5c09012SAndroid Build Coastguard Worker    // that have anything to do with this revision - eg. there are
898*d5c09012SAndroid Build Coastguard Worker    // `provenance.parent.revision` fields that index into this field.
899*d5c09012SAndroid Build Coastguard Worker    repeated string parent_ids = 7;
900*d5c09012SAndroid Build Coastguard Worker
901*d5c09012SAndroid Build Coastguard Worker    // The time that the revision was created, internally generated by
902*d5c09012SAndroid Build Coastguard Worker    // doc proto storage at the time of create.
903*d5c09012SAndroid Build Coastguard Worker    google.protobuf.Timestamp create_time = 3;
904*d5c09012SAndroid Build Coastguard Worker
905*d5c09012SAndroid Build Coastguard Worker    // Human Review information of this revision.
906*d5c09012SAndroid Build Coastguard Worker    HumanReview human_review = 6;
907*d5c09012SAndroid Build Coastguard Worker  }
908*d5c09012SAndroid Build Coastguard Worker
909*d5c09012SAndroid Build Coastguard Worker  // This message is used for text changes aka. OCR corrections.
910*d5c09012SAndroid Build Coastguard Worker  message TextChange {
911*d5c09012SAndroid Build Coastguard Worker    // Provenance of the correction.
912*d5c09012SAndroid Build Coastguard Worker    // Text anchor indexing into the
913*d5c09012SAndroid Build Coastguard Worker    // [Document.text][google.cloud.documentai.v1beta2.Document.text].  There
914*d5c09012SAndroid Build Coastguard Worker    // can only be a single `TextAnchor.text_segments` element.  If the start
915*d5c09012SAndroid Build Coastguard Worker    // and end index of the text segment are the same, the text change is
916*d5c09012SAndroid Build Coastguard Worker    // inserted before that index.
917*d5c09012SAndroid Build Coastguard Worker    TextAnchor text_anchor = 1;
918*d5c09012SAndroid Build Coastguard Worker
919*d5c09012SAndroid Build Coastguard Worker    // The text that replaces the text identified in the `text_anchor`.
920*d5c09012SAndroid Build Coastguard Worker    string changed_text = 2;
921*d5c09012SAndroid Build Coastguard Worker
922*d5c09012SAndroid Build Coastguard Worker    // The history of this annotation.
923*d5c09012SAndroid Build Coastguard Worker    repeated Provenance provenance = 3 [deprecated = true];
924*d5c09012SAndroid Build Coastguard Worker  }
925*d5c09012SAndroid Build Coastguard Worker
926*d5c09012SAndroid Build Coastguard Worker  // Original source document from the user.
927*d5c09012SAndroid Build Coastguard Worker  oneof source {
928*d5c09012SAndroid Build Coastguard Worker    // Optional. Currently supports Google Cloud Storage URI of the form
929*d5c09012SAndroid Build Coastguard Worker    // `gs://bucket_name/object_name`. Object versioning is not supported.
930*d5c09012SAndroid Build Coastguard Worker    // For more information, refer to [Google Cloud Storage Request
931*d5c09012SAndroid Build Coastguard Worker    // URIs](https://cloud.google.com/storage/docs/reference-uris).
932*d5c09012SAndroid Build Coastguard Worker    string uri = 1 [(google.api.field_behavior) = OPTIONAL];
933*d5c09012SAndroid Build Coastguard Worker
934*d5c09012SAndroid Build Coastguard Worker    // Optional. Inline document content, represented as a stream of bytes.
935*d5c09012SAndroid Build Coastguard Worker    // Note: As with all `bytes` fields, protobuffers use a pure binary
936*d5c09012SAndroid Build Coastguard Worker    // representation, whereas JSON representations use base64.
937*d5c09012SAndroid Build Coastguard Worker    bytes content = 2 [(google.api.field_behavior) = OPTIONAL];
938*d5c09012SAndroid Build Coastguard Worker  }
939*d5c09012SAndroid Build Coastguard Worker
940*d5c09012SAndroid Build Coastguard Worker  // An IANA published [media type (MIME
941*d5c09012SAndroid Build Coastguard Worker  // type)](https://www.iana.org/assignments/media-types/media-types.xhtml).
942*d5c09012SAndroid Build Coastguard Worker  string mime_type = 3;
943*d5c09012SAndroid Build Coastguard Worker
944*d5c09012SAndroid Build Coastguard Worker  // Optional. UTF-8 encoded text in reading order from the document.
945*d5c09012SAndroid Build Coastguard Worker  string text = 4 [(google.api.field_behavior) = OPTIONAL];
946*d5c09012SAndroid Build Coastguard Worker
947*d5c09012SAndroid Build Coastguard Worker  // Styles for the
948*d5c09012SAndroid Build Coastguard Worker  // [Document.text][google.cloud.documentai.v1beta2.Document.text].
949*d5c09012SAndroid Build Coastguard Worker  repeated Style text_styles = 5 [deprecated = true];
950*d5c09012SAndroid Build Coastguard Worker
951*d5c09012SAndroid Build Coastguard Worker  // Visual page layout for the
952*d5c09012SAndroid Build Coastguard Worker  // [Document][google.cloud.documentai.v1beta2.Document].
953*d5c09012SAndroid Build Coastguard Worker  repeated Page pages = 6;
954*d5c09012SAndroid Build Coastguard Worker
955*d5c09012SAndroid Build Coastguard Worker  // A list of entities detected on
956*d5c09012SAndroid Build Coastguard Worker  // [Document.text][google.cloud.documentai.v1beta2.Document.text]. For
957*d5c09012SAndroid Build Coastguard Worker  // document shards, entities in this list may cross shard boundaries.
958*d5c09012SAndroid Build Coastguard Worker  repeated Entity entities = 7;
959*d5c09012SAndroid Build Coastguard Worker
960*d5c09012SAndroid Build Coastguard Worker  // Placeholder.  Relationship among
961*d5c09012SAndroid Build Coastguard Worker  // [Document.entities][google.cloud.documentai.v1beta2.Document.entities].
962*d5c09012SAndroid Build Coastguard Worker  repeated EntityRelation entity_relations = 8;
963*d5c09012SAndroid Build Coastguard Worker
964*d5c09012SAndroid Build Coastguard Worker  // Placeholder.  A list of text corrections made to
965*d5c09012SAndroid Build Coastguard Worker  // [Document.text][google.cloud.documentai.v1beta2.Document.text].  This is
966*d5c09012SAndroid Build Coastguard Worker  // usually used for annotating corrections to OCR mistakes.  Text changes for
967*d5c09012SAndroid Build Coastguard Worker  // a given revision may not overlap with each other.
968*d5c09012SAndroid Build Coastguard Worker  repeated TextChange text_changes = 14;
969*d5c09012SAndroid Build Coastguard Worker
970*d5c09012SAndroid Build Coastguard Worker  // Information about the sharding if this document is sharded part of a larger
971*d5c09012SAndroid Build Coastguard Worker  // document. If the document is not sharded, this message is not specified.
972*d5c09012SAndroid Build Coastguard Worker  ShardInfo shard_info = 9;
973*d5c09012SAndroid Build Coastguard Worker
974*d5c09012SAndroid Build Coastguard Worker  // [Label][google.cloud.documentai.v1beta2.Document.Label]s for this document.
975*d5c09012SAndroid Build Coastguard Worker  repeated Label labels = 11;
976*d5c09012SAndroid Build Coastguard Worker
977*d5c09012SAndroid Build Coastguard Worker  // Any error that occurred while processing this document.
978*d5c09012SAndroid Build Coastguard Worker  google.rpc.Status error = 10;
979*d5c09012SAndroid Build Coastguard Worker
980*d5c09012SAndroid Build Coastguard Worker  // Placeholder. Revision history of this document.
981*d5c09012SAndroid Build Coastguard Worker  repeated Revision revisions = 13;
982*d5c09012SAndroid Build Coastguard Worker}
983