# Copyright 2015 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. require 'date' require 'google/apis/core/base_service' require 'google/apis/core/json_representation' require 'google/apis/core/hashable' require 'google/apis/errors' module Google module Apis module DocumentaiV1beta2 # Response to an batch document processing request. This is returned in # the LRO Operation after the operation is complete. class GoogleCloudDocumentaiV1beta1BatchProcessDocumentsResponse include Google::Apis::Core::Hashable # Responses for each individual document. # Corresponds to the JSON property `responses` # @return [Array] attr_accessor :responses def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @responses = args[:responses] if args.key?(:responses) end end # A bounding polygon for the detected image annotation. class GoogleCloudDocumentaiV1beta1BoundingPoly include Google::Apis::Core::Hashable # The bounding polygon normalized vertices. # Corresponds to the JSON property `normalizedVertices` # @return [Array] attr_accessor :normalized_vertices # The bounding polygon vertices. # Corresponds to the JSON property `vertices` # @return [Array] attr_accessor :vertices def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @normalized_vertices = args[:normalized_vertices] if args.key?(:normalized_vertices) @vertices = args[:vertices] if args.key?(:vertices) end end # Document represents the canonical document resource in Document Understanding # AI. # It is an interchange format that provides insights into documents and allows # for collaboration between users and Document Understanding AI to iterate and # optimize for quality. class GoogleCloudDocumentaiV1beta1Document include Google::Apis::Core::Hashable # Inline document content, represented as a stream of bytes. # Note: As with all `bytes` fields, protobuffers use a pure binary # representation, whereas JSON representations use base64. # Corresponds to the JSON property `content` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :content # A list of entities detected on Document.text. For document shards, # entities in this list may cross shard boundaries. # Corresponds to the JSON property `entities` # @return [Array] attr_accessor :entities # Relationship among Document.entities. # Corresponds to the JSON property `entityRelations` # @return [Array] attr_accessor :entity_relations # The `Status` type defines a logical error model that is suitable for # different programming environments, including REST APIs and RPC APIs. It is # used by [gRPC](https://github.com/grpc). Each `Status` message contains # three pieces of data: error code, error message, and error details. # You can find out more about this error model and how to work with it in the # [API Design Guide](https://cloud.google.com/apis/design/errors). # Corresponds to the JSON property `error` # @return [Google::Apis::DocumentaiV1beta2::GoogleRpcStatus] attr_accessor :error # An IANA published MIME type (also referred to as media type). For more # information, see # https://www.iana.org/assignments/media-types/media-types.xhtml. # Corresponds to the JSON property `mimeType` # @return [String] attr_accessor :mime_type # Visual page layout for the Document. # Corresponds to the JSON property `pages` # @return [Array] attr_accessor :pages # For a large document, sharding may be performed to produce several # document shards. Each document shard contains this field to detail which # shard it is. # Corresponds to the JSON property `shardInfo` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentShardInfo] attr_accessor :shard_info # UTF-8 encoded text in reading order from the document. # Corresponds to the JSON property `text` # @return [String] attr_accessor :text # Styles for the Document.text. # Corresponds to the JSON property `textStyles` # @return [Array] attr_accessor :text_styles # A list of translations on Document.text. For document shards, # translations in this list may cross shard boundaries. # Corresponds to the JSON property `translations` # @return [Array] attr_accessor :translations # Currently supports Google Cloud Storage URI of the form # `gs://bucket_name/object_name`. Object versioning is not supported. # See [Google Cloud Storage Request # URIs](https://cloud.google.com/storage/docs/reference-uris) for more # info. # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content = args[:content] if args.key?(:content) @entities = args[:entities] if args.key?(:entities) @entity_relations = args[:entity_relations] if args.key?(:entity_relations) @error = args[:error] if args.key?(:error) @mime_type = args[:mime_type] if args.key?(:mime_type) @pages = args[:pages] if args.key?(:pages) @shard_info = args[:shard_info] if args.key?(:shard_info) @text = args[:text] if args.key?(:text) @text_styles = args[:text_styles] if args.key?(:text_styles) @translations = args[:translations] if args.key?(:translations) @uri = args[:uri] if args.key?(:uri) end end # A phrase in the text that is a known entity type, such as a person, an # organization, or location. class GoogleCloudDocumentaiV1beta1DocumentEntity include Google::Apis::Core::Hashable # Optional. Confidence of detected Schema entity. Range [0, 1]. # Corresponds to the JSON property `confidence` # @return [Float] attr_accessor :confidence # Deprecated. Use `id` field instead. # Corresponds to the JSON property `mentionId` # @return [String] attr_accessor :mention_id # Text value in the document e.g. `1600 Amphitheatre Pkwy`. # Corresponds to the JSON property `mentionText` # @return [String] attr_accessor :mention_text # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentTextAnchor] attr_accessor :text_anchor # Entity type from a schema e.g. `Address`. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @confidence = args[:confidence] if args.key?(:confidence) @mention_id = args[:mention_id] if args.key?(:mention_id) @mention_text = args[:mention_text] if args.key?(:mention_text) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) @type = args[:type] if args.key?(:type) end end # Relationship between Entities. class GoogleCloudDocumentaiV1beta1DocumentEntityRelation include Google::Apis::Core::Hashable # Object entity id. # Corresponds to the JSON property `objectId` # @return [String] attr_accessor :object_id_prop # Relationship description. # Corresponds to the JSON property `relation` # @return [String] attr_accessor :relation # Subject entity id. # Corresponds to the JSON property `subjectId` # @return [String] attr_accessor :subject_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @object_id_prop = args[:object_id_prop] if args.key?(:object_id_prop) @relation = args[:relation] if args.key?(:relation) @subject_id = args[:subject_id] if args.key?(:subject_id) end end # A page in a Document. class GoogleCloudDocumentaiV1beta1DocumentPage include Google::Apis::Core::Hashable # A list of visually detected text blocks on the page. # A block has a set of lines (collected into paragraphs) that have a common # line-spacing and orientation. # Corresponds to the JSON property `blocks` # @return [Array] attr_accessor :blocks # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Dimension for the page. # Corresponds to the JSON property `dimension` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageDimension] attr_accessor :dimension # A list of visually detected form fields on the page. # Corresponds to the JSON property `formFields` # @return [Array] attr_accessor :form_fields # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout # A list of visually detected text lines on the page. # A collection of tokens that a human would perceive as a line. # Corresponds to the JSON property `lines` # @return [Array] attr_accessor :lines # 1-based index for current Page in a parent Document. # Useful when a page is taken out of a Document for individual # processing. # Corresponds to the JSON property `pageNumber` # @return [Fixnum] attr_accessor :page_number # A list of visually detected text paragraphs on the page. # A collection of lines that a human would perceive as a paragraph. # Corresponds to the JSON property `paragraphs` # @return [Array] attr_accessor :paragraphs # A list of visually detected tables on the page. # Corresponds to the JSON property `tables` # @return [Array] attr_accessor :tables # A list of visually detected tokens on the page. # Corresponds to the JSON property `tokens` # @return [Array] attr_accessor :tokens # A list of detected non-text visual elements e.g. checkbox, # signature etc. on the page. # Corresponds to the JSON property `visualElements` # @return [Array] attr_accessor :visual_elements def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @blocks = args[:blocks] if args.key?(:blocks) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @dimension = args[:dimension] if args.key?(:dimension) @form_fields = args[:form_fields] if args.key?(:form_fields) @layout = args[:layout] if args.key?(:layout) @lines = args[:lines] if args.key?(:lines) @page_number = args[:page_number] if args.key?(:page_number) @paragraphs = args[:paragraphs] if args.key?(:paragraphs) @tables = args[:tables] if args.key?(:tables) @tokens = args[:tokens] if args.key?(:tokens) @visual_elements = args[:visual_elements] if args.key?(:visual_elements) end end # A block has a set of lines (collected into paragraphs) that have a # common line-spacing and orientation. class GoogleCloudDocumentaiV1beta1DocumentPageBlock include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # Detected language for a structural component. class GoogleCloudDocumentaiV1beta1DocumentPageDetectedLanguage include Google::Apis::Core::Hashable # Confidence of detected language. Range [0, 1]. # Corresponds to the JSON property `confidence` # @return [Float] attr_accessor :confidence # The BCP-47 language code, such as "en-US" or "sr-Latn". For more # information, see # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. # Corresponds to the JSON property `languageCode` # @return [String] attr_accessor :language_code def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @confidence = args[:confidence] if args.key?(:confidence) @language_code = args[:language_code] if args.key?(:language_code) end end # Dimension for the page. class GoogleCloudDocumentaiV1beta1DocumentPageDimension include Google::Apis::Core::Hashable # Page height. # Corresponds to the JSON property `height` # @return [Float] attr_accessor :height # Dimension unit. # Corresponds to the JSON property `unit` # @return [String] attr_accessor :unit # Page width. # Corresponds to the JSON property `width` # @return [Float] attr_accessor :width def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @height = args[:height] if args.key?(:height) @unit = args[:unit] if args.key?(:unit) @width = args[:width] if args.key?(:width) end end # A form field detected on the page. class GoogleCloudDocumentaiV1beta1DocumentPageFormField include Google::Apis::Core::Hashable # Visual element describing a layout unit on a page. # Corresponds to the JSON property `fieldName` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :field_name # Visual element describing a layout unit on a page. # Corresponds to the JSON property `fieldValue` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :field_value # A list of detected languages for name together with confidence. # Corresponds to the JSON property `nameDetectedLanguages` # @return [Array] attr_accessor :name_detected_languages # A list of detected languages for value together with confidence. # Corresponds to the JSON property `valueDetectedLanguages` # @return [Array] attr_accessor :value_detected_languages def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @field_name = args[:field_name] if args.key?(:field_name) @field_value = args[:field_value] if args.key?(:field_value) @name_detected_languages = args[:name_detected_languages] if args.key?(:name_detected_languages) @value_detected_languages = args[:value_detected_languages] if args.key?(:value_detected_languages) end end # Visual element describing a layout unit on a page. class GoogleCloudDocumentaiV1beta1DocumentPageLayout include Google::Apis::Core::Hashable # A bounding polygon for the detected image annotation. # Corresponds to the JSON property `boundingPoly` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1BoundingPoly] attr_accessor :bounding_poly # Confidence of the current Layout within context of the object this # layout is for. e.g. confidence can be for a single token, a table, # a visual element, etc. depending on context. Range [0, 1]. # Corresponds to the JSON property `confidence` # @return [Float] attr_accessor :confidence # Detected orientation for the Layout. # Corresponds to the JSON property `orientation` # @return [String] attr_accessor :orientation # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentTextAnchor] attr_accessor :text_anchor def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly) @confidence = args[:confidence] if args.key?(:confidence) @orientation = args[:orientation] if args.key?(:orientation) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) end end # A collection of tokens that a human would perceive as a line. # Does not cross column boundaries, can be horizontal, vertical, etc. class GoogleCloudDocumentaiV1beta1DocumentPageLine include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # A collection of lines that a human would perceive as a paragraph. class GoogleCloudDocumentaiV1beta1DocumentPageParagraph include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # A table representation similar to HTML table structure. class GoogleCloudDocumentaiV1beta1DocumentPageTable include Google::Apis::Core::Hashable # Body rows of the table. # Corresponds to the JSON property `bodyRows` # @return [Array] attr_accessor :body_rows # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Header rows of the table. # Corresponds to the JSON property `headerRows` # @return [Array] attr_accessor :header_rows # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @body_rows = args[:body_rows] if args.key?(:body_rows) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @header_rows = args[:header_rows] if args.key?(:header_rows) @layout = args[:layout] if args.key?(:layout) end end # A cell representation inside the table. class GoogleCloudDocumentaiV1beta1DocumentPageTableTableCell include Google::Apis::Core::Hashable # How many columns this cell spans. # Corresponds to the JSON property `colSpan` # @return [Fixnum] attr_accessor :col_span # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout # How many rows this cell spans. # Corresponds to the JSON property `rowSpan` # @return [Fixnum] attr_accessor :row_span def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @col_span = args[:col_span] if args.key?(:col_span) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) @row_span = args[:row_span] if args.key?(:row_span) end end # A row of table cells. class GoogleCloudDocumentaiV1beta1DocumentPageTableTableRow include Google::Apis::Core::Hashable # Cells that make up this row. # Corresponds to the JSON property `cells` # @return [Array] attr_accessor :cells def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cells = args[:cells] if args.key?(:cells) end end # A detected token. class GoogleCloudDocumentaiV1beta1DocumentPageToken include Google::Apis::Core::Hashable # Detected break at the end of a Token. # Corresponds to the JSON property `detectedBreak` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageTokenDetectedBreak] attr_accessor :detected_break # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_break = args[:detected_break] if args.key?(:detected_break) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # Detected break at the end of a Token. class GoogleCloudDocumentaiV1beta1DocumentPageTokenDetectedBreak include Google::Apis::Core::Hashable # Detected break type. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @type = args[:type] if args.key?(:type) end end # Detected non-text visual elements e.g. checkbox, signature etc. on the # page. class GoogleCloudDocumentaiV1beta1DocumentPageVisualElement include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentPageLayout] attr_accessor :layout # Type of the VisualElement. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) @type = args[:type] if args.key?(:type) end end # For a large document, sharding may be performed to produce several # document shards. Each document shard contains this field to detail which # shard it is. class GoogleCloudDocumentaiV1beta1DocumentShardInfo include Google::Apis::Core::Hashable # Total number of shards. # Corresponds to the JSON property `shardCount` # @return [Fixnum] attr_accessor :shard_count # The 0-based index of this shard. # Corresponds to the JSON property `shardIndex` # @return [Fixnum] attr_accessor :shard_index # The index of the first character in Document.text in the overall # document global text. # Corresponds to the JSON property `textOffset` # @return [Fixnum] attr_accessor :text_offset def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @shard_count = args[:shard_count] if args.key?(:shard_count) @shard_index = args[:shard_index] if args.key?(:shard_index) @text_offset = args[:text_offset] if args.key?(:text_offset) end end # Annotation for common text style attributes. This adheres to CSS # conventions as much as possible. class GoogleCloudDocumentaiV1beta1DocumentStyle include Google::Apis::Core::Hashable # Represents a color in the RGBA color space. This representation is designed # for simplicity of conversion to/from color representations in various # languages over compactness; for example, the fields of this representation # can be trivially provided to the constructor of "java.awt.Color" in Java; it # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" # method in iOS; and, with just a little work, it can be easily formatted into # a CSS "rgba()" string in JavaScript, as well. # Note: this proto does not carry information about the absolute color space # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color # space. # Note: when color equality needs to be decided, implementations, unless # documented otherwise, will treat two colors to be equal if all their red, # green, blue and alpha values each differ by at most 1e-5. # Example (Java): # import com.google.type.Color; # // ... # public static java.awt.Color fromProto(Color protocolor) ` # float alpha = protocolor.hasAlpha() # ? protocolor.getAlpha().getValue() # : 1.0; # return new java.awt.Color( # protocolor.getRed(), # protocolor.getGreen(), # protocolor.getBlue(), # alpha); # ` # public static Color toProto(java.awt.Color color) ` # float red = (float) color.getRed(); # float green = (float) color.getGreen(); # float blue = (float) color.getBlue(); # float denominator = 255.0; # Color.Builder resultBuilder = # Color # .newBuilder() # .setRed(red / denominator) # .setGreen(green / denominator) # .setBlue(blue / denominator); # int alpha = color.getAlpha(); # if (alpha != 255) ` # result.setAlpha( # FloatValue # .newBuilder() # .setValue(((float) alpha) / denominator) # .build()); # ` # return resultBuilder.build(); # ` # // ... # Example (iOS / Obj-C): # // ... # static UIColor* fromProto(Color* protocolor) ` # float red = [protocolor red]; # float green = [protocolor green]; # float blue = [protocolor blue]; # FloatValue* alpha_wrapper = [protocolor alpha]; # float alpha = 1.0; # if (alpha_wrapper != nil) ` # alpha = [alpha_wrapper value]; # ` # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; # ` # static Color* toProto(UIColor* color) ` # CGFloat red, green, blue, alpha; # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) ` # return nil; # ` # Color* result = [[Color alloc] init]; # [result setRed:red]; # [result setGreen:green]; # [result setBlue:blue]; # if (alpha <= 0.9999) ` # [result setAlpha:floatWrapperWithValue(alpha)]; # ` # [result autorelease]; # return result; # ` # // ... # Example (JavaScript): # // ... # var protoToCssColor = function(rgb_color) ` # var redFrac = rgb_color.red || 0.0; # var greenFrac = rgb_color.green || 0.0; # var blueFrac = rgb_color.blue || 0.0; # var red = Math.floor(redFrac * 255); # var green = Math.floor(greenFrac * 255); # var blue = Math.floor(blueFrac * 255); # if (!('alpha' in rgb_color)) ` # return rgbToCssColor_(red, green, blue); # ` # var alphaFrac = rgb_color.alpha.value || 0.0; # var rgbParams = [red, green, blue].join(','); # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); # `; # var rgbToCssColor_ = function(red, green, blue) ` # var rgbNumber = new Number((red << 16) | (green << 8) | blue); # var hexString = rgbNumber.toString(16); # var missingZeros = 6 - hexString.length; # var resultBuilder = ['#']; # for (var i = 0; i < missingZeros; i++) ` # resultBuilder.push('0'); # ` # resultBuilder.push(hexString); # return resultBuilder.join(''); # `; # // ... # Corresponds to the JSON property `backgroundColor` # @return [Google::Apis::DocumentaiV1beta2::GoogleTypeColor] attr_accessor :background_color # Represents a color in the RGBA color space. This representation is designed # for simplicity of conversion to/from color representations in various # languages over compactness; for example, the fields of this representation # can be trivially provided to the constructor of "java.awt.Color" in Java; it # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" # method in iOS; and, with just a little work, it can be easily formatted into # a CSS "rgba()" string in JavaScript, as well. # Note: this proto does not carry information about the absolute color space # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color # space. # Note: when color equality needs to be decided, implementations, unless # documented otherwise, will treat two colors to be equal if all their red, # green, blue and alpha values each differ by at most 1e-5. # Example (Java): # import com.google.type.Color; # // ... # public static java.awt.Color fromProto(Color protocolor) ` # float alpha = protocolor.hasAlpha() # ? protocolor.getAlpha().getValue() # : 1.0; # return new java.awt.Color( # protocolor.getRed(), # protocolor.getGreen(), # protocolor.getBlue(), # alpha); # ` # public static Color toProto(java.awt.Color color) ` # float red = (float) color.getRed(); # float green = (float) color.getGreen(); # float blue = (float) color.getBlue(); # float denominator = 255.0; # Color.Builder resultBuilder = # Color # .newBuilder() # .setRed(red / denominator) # .setGreen(green / denominator) # .setBlue(blue / denominator); # int alpha = color.getAlpha(); # if (alpha != 255) ` # result.setAlpha( # FloatValue # .newBuilder() # .setValue(((float) alpha) / denominator) # .build()); # ` # return resultBuilder.build(); # ` # // ... # Example (iOS / Obj-C): # // ... # static UIColor* fromProto(Color* protocolor) ` # float red = [protocolor red]; # float green = [protocolor green]; # float blue = [protocolor blue]; # FloatValue* alpha_wrapper = [protocolor alpha]; # float alpha = 1.0; # if (alpha_wrapper != nil) ` # alpha = [alpha_wrapper value]; # ` # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; # ` # static Color* toProto(UIColor* color) ` # CGFloat red, green, blue, alpha; # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) ` # return nil; # ` # Color* result = [[Color alloc] init]; # [result setRed:red]; # [result setGreen:green]; # [result setBlue:blue]; # if (alpha <= 0.9999) ` # [result setAlpha:floatWrapperWithValue(alpha)]; # ` # [result autorelease]; # return result; # ` # // ... # Example (JavaScript): # // ... # var protoToCssColor = function(rgb_color) ` # var redFrac = rgb_color.red || 0.0; # var greenFrac = rgb_color.green || 0.0; # var blueFrac = rgb_color.blue || 0.0; # var red = Math.floor(redFrac * 255); # var green = Math.floor(greenFrac * 255); # var blue = Math.floor(blueFrac * 255); # if (!('alpha' in rgb_color)) ` # return rgbToCssColor_(red, green, blue); # ` # var alphaFrac = rgb_color.alpha.value || 0.0; # var rgbParams = [red, green, blue].join(','); # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); # `; # var rgbToCssColor_ = function(red, green, blue) ` # var rgbNumber = new Number((red << 16) | (green << 8) | blue); # var hexString = rgbNumber.toString(16); # var missingZeros = 6 - hexString.length; # var resultBuilder = ['#']; # for (var i = 0; i < missingZeros; i++) ` # resultBuilder.push('0'); # ` # resultBuilder.push(hexString); # return resultBuilder.join(''); # `; # // ... # Corresponds to the JSON property `color` # @return [Google::Apis::DocumentaiV1beta2::GoogleTypeColor] attr_accessor :color # Font size with unit. # Corresponds to the JSON property `fontSize` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentStyleFontSize] attr_accessor :font_size # Font weight. Possible values are normal, bold, bolder, and lighter. # https://www.w3schools.com/cssref/pr_font_weight.asp # Corresponds to the JSON property `fontWeight` # @return [String] attr_accessor :font_weight # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentTextAnchor] attr_accessor :text_anchor # Text decoration. Follows CSS standard. # # https://www.w3schools.com/cssref/pr_text_text-decoration.asp # Corresponds to the JSON property `textDecoration` # @return [String] attr_accessor :text_decoration # Text style. Possible values are normal, italic, and oblique. # https://www.w3schools.com/cssref/pr_font_font-style.asp # Corresponds to the JSON property `textStyle` # @return [String] attr_accessor :text_style def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @background_color = args[:background_color] if args.key?(:background_color) @color = args[:color] if args.key?(:color) @font_size = args[:font_size] if args.key?(:font_size) @font_weight = args[:font_weight] if args.key?(:font_weight) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) @text_decoration = args[:text_decoration] if args.key?(:text_decoration) @text_style = args[:text_style] if args.key?(:text_style) end end # Font size with unit. class GoogleCloudDocumentaiV1beta1DocumentStyleFontSize include Google::Apis::Core::Hashable # Font size for the text. # Corresponds to the JSON property `size` # @return [Float] attr_accessor :size # Unit for the font size. Follows CSS naming (in, px, pt, etc.). # Corresponds to the JSON property `unit` # @return [String] attr_accessor :unit def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @size = args[:size] if args.key?(:size) @unit = args[:unit] if args.key?(:unit) end end # Text reference indexing into the Document.text. class GoogleCloudDocumentaiV1beta1DocumentTextAnchor include Google::Apis::Core::Hashable # The text segments from the Document.text. # Corresponds to the JSON property `textSegments` # @return [Array] attr_accessor :text_segments def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @text_segments = args[:text_segments] if args.key?(:text_segments) end end # A text segment in the Document.text. The indices may be out of bounds # which indicate that the text extends into another document shard for # large sharded documents. See ShardInfo.text_offset class GoogleCloudDocumentaiV1beta1DocumentTextAnchorTextSegment include Google::Apis::Core::Hashable # TextSegment half open end UTF-8 char index in the # Document.text. # Corresponds to the JSON property `endIndex` # @return [Fixnum] attr_accessor :end_index # TextSegment start UTF-8 char index in the Document.text. # Corresponds to the JSON property `startIndex` # @return [Fixnum] attr_accessor :start_index def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_index = args[:end_index] if args.key?(:end_index) @start_index = args[:start_index] if args.key?(:start_index) end end # A translation of the text segment. class GoogleCloudDocumentaiV1beta1DocumentTranslation include Google::Apis::Core::Hashable # The BCP-47 language code, such as "en-US" or "sr-Latn". For more # information, see # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. # Corresponds to the JSON property `languageCode` # @return [String] attr_accessor :language_code # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1DocumentTextAnchor] attr_accessor :text_anchor # Text translated into the target language. # Corresponds to the JSON property `translatedText` # @return [String] attr_accessor :translated_text def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @language_code = args[:language_code] if args.key?(:language_code) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) @translated_text = args[:translated_text] if args.key?(:translated_text) end end # The Google Cloud Storage location where the output file will be written to. class GoogleCloudDocumentaiV1beta1GcsDestination include Google::Apis::Core::Hashable # # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @uri = args[:uri] if args.key?(:uri) end end # The Google Cloud Storage location where the input file will be read from. class GoogleCloudDocumentaiV1beta1GcsSource include Google::Apis::Core::Hashable # # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @uri = args[:uri] if args.key?(:uri) end end # The desired input location and metadata. class GoogleCloudDocumentaiV1beta1InputConfig include Google::Apis::Core::Hashable # The Google Cloud Storage location where the input file will be read from. # Corresponds to the JSON property `gcsSource` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1GcsSource] attr_accessor :gcs_source # Required. Mimetype of the input. Current supported mimetypes are application/ # pdf, # image/tiff, and image/gif. # In addition, application/json type is supported for requests with # ProcessDocumentRequest.automl_params field set. The JSON file needs to # be in Document format. # Corresponds to the JSON property `mimeType` # @return [String] attr_accessor :mime_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @gcs_source = args[:gcs_source] if args.key?(:gcs_source) @mime_type = args[:mime_type] if args.key?(:mime_type) end end # A vertex represents a 2D point in the image. # NOTE: the normalized vertex coordinates are relative to the original image # and range from 0 to 1. class GoogleCloudDocumentaiV1beta1NormalizedVertex include Google::Apis::Core::Hashable # X coordinate. # Corresponds to the JSON property `x` # @return [Float] attr_accessor :x # Y coordinate. # Corresponds to the JSON property `y` # @return [Float] attr_accessor :y def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @x = args[:x] if args.key?(:x) @y = args[:y] if args.key?(:y) end end # Contains metadata for the BatchProcessDocuments operation. class GoogleCloudDocumentaiV1beta1OperationMetadata include Google::Apis::Core::Hashable # The creation time of the operation. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # The state of the current batch processing. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # A message providing more details about the current state of processing. # Corresponds to the JSON property `stateMessage` # @return [String] attr_accessor :state_message # The last update time of the operation. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_time = args[:create_time] if args.key?(:create_time) @state = args[:state] if args.key?(:state) @state_message = args[:state_message] if args.key?(:state_message) @update_time = args[:update_time] if args.key?(:update_time) end end # The desired output location and metadata. class GoogleCloudDocumentaiV1beta1OutputConfig include Google::Apis::Core::Hashable # The Google Cloud Storage location where the output file will be written to. # Corresponds to the JSON property `gcsDestination` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1GcsDestination] attr_accessor :gcs_destination # The max number of pages to include into each output Document shard JSON on # Google Cloud Storage. # The valid range is [1, 100]. If not specified, the default value is 20. # For example, for one pdf file with 100 pages, 100 parsed pages will be # produced. If `pages_per_shard` = 20, then 5 Document shard JSON files each # containing 20 parsed pages will be written under the prefix # OutputConfig.gcs_destination.uri and suffix pages-x-to-y.json where # x and y are 1-indexed page numbers. # Example GCS outputs with 157 pages and pages_per_shard = 50: # pages-001-to-050.json # pages-051-to-100.json # pages-101-to-150.json # pages-151-to-157.json # Corresponds to the JSON property `pagesPerShard` # @return [Fixnum] attr_accessor :pages_per_shard def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @gcs_destination = args[:gcs_destination] if args.key?(:gcs_destination) @pages_per_shard = args[:pages_per_shard] if args.key?(:pages_per_shard) end end # Response to a single document processing request. class GoogleCloudDocumentaiV1beta1ProcessDocumentResponse include Google::Apis::Core::Hashable # The desired input location and metadata. # Corresponds to the JSON property `inputConfig` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1InputConfig] attr_accessor :input_config # The desired output location and metadata. # Corresponds to the JSON property `outputConfig` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta1OutputConfig] attr_accessor :output_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @input_config = args[:input_config] if args.key?(:input_config) @output_config = args[:output_config] if args.key?(:output_config) end end # A vertex represents a 2D point in the image. # NOTE: the vertex coordinates are in the same scale as the original image. class GoogleCloudDocumentaiV1beta1Vertex include Google::Apis::Core::Hashable # X coordinate. # Corresponds to the JSON property `x` # @return [Fixnum] attr_accessor :x # Y coordinate. # Corresponds to the JSON property `y` # @return [Fixnum] attr_accessor :y def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @x = args[:x] if args.key?(:x) @y = args[:y] if args.key?(:y) end end # Parameters to control AutoML model prediction behavior. class GoogleCloudDocumentaiV1beta2AutoMlParams include Google::Apis::Core::Hashable # Resource name of the AutoML model. # Format: `projects/`project-id`/locations/`location-id`/models/`model-id``. # Corresponds to the JSON property `model` # @return [String] attr_accessor :model def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @model = args[:model] if args.key?(:model) end end # Request to batch process documents as an asynchronous operation. The output # is written to Cloud Storage as JSON in the [Document] format. class GoogleCloudDocumentaiV1beta2BatchProcessDocumentsRequest include Google::Apis::Core::Hashable # Required. Individual requests for each document. # Corresponds to the JSON property `requests` # @return [Array] attr_accessor :requests def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @requests = args[:requests] if args.key?(:requests) end end # Response to an batch document processing request. This is returned in # the LRO Operation after the operation is complete. class GoogleCloudDocumentaiV1beta2BatchProcessDocumentsResponse include Google::Apis::Core::Hashable # Responses for each individual document. # Corresponds to the JSON property `responses` # @return [Array] attr_accessor :responses def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @responses = args[:responses] if args.key?(:responses) end end # A bounding polygon for the detected image annotation. class GoogleCloudDocumentaiV1beta2BoundingPoly include Google::Apis::Core::Hashable # The bounding polygon normalized vertices. # Corresponds to the JSON property `normalizedVertices` # @return [Array] attr_accessor :normalized_vertices # The bounding polygon vertices. # Corresponds to the JSON property `vertices` # @return [Array] attr_accessor :vertices def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @normalized_vertices = args[:normalized_vertices] if args.key?(:normalized_vertices) @vertices = args[:vertices] if args.key?(:vertices) end end # Document represents the canonical document resource in Document Understanding # AI. # It is an interchange format that provides insights into documents and allows # for collaboration between users and Document Understanding AI to iterate and # optimize for quality. class GoogleCloudDocumentaiV1beta2Document include Google::Apis::Core::Hashable # Inline document content, represented as a stream of bytes. # Note: As with all `bytes` fields, protobuffers use a pure binary # representation, whereas JSON representations use base64. # Corresponds to the JSON property `content` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :content # A list of entities detected on Document.text. For document shards, # entities in this list may cross shard boundaries. # Corresponds to the JSON property `entities` # @return [Array] attr_accessor :entities # Relationship among Document.entities. # Corresponds to the JSON property `entityRelations` # @return [Array] attr_accessor :entity_relations # The `Status` type defines a logical error model that is suitable for # different programming environments, including REST APIs and RPC APIs. It is # used by [gRPC](https://github.com/grpc). Each `Status` message contains # three pieces of data: error code, error message, and error details. # You can find out more about this error model and how to work with it in the # [API Design Guide](https://cloud.google.com/apis/design/errors). # Corresponds to the JSON property `error` # @return [Google::Apis::DocumentaiV1beta2::GoogleRpcStatus] attr_accessor :error # Labels for this document. # Corresponds to the JSON property `labels` # @return [Array] attr_accessor :labels # An IANA published MIME type (also referred to as media type). For more # information, see # https://www.iana.org/assignments/media-types/media-types.xhtml. # Corresponds to the JSON property `mimeType` # @return [String] attr_accessor :mime_type # Visual page layout for the Document. # Corresponds to the JSON property `pages` # @return [Array] attr_accessor :pages # For a large document, sharding may be performed to produce several # document shards. Each document shard contains this field to detail which # shard it is. # Corresponds to the JSON property `shardInfo` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentShardInfo] attr_accessor :shard_info # UTF-8 encoded text in reading order from the document. # Corresponds to the JSON property `text` # @return [String] attr_accessor :text # Styles for the Document.text. # Corresponds to the JSON property `textStyles` # @return [Array] attr_accessor :text_styles # A list of translations on Document.text. For document shards, # translations in this list may cross shard boundaries. # Corresponds to the JSON property `translations` # @return [Array] attr_accessor :translations # Currently supports Google Cloud Storage URI of the form # `gs://bucket_name/object_name`. Object versioning is not supported. # See [Google Cloud Storage Request # URIs](https://cloud.google.com/storage/docs/reference-uris) for more # info. # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @content = args[:content] if args.key?(:content) @entities = args[:entities] if args.key?(:entities) @entity_relations = args[:entity_relations] if args.key?(:entity_relations) @error = args[:error] if args.key?(:error) @labels = args[:labels] if args.key?(:labels) @mime_type = args[:mime_type] if args.key?(:mime_type) @pages = args[:pages] if args.key?(:pages) @shard_info = args[:shard_info] if args.key?(:shard_info) @text = args[:text] if args.key?(:text) @text_styles = args[:text_styles] if args.key?(:text_styles) @translations = args[:translations] if args.key?(:translations) @uri = args[:uri] if args.key?(:uri) end end # A phrase in the text that is a known entity type, such as a person, an # organization, or location. class GoogleCloudDocumentaiV1beta2DocumentEntity include Google::Apis::Core::Hashable # Optional. Confidence of detected Schema entity. Range [0, 1]. # Corresponds to the JSON property `confidence` # @return [Float] attr_accessor :confidence # Deprecated. Use `id` field instead. # Corresponds to the JSON property `mentionId` # @return [String] attr_accessor :mention_id # Text value in the document e.g. `1600 Amphitheatre Pkwy`. # Corresponds to the JSON property `mentionText` # @return [String] attr_accessor :mention_text # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentTextAnchor] attr_accessor :text_anchor # Entity type from a schema e.g. `Address`. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @confidence = args[:confidence] if args.key?(:confidence) @mention_id = args[:mention_id] if args.key?(:mention_id) @mention_text = args[:mention_text] if args.key?(:mention_text) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) @type = args[:type] if args.key?(:type) end end # Relationship between Entities. class GoogleCloudDocumentaiV1beta2DocumentEntityRelation include Google::Apis::Core::Hashable # Object entity id. # Corresponds to the JSON property `objectId` # @return [String] attr_accessor :object_id_prop # Relationship description. # Corresponds to the JSON property `relation` # @return [String] attr_accessor :relation # Subject entity id. # Corresponds to the JSON property `subjectId` # @return [String] attr_accessor :subject_id def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @object_id_prop = args[:object_id_prop] if args.key?(:object_id_prop) @relation = args[:relation] if args.key?(:relation) @subject_id = args[:subject_id] if args.key?(:subject_id) end end # Label attaches schema information and/or other metadata to segments within # a Document. Multiple Labels on a single field can denote either # different labels, different instances of the same label created at # different times, or some combination of both. class GoogleCloudDocumentaiV1beta2DocumentLabel include Google::Apis::Core::Hashable # Label is generated AutoML model. This field stores the full resource # name of the AutoML model. # Format: # `projects/`project-id`/locations/`location-id`/models/`model-id`` # Corresponds to the JSON property `automlModel` # @return [String] attr_accessor :automl_model # Confidence score between 0 and 1 for label assignment. # Corresponds to the JSON property `confidence` # @return [Float] attr_accessor :confidence # Name of the label. # When the label is generated from AutoML Text Classification model, this # field represents the name of the category. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @automl_model = args[:automl_model] if args.key?(:automl_model) @confidence = args[:confidence] if args.key?(:confidence) @name = args[:name] if args.key?(:name) end end # A page in a Document. class GoogleCloudDocumentaiV1beta2DocumentPage include Google::Apis::Core::Hashable # A list of visually detected text blocks on the page. # A block has a set of lines (collected into paragraphs) that have a common # line-spacing and orientation. # Corresponds to the JSON property `blocks` # @return [Array] attr_accessor :blocks # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Dimension for the page. # Corresponds to the JSON property `dimension` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageDimension] attr_accessor :dimension # A list of visually detected form fields on the page. # Corresponds to the JSON property `formFields` # @return [Array] attr_accessor :form_fields # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout # A list of visually detected text lines on the page. # A collection of tokens that a human would perceive as a line. # Corresponds to the JSON property `lines` # @return [Array] attr_accessor :lines # 1-based index for current Page in a parent Document. # Useful when a page is taken out of a Document for individual # processing. # Corresponds to the JSON property `pageNumber` # @return [Fixnum] attr_accessor :page_number # A list of visually detected text paragraphs on the page. # A collection of lines that a human would perceive as a paragraph. # Corresponds to the JSON property `paragraphs` # @return [Array] attr_accessor :paragraphs # A list of visually detected tables on the page. # Corresponds to the JSON property `tables` # @return [Array] attr_accessor :tables # A list of visually detected tokens on the page. # Corresponds to the JSON property `tokens` # @return [Array] attr_accessor :tokens # A list of detected non-text visual elements e.g. checkbox, # signature etc. on the page. # Corresponds to the JSON property `visualElements` # @return [Array] attr_accessor :visual_elements def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @blocks = args[:blocks] if args.key?(:blocks) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @dimension = args[:dimension] if args.key?(:dimension) @form_fields = args[:form_fields] if args.key?(:form_fields) @layout = args[:layout] if args.key?(:layout) @lines = args[:lines] if args.key?(:lines) @page_number = args[:page_number] if args.key?(:page_number) @paragraphs = args[:paragraphs] if args.key?(:paragraphs) @tables = args[:tables] if args.key?(:tables) @tokens = args[:tokens] if args.key?(:tokens) @visual_elements = args[:visual_elements] if args.key?(:visual_elements) end end # A block has a set of lines (collected into paragraphs) that have a # common line-spacing and orientation. class GoogleCloudDocumentaiV1beta2DocumentPageBlock include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # Detected language for a structural component. class GoogleCloudDocumentaiV1beta2DocumentPageDetectedLanguage include Google::Apis::Core::Hashable # Confidence of detected language. Range [0, 1]. # Corresponds to the JSON property `confidence` # @return [Float] attr_accessor :confidence # The BCP-47 language code, such as "en-US" or "sr-Latn". For more # information, see # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. # Corresponds to the JSON property `languageCode` # @return [String] attr_accessor :language_code def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @confidence = args[:confidence] if args.key?(:confidence) @language_code = args[:language_code] if args.key?(:language_code) end end # Dimension for the page. class GoogleCloudDocumentaiV1beta2DocumentPageDimension include Google::Apis::Core::Hashable # Page height. # Corresponds to the JSON property `height` # @return [Float] attr_accessor :height # Dimension unit. # Corresponds to the JSON property `unit` # @return [String] attr_accessor :unit # Page width. # Corresponds to the JSON property `width` # @return [Float] attr_accessor :width def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @height = args[:height] if args.key?(:height) @unit = args[:unit] if args.key?(:unit) @width = args[:width] if args.key?(:width) end end # A form field detected on the page. class GoogleCloudDocumentaiV1beta2DocumentPageFormField include Google::Apis::Core::Hashable # Visual element describing a layout unit on a page. # Corresponds to the JSON property `fieldName` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :field_name # Visual element describing a layout unit on a page. # Corresponds to the JSON property `fieldValue` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :field_value # A list of detected languages for name together with confidence. # Corresponds to the JSON property `nameDetectedLanguages` # @return [Array] attr_accessor :name_detected_languages # A list of detected languages for value together with confidence. # Corresponds to the JSON property `valueDetectedLanguages` # @return [Array] attr_accessor :value_detected_languages # If the value is non-textual, this field represents the type. Current # valid values are: # - blank (this indicates the field_value is normal text) # - "unfilled_checkbox" # - "filled_checkbox" # Corresponds to the JSON property `valueType` # @return [String] attr_accessor :value_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @field_name = args[:field_name] if args.key?(:field_name) @field_value = args[:field_value] if args.key?(:field_value) @name_detected_languages = args[:name_detected_languages] if args.key?(:name_detected_languages) @value_detected_languages = args[:value_detected_languages] if args.key?(:value_detected_languages) @value_type = args[:value_type] if args.key?(:value_type) end end # Visual element describing a layout unit on a page. class GoogleCloudDocumentaiV1beta2DocumentPageLayout include Google::Apis::Core::Hashable # A bounding polygon for the detected image annotation. # Corresponds to the JSON property `boundingPoly` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2BoundingPoly] attr_accessor :bounding_poly # Confidence of the current Layout within context of the object this # layout is for. e.g. confidence can be for a single token, a table, # a visual element, etc. depending on context. Range [0, 1]. # Corresponds to the JSON property `confidence` # @return [Float] attr_accessor :confidence # Detected orientation for the Layout. # Corresponds to the JSON property `orientation` # @return [String] attr_accessor :orientation # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentTextAnchor] attr_accessor :text_anchor def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bounding_poly = args[:bounding_poly] if args.key?(:bounding_poly) @confidence = args[:confidence] if args.key?(:confidence) @orientation = args[:orientation] if args.key?(:orientation) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) end end # A collection of tokens that a human would perceive as a line. # Does not cross column boundaries, can be horizontal, vertical, etc. class GoogleCloudDocumentaiV1beta2DocumentPageLine include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # A collection of lines that a human would perceive as a paragraph. class GoogleCloudDocumentaiV1beta2DocumentPageParagraph include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # A table representation similar to HTML table structure. class GoogleCloudDocumentaiV1beta2DocumentPageTable include Google::Apis::Core::Hashable # Body rows of the table. # Corresponds to the JSON property `bodyRows` # @return [Array] attr_accessor :body_rows # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Header rows of the table. # Corresponds to the JSON property `headerRows` # @return [Array] attr_accessor :header_rows # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @body_rows = args[:body_rows] if args.key?(:body_rows) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @header_rows = args[:header_rows] if args.key?(:header_rows) @layout = args[:layout] if args.key?(:layout) end end # A cell representation inside the table. class GoogleCloudDocumentaiV1beta2DocumentPageTableTableCell include Google::Apis::Core::Hashable # How many columns this cell spans. # Corresponds to the JSON property `colSpan` # @return [Fixnum] attr_accessor :col_span # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout # How many rows this cell spans. # Corresponds to the JSON property `rowSpan` # @return [Fixnum] attr_accessor :row_span def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @col_span = args[:col_span] if args.key?(:col_span) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) @row_span = args[:row_span] if args.key?(:row_span) end end # A row of table cells. class GoogleCloudDocumentaiV1beta2DocumentPageTableTableRow include Google::Apis::Core::Hashable # Cells that make up this row. # Corresponds to the JSON property `cells` # @return [Array] attr_accessor :cells def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @cells = args[:cells] if args.key?(:cells) end end # A detected token. class GoogleCloudDocumentaiV1beta2DocumentPageToken include Google::Apis::Core::Hashable # Detected break at the end of a Token. # Corresponds to the JSON property `detectedBreak` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageTokenDetectedBreak] attr_accessor :detected_break # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_break = args[:detected_break] if args.key?(:detected_break) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) end end # Detected break at the end of a Token. class GoogleCloudDocumentaiV1beta2DocumentPageTokenDetectedBreak include Google::Apis::Core::Hashable # Detected break type. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @type = args[:type] if args.key?(:type) end end # Detected non-text visual elements e.g. checkbox, signature etc. on the # page. class GoogleCloudDocumentaiV1beta2DocumentPageVisualElement include Google::Apis::Core::Hashable # A list of detected languages together with confidence. # Corresponds to the JSON property `detectedLanguages` # @return [Array] attr_accessor :detected_languages # Visual element describing a layout unit on a page. # Corresponds to the JSON property `layout` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentPageLayout] attr_accessor :layout # Type of the VisualElement. # Corresponds to the JSON property `type` # @return [String] attr_accessor :type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @detected_languages = args[:detected_languages] if args.key?(:detected_languages) @layout = args[:layout] if args.key?(:layout) @type = args[:type] if args.key?(:type) end end # For a large document, sharding may be performed to produce several # document shards. Each document shard contains this field to detail which # shard it is. class GoogleCloudDocumentaiV1beta2DocumentShardInfo include Google::Apis::Core::Hashable # Total number of shards. # Corresponds to the JSON property `shardCount` # @return [Fixnum] attr_accessor :shard_count # The 0-based index of this shard. # Corresponds to the JSON property `shardIndex` # @return [Fixnum] attr_accessor :shard_index # The index of the first character in Document.text in the overall # document global text. # Corresponds to the JSON property `textOffset` # @return [Fixnum] attr_accessor :text_offset def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @shard_count = args[:shard_count] if args.key?(:shard_count) @shard_index = args[:shard_index] if args.key?(:shard_index) @text_offset = args[:text_offset] if args.key?(:text_offset) end end # Annotation for common text style attributes. This adheres to CSS # conventions as much as possible. class GoogleCloudDocumentaiV1beta2DocumentStyle include Google::Apis::Core::Hashable # Represents a color in the RGBA color space. This representation is designed # for simplicity of conversion to/from color representations in various # languages over compactness; for example, the fields of this representation # can be trivially provided to the constructor of "java.awt.Color" in Java; it # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" # method in iOS; and, with just a little work, it can be easily formatted into # a CSS "rgba()" string in JavaScript, as well. # Note: this proto does not carry information about the absolute color space # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color # space. # Note: when color equality needs to be decided, implementations, unless # documented otherwise, will treat two colors to be equal if all their red, # green, blue and alpha values each differ by at most 1e-5. # Example (Java): # import com.google.type.Color; # // ... # public static java.awt.Color fromProto(Color protocolor) ` # float alpha = protocolor.hasAlpha() # ? protocolor.getAlpha().getValue() # : 1.0; # return new java.awt.Color( # protocolor.getRed(), # protocolor.getGreen(), # protocolor.getBlue(), # alpha); # ` # public static Color toProto(java.awt.Color color) ` # float red = (float) color.getRed(); # float green = (float) color.getGreen(); # float blue = (float) color.getBlue(); # float denominator = 255.0; # Color.Builder resultBuilder = # Color # .newBuilder() # .setRed(red / denominator) # .setGreen(green / denominator) # .setBlue(blue / denominator); # int alpha = color.getAlpha(); # if (alpha != 255) ` # result.setAlpha( # FloatValue # .newBuilder() # .setValue(((float) alpha) / denominator) # .build()); # ` # return resultBuilder.build(); # ` # // ... # Example (iOS / Obj-C): # // ... # static UIColor* fromProto(Color* protocolor) ` # float red = [protocolor red]; # float green = [protocolor green]; # float blue = [protocolor blue]; # FloatValue* alpha_wrapper = [protocolor alpha]; # float alpha = 1.0; # if (alpha_wrapper != nil) ` # alpha = [alpha_wrapper value]; # ` # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; # ` # static Color* toProto(UIColor* color) ` # CGFloat red, green, blue, alpha; # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) ` # return nil; # ` # Color* result = [[Color alloc] init]; # [result setRed:red]; # [result setGreen:green]; # [result setBlue:blue]; # if (alpha <= 0.9999) ` # [result setAlpha:floatWrapperWithValue(alpha)]; # ` # [result autorelease]; # return result; # ` # // ... # Example (JavaScript): # // ... # var protoToCssColor = function(rgb_color) ` # var redFrac = rgb_color.red || 0.0; # var greenFrac = rgb_color.green || 0.0; # var blueFrac = rgb_color.blue || 0.0; # var red = Math.floor(redFrac * 255); # var green = Math.floor(greenFrac * 255); # var blue = Math.floor(blueFrac * 255); # if (!('alpha' in rgb_color)) ` # return rgbToCssColor_(red, green, blue); # ` # var alphaFrac = rgb_color.alpha.value || 0.0; # var rgbParams = [red, green, blue].join(','); # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); # `; # var rgbToCssColor_ = function(red, green, blue) ` # var rgbNumber = new Number((red << 16) | (green << 8) | blue); # var hexString = rgbNumber.toString(16); # var missingZeros = 6 - hexString.length; # var resultBuilder = ['#']; # for (var i = 0; i < missingZeros; i++) ` # resultBuilder.push('0'); # ` # resultBuilder.push(hexString); # return resultBuilder.join(''); # `; # // ... # Corresponds to the JSON property `backgroundColor` # @return [Google::Apis::DocumentaiV1beta2::GoogleTypeColor] attr_accessor :background_color # Represents a color in the RGBA color space. This representation is designed # for simplicity of conversion to/from color representations in various # languages over compactness; for example, the fields of this representation # can be trivially provided to the constructor of "java.awt.Color" in Java; it # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" # method in iOS; and, with just a little work, it can be easily formatted into # a CSS "rgba()" string in JavaScript, as well. # Note: this proto does not carry information about the absolute color space # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color # space. # Note: when color equality needs to be decided, implementations, unless # documented otherwise, will treat two colors to be equal if all their red, # green, blue and alpha values each differ by at most 1e-5. # Example (Java): # import com.google.type.Color; # // ... # public static java.awt.Color fromProto(Color protocolor) ` # float alpha = protocolor.hasAlpha() # ? protocolor.getAlpha().getValue() # : 1.0; # return new java.awt.Color( # protocolor.getRed(), # protocolor.getGreen(), # protocolor.getBlue(), # alpha); # ` # public static Color toProto(java.awt.Color color) ` # float red = (float) color.getRed(); # float green = (float) color.getGreen(); # float blue = (float) color.getBlue(); # float denominator = 255.0; # Color.Builder resultBuilder = # Color # .newBuilder() # .setRed(red / denominator) # .setGreen(green / denominator) # .setBlue(blue / denominator); # int alpha = color.getAlpha(); # if (alpha != 255) ` # result.setAlpha( # FloatValue # .newBuilder() # .setValue(((float) alpha) / denominator) # .build()); # ` # return resultBuilder.build(); # ` # // ... # Example (iOS / Obj-C): # // ... # static UIColor* fromProto(Color* protocolor) ` # float red = [protocolor red]; # float green = [protocolor green]; # float blue = [protocolor blue]; # FloatValue* alpha_wrapper = [protocolor alpha]; # float alpha = 1.0; # if (alpha_wrapper != nil) ` # alpha = [alpha_wrapper value]; # ` # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; # ` # static Color* toProto(UIColor* color) ` # CGFloat red, green, blue, alpha; # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) ` # return nil; # ` # Color* result = [[Color alloc] init]; # [result setRed:red]; # [result setGreen:green]; # [result setBlue:blue]; # if (alpha <= 0.9999) ` # [result setAlpha:floatWrapperWithValue(alpha)]; # ` # [result autorelease]; # return result; # ` # // ... # Example (JavaScript): # // ... # var protoToCssColor = function(rgb_color) ` # var redFrac = rgb_color.red || 0.0; # var greenFrac = rgb_color.green || 0.0; # var blueFrac = rgb_color.blue || 0.0; # var red = Math.floor(redFrac * 255); # var green = Math.floor(greenFrac * 255); # var blue = Math.floor(blueFrac * 255); # if (!('alpha' in rgb_color)) ` # return rgbToCssColor_(red, green, blue); # ` # var alphaFrac = rgb_color.alpha.value || 0.0; # var rgbParams = [red, green, blue].join(','); # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); # `; # var rgbToCssColor_ = function(red, green, blue) ` # var rgbNumber = new Number((red << 16) | (green << 8) | blue); # var hexString = rgbNumber.toString(16); # var missingZeros = 6 - hexString.length; # var resultBuilder = ['#']; # for (var i = 0; i < missingZeros; i++) ` # resultBuilder.push('0'); # ` # resultBuilder.push(hexString); # return resultBuilder.join(''); # `; # // ... # Corresponds to the JSON property `color` # @return [Google::Apis::DocumentaiV1beta2::GoogleTypeColor] attr_accessor :color # Font size with unit. # Corresponds to the JSON property `fontSize` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentStyleFontSize] attr_accessor :font_size # Font weight. Possible values are normal, bold, bolder, and lighter. # https://www.w3schools.com/cssref/pr_font_weight.asp # Corresponds to the JSON property `fontWeight` # @return [String] attr_accessor :font_weight # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentTextAnchor] attr_accessor :text_anchor # Text decoration. Follows CSS standard. # # https://www.w3schools.com/cssref/pr_text_text-decoration.asp # Corresponds to the JSON property `textDecoration` # @return [String] attr_accessor :text_decoration # Text style. Possible values are normal, italic, and oblique. # https://www.w3schools.com/cssref/pr_font_font-style.asp # Corresponds to the JSON property `textStyle` # @return [String] attr_accessor :text_style def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @background_color = args[:background_color] if args.key?(:background_color) @color = args[:color] if args.key?(:color) @font_size = args[:font_size] if args.key?(:font_size) @font_weight = args[:font_weight] if args.key?(:font_weight) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) @text_decoration = args[:text_decoration] if args.key?(:text_decoration) @text_style = args[:text_style] if args.key?(:text_style) end end # Font size with unit. class GoogleCloudDocumentaiV1beta2DocumentStyleFontSize include Google::Apis::Core::Hashable # Font size for the text. # Corresponds to the JSON property `size` # @return [Float] attr_accessor :size # Unit for the font size. Follows CSS naming (in, px, pt, etc.). # Corresponds to the JSON property `unit` # @return [String] attr_accessor :unit def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @size = args[:size] if args.key?(:size) @unit = args[:unit] if args.key?(:unit) end end # Text reference indexing into the Document.text. class GoogleCloudDocumentaiV1beta2DocumentTextAnchor include Google::Apis::Core::Hashable # The text segments from the Document.text. # Corresponds to the JSON property `textSegments` # @return [Array] attr_accessor :text_segments def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @text_segments = args[:text_segments] if args.key?(:text_segments) end end # A text segment in the Document.text. The indices may be out of bounds # which indicate that the text extends into another document shard for # large sharded documents. See ShardInfo.text_offset class GoogleCloudDocumentaiV1beta2DocumentTextAnchorTextSegment include Google::Apis::Core::Hashable # TextSegment half open end UTF-8 char index in the # Document.text. # Corresponds to the JSON property `endIndex` # @return [Fixnum] attr_accessor :end_index # TextSegment start UTF-8 char index in the Document.text. # Corresponds to the JSON property `startIndex` # @return [Fixnum] attr_accessor :start_index def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @end_index = args[:end_index] if args.key?(:end_index) @start_index = args[:start_index] if args.key?(:start_index) end end # A translation of the text segment. class GoogleCloudDocumentaiV1beta2DocumentTranslation include Google::Apis::Core::Hashable # The BCP-47 language code, such as "en-US" or "sr-Latn". For more # information, see # http://www.unicode.org/reports/tr35/#Unicode_locale_identifier. # Corresponds to the JSON property `languageCode` # @return [String] attr_accessor :language_code # Text reference indexing into the Document.text. # Corresponds to the JSON property `textAnchor` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2DocumentTextAnchor] attr_accessor :text_anchor # Text translated into the target language. # Corresponds to the JSON property `translatedText` # @return [String] attr_accessor :translated_text def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @language_code = args[:language_code] if args.key?(:language_code) @text_anchor = args[:text_anchor] if args.key?(:text_anchor) @translated_text = args[:translated_text] if args.key?(:translated_text) end end # Parameters to control entity extraction behavior. class GoogleCloudDocumentaiV1beta2EntityExtractionParams include Google::Apis::Core::Hashable # Whether to enable entity extraction. # Corresponds to the JSON property `enabled` # @return [Boolean] attr_accessor :enabled alias_method :enabled?, :enabled # Model version of the entity extraction. Default is # "builtin/stable". Specify "builtin/latest" for the latest model. # Corresponds to the JSON property `modelVersion` # @return [String] attr_accessor :model_version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enabled = args[:enabled] if args.key?(:enabled) @model_version = args[:model_version] if args.key?(:model_version) end end # Parameters to control form extraction behavior. class GoogleCloudDocumentaiV1beta2FormExtractionParams include Google::Apis::Core::Hashable # Whether to enable form extraction. # Corresponds to the JSON property `enabled` # @return [Boolean] attr_accessor :enabled alias_method :enabled?, :enabled # Reserved for future use. # Corresponds to the JSON property `keyValuePairHints` # @return [Array] attr_accessor :key_value_pair_hints # Model version of the form extraction system. Default is # "builtin/stable". Specify "builtin/latest" for the latest model. # For custom form models, specify: “custom/`model_name`". Model name # format is "bucket_name/path/to/modeldir" corresponding to # "gs://bucket_name/path/to/modeldir" where annotated examples are stored. # Corresponds to the JSON property `modelVersion` # @return [String] attr_accessor :model_version def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enabled = args[:enabled] if args.key?(:enabled) @key_value_pair_hints = args[:key_value_pair_hints] if args.key?(:key_value_pair_hints) @model_version = args[:model_version] if args.key?(:model_version) end end # The Google Cloud Storage location where the output file will be written to. class GoogleCloudDocumentaiV1beta2GcsDestination include Google::Apis::Core::Hashable # # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @uri = args[:uri] if args.key?(:uri) end end # The Google Cloud Storage location where the input file will be read from. class GoogleCloudDocumentaiV1beta2GcsSource include Google::Apis::Core::Hashable # # Corresponds to the JSON property `uri` # @return [String] attr_accessor :uri def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @uri = args[:uri] if args.key?(:uri) end end # The desired input location and metadata. class GoogleCloudDocumentaiV1beta2InputConfig include Google::Apis::Core::Hashable # Content in bytes, represented as a stream of bytes. # Note: As with all `bytes` fields, proto buffer messages use a pure binary # representation, whereas JSON representations use base64. # This field only works for synchronous ProcessDocument method. # Corresponds to the JSON property `contents` # NOTE: Values are automatically base64 encoded/decoded in the client library. # @return [String] attr_accessor :contents # The Google Cloud Storage location where the input file will be read from. # Corresponds to the JSON property `gcsSource` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2GcsSource] attr_accessor :gcs_source # Required. Mimetype of the input. Current supported mimetypes are application/ # pdf, # image/tiff, and image/gif. # In addition, application/json type is supported for requests with # ProcessDocumentRequest.automl_params field set. The JSON file needs to # be in Document format. # Corresponds to the JSON property `mimeType` # @return [String] attr_accessor :mime_type def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @contents = args[:contents] if args.key?(:contents) @gcs_source = args[:gcs_source] if args.key?(:gcs_source) @mime_type = args[:mime_type] if args.key?(:mime_type) end end # Reserved for future use. class GoogleCloudDocumentaiV1beta2KeyValuePairHint include Google::Apis::Core::Hashable # The key text for the hint. # Corresponds to the JSON property `key` # @return [String] attr_accessor :key # Type of the value. This is case-insensitive, and could be one of: # ADDRESS, LOCATION, ORGANIZATION, PERSON, PHONE_NUMBER, # ID, NUMBER, EMAIL, PRICE, TERMS, DATE, NAME. Types not in this list will # be ignored. # Corresponds to the JSON property `valueTypes` # @return [Array] attr_accessor :value_types def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @key = args[:key] if args.key?(:key) @value_types = args[:value_types] if args.key?(:value_types) end end # A vertex represents a 2D point in the image. # NOTE: the normalized vertex coordinates are relative to the original image # and range from 0 to 1. class GoogleCloudDocumentaiV1beta2NormalizedVertex include Google::Apis::Core::Hashable # X coordinate. # Corresponds to the JSON property `x` # @return [Float] attr_accessor :x # Y coordinate. # Corresponds to the JSON property `y` # @return [Float] attr_accessor :y def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @x = args[:x] if args.key?(:x) @y = args[:y] if args.key?(:y) end end # Parameters to control Optical Character Recognition (OCR) behavior. class GoogleCloudDocumentaiV1beta2OcrParams include Google::Apis::Core::Hashable # List of languages to use for OCR. In most cases, an empty value # yields the best results since it enables automatic language detection. For # languages based on the Latin alphabet, setting `language_hints` is not # needed. In rare cases, when the language of the text in the image is known, # setting a hint will help get better results (although it will be a # significant hindrance if the hint is wrong). Document processing returns an # error if one or more of the specified languages is not one of the # supported languages. # Corresponds to the JSON property `languageHints` # @return [Array] attr_accessor :language_hints def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @language_hints = args[:language_hints] if args.key?(:language_hints) end end # Contains metadata for the BatchProcessDocuments operation. class GoogleCloudDocumentaiV1beta2OperationMetadata include Google::Apis::Core::Hashable # The creation time of the operation. # Corresponds to the JSON property `createTime` # @return [String] attr_accessor :create_time # The state of the current batch processing. # Corresponds to the JSON property `state` # @return [String] attr_accessor :state # A message providing more details about the current state of processing. # Corresponds to the JSON property `stateMessage` # @return [String] attr_accessor :state_message # The last update time of the operation. # Corresponds to the JSON property `updateTime` # @return [String] attr_accessor :update_time def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @create_time = args[:create_time] if args.key?(:create_time) @state = args[:state] if args.key?(:state) @state_message = args[:state_message] if args.key?(:state_message) @update_time = args[:update_time] if args.key?(:update_time) end end # The desired output location and metadata. class GoogleCloudDocumentaiV1beta2OutputConfig include Google::Apis::Core::Hashable # The Google Cloud Storage location where the output file will be written to. # Corresponds to the JSON property `gcsDestination` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2GcsDestination] attr_accessor :gcs_destination # The max number of pages to include into each output Document shard JSON on # Google Cloud Storage. # The valid range is [1, 100]. If not specified, the default value is 20. # For example, for one pdf file with 100 pages, 100 parsed pages will be # produced. If `pages_per_shard` = 20, then 5 Document shard JSON files each # containing 20 parsed pages will be written under the prefix # OutputConfig.gcs_destination.uri and suffix pages-x-to-y.json where # x and y are 1-indexed page numbers. # Example GCS outputs with 157 pages and pages_per_shard = 50: # pages-001-to-050.json # pages-051-to-100.json # pages-101-to-150.json # pages-151-to-157.json # Corresponds to the JSON property `pagesPerShard` # @return [Fixnum] attr_accessor :pages_per_shard def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @gcs_destination = args[:gcs_destination] if args.key?(:gcs_destination) @pages_per_shard = args[:pages_per_shard] if args.key?(:pages_per_shard) end end # Request to process one document. class GoogleCloudDocumentaiV1beta2ProcessDocumentRequest include Google::Apis::Core::Hashable # Parameters to control AutoML model prediction behavior. # Corresponds to the JSON property `automlParams` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2AutoMlParams] attr_accessor :automl_params # Specifies a known document type for deeper structure detection. Valid # values are currently "general" and "invoice". If not provided, "general"\ # is used as default. If any other value is given, the request is rejected. # Corresponds to the JSON property `documentType` # @return [String] attr_accessor :document_type # Parameters to control entity extraction behavior. # Corresponds to the JSON property `entityExtractionParams` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2EntityExtractionParams] attr_accessor :entity_extraction_params # Parameters to control form extraction behavior. # Corresponds to the JSON property `formExtractionParams` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2FormExtractionParams] attr_accessor :form_extraction_params # The desired input location and metadata. # Corresponds to the JSON property `inputConfig` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2InputConfig] attr_accessor :input_config # Parameters to control Optical Character Recognition (OCR) behavior. # Corresponds to the JSON property `ocrParams` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2OcrParams] attr_accessor :ocr_params # The desired output location and metadata. # Corresponds to the JSON property `outputConfig` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2OutputConfig] attr_accessor :output_config # Target project and location to make a call. # Format: `projects/`project-id`/locations/`location-id``. # If no location is specified, a region will be chosen automatically. # This field is only populated when used in ProcessDocument method. # Corresponds to the JSON property `parent` # @return [String] attr_accessor :parent # Parameters to control table extraction behavior. # Corresponds to the JSON property `tableExtractionParams` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2TableExtractionParams] attr_accessor :table_extraction_params def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @automl_params = args[:automl_params] if args.key?(:automl_params) @document_type = args[:document_type] if args.key?(:document_type) @entity_extraction_params = args[:entity_extraction_params] if args.key?(:entity_extraction_params) @form_extraction_params = args[:form_extraction_params] if args.key?(:form_extraction_params) @input_config = args[:input_config] if args.key?(:input_config) @ocr_params = args[:ocr_params] if args.key?(:ocr_params) @output_config = args[:output_config] if args.key?(:output_config) @parent = args[:parent] if args.key?(:parent) @table_extraction_params = args[:table_extraction_params] if args.key?(:table_extraction_params) end end # Response to a single document processing request. class GoogleCloudDocumentaiV1beta2ProcessDocumentResponse include Google::Apis::Core::Hashable # The desired input location and metadata. # Corresponds to the JSON property `inputConfig` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2InputConfig] attr_accessor :input_config # The desired output location and metadata. # Corresponds to the JSON property `outputConfig` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2OutputConfig] attr_accessor :output_config def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @input_config = args[:input_config] if args.key?(:input_config) @output_config = args[:output_config] if args.key?(:output_config) end end # A hint for a table bounding box on the page for table parsing. class GoogleCloudDocumentaiV1beta2TableBoundHint include Google::Apis::Core::Hashable # A bounding polygon for the detected image annotation. # Corresponds to the JSON property `boundingBox` # @return [Google::Apis::DocumentaiV1beta2::GoogleCloudDocumentaiV1beta2BoundingPoly] attr_accessor :bounding_box # Optional. Page number for multi-paged inputs this hint applies to. If not # provided, this hint will apply to all pages by default. This value is # 1-based. # Corresponds to the JSON property `pageNumber` # @return [Fixnum] attr_accessor :page_number def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @bounding_box = args[:bounding_box] if args.key?(:bounding_box) @page_number = args[:page_number] if args.key?(:page_number) end end # Parameters to control table extraction behavior. class GoogleCloudDocumentaiV1beta2TableExtractionParams include Google::Apis::Core::Hashable # Whether to enable table extraction. # Corresponds to the JSON property `enabled` # @return [Boolean] attr_accessor :enabled alias_method :enabled?, :enabled # Optional. Reserved for future use. # Corresponds to the JSON property `headerHints` # @return [Array] attr_accessor :header_hints # Model version of the table extraction system. Default is "builtin/stable". # Specify "builtin/latest" for the latest model. # Corresponds to the JSON property `modelVersion` # @return [String] attr_accessor :model_version # Optional. Table bounding box hints that can be provided to complex cases # which our algorithm cannot locate the table(s) in. # Corresponds to the JSON property `tableBoundHints` # @return [Array] attr_accessor :table_bound_hints def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @enabled = args[:enabled] if args.key?(:enabled) @header_hints = args[:header_hints] if args.key?(:header_hints) @model_version = args[:model_version] if args.key?(:model_version) @table_bound_hints = args[:table_bound_hints] if args.key?(:table_bound_hints) end end # A vertex represents a 2D point in the image. # NOTE: the vertex coordinates are in the same scale as the original image. class GoogleCloudDocumentaiV1beta2Vertex include Google::Apis::Core::Hashable # X coordinate. # Corresponds to the JSON property `x` # @return [Fixnum] attr_accessor :x # Y coordinate. # Corresponds to the JSON property `y` # @return [Fixnum] attr_accessor :y def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @x = args[:x] if args.key?(:x) @y = args[:y] if args.key?(:y) end end # This resource represents a long-running operation that is the result of a # network API call. class GoogleLongrunningOperation include Google::Apis::Core::Hashable # If the value is `false`, it means the operation is still in progress. # If `true`, the operation is completed, and either `error` or `response` is # available. # Corresponds to the JSON property `done` # @return [Boolean] attr_accessor :done alias_method :done?, :done # The `Status` type defines a logical error model that is suitable for # different programming environments, including REST APIs and RPC APIs. It is # used by [gRPC](https://github.com/grpc). Each `Status` message contains # three pieces of data: error code, error message, and error details. # You can find out more about this error model and how to work with it in the # [API Design Guide](https://cloud.google.com/apis/design/errors). # Corresponds to the JSON property `error` # @return [Google::Apis::DocumentaiV1beta2::GoogleRpcStatus] attr_accessor :error # Service-specific metadata associated with the operation. It typically # contains progress information and common metadata such as create time. # Some services might not provide such metadata. Any method that returns a # long-running operation should document the metadata type, if any. # Corresponds to the JSON property `metadata` # @return [Hash] attr_accessor :metadata # The server-assigned name, which is only unique within the same service that # originally returns it. If you use the default HTTP mapping, the # `name` should be a resource name ending with `operations/`unique_id``. # Corresponds to the JSON property `name` # @return [String] attr_accessor :name # The normal response of the operation in case of success. If the original # method returns no data on success, such as `Delete`, the response is # `google.protobuf.Empty`. If the original method is standard # `Get`/`Create`/`Update`, the response should be the resource. For other # methods, the response should have the type `XxxResponse`, where `Xxx` # is the original method name. For example, if the original method name # is `TakeSnapshot()`, the inferred response type is # `TakeSnapshotResponse`. # Corresponds to the JSON property `response` # @return [Hash] attr_accessor :response def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @done = args[:done] if args.key?(:done) @error = args[:error] if args.key?(:error) @metadata = args[:metadata] if args.key?(:metadata) @name = args[:name] if args.key?(:name) @response = args[:response] if args.key?(:response) end end # The `Status` type defines a logical error model that is suitable for # different programming environments, including REST APIs and RPC APIs. It is # used by [gRPC](https://github.com/grpc). Each `Status` message contains # three pieces of data: error code, error message, and error details. # You can find out more about this error model and how to work with it in the # [API Design Guide](https://cloud.google.com/apis/design/errors). class GoogleRpcStatus include Google::Apis::Core::Hashable # The status code, which should be an enum value of google.rpc.Code. # Corresponds to the JSON property `code` # @return [Fixnum] attr_accessor :code # A list of messages that carry the error details. There is a common set of # message types for APIs to use. # Corresponds to the JSON property `details` # @return [Array>] attr_accessor :details # A developer-facing error message, which should be in English. Any # user-facing error message should be localized and sent in the # google.rpc.Status.details field, or localized by the client. # Corresponds to the JSON property `message` # @return [String] attr_accessor :message def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @code = args[:code] if args.key?(:code) @details = args[:details] if args.key?(:details) @message = args[:message] if args.key?(:message) end end # Represents a color in the RGBA color space. This representation is designed # for simplicity of conversion to/from color representations in various # languages over compactness; for example, the fields of this representation # can be trivially provided to the constructor of "java.awt.Color" in Java; it # can also be trivially provided to UIColor's "+colorWithRed:green:blue:alpha" # method in iOS; and, with just a little work, it can be easily formatted into # a CSS "rgba()" string in JavaScript, as well. # Note: this proto does not carry information about the absolute color space # that should be used to interpret the RGB value (e.g. sRGB, Adobe RGB, # DCI-P3, BT.2020, etc.). By default, applications SHOULD assume the sRGB color # space. # Note: when color equality needs to be decided, implementations, unless # documented otherwise, will treat two colors to be equal if all their red, # green, blue and alpha values each differ by at most 1e-5. # Example (Java): # import com.google.type.Color; # // ... # public static java.awt.Color fromProto(Color protocolor) ` # float alpha = protocolor.hasAlpha() # ? protocolor.getAlpha().getValue() # : 1.0; # return new java.awt.Color( # protocolor.getRed(), # protocolor.getGreen(), # protocolor.getBlue(), # alpha); # ` # public static Color toProto(java.awt.Color color) ` # float red = (float) color.getRed(); # float green = (float) color.getGreen(); # float blue = (float) color.getBlue(); # float denominator = 255.0; # Color.Builder resultBuilder = # Color # .newBuilder() # .setRed(red / denominator) # .setGreen(green / denominator) # .setBlue(blue / denominator); # int alpha = color.getAlpha(); # if (alpha != 255) ` # result.setAlpha( # FloatValue # .newBuilder() # .setValue(((float) alpha) / denominator) # .build()); # ` # return resultBuilder.build(); # ` # // ... # Example (iOS / Obj-C): # // ... # static UIColor* fromProto(Color* protocolor) ` # float red = [protocolor red]; # float green = [protocolor green]; # float blue = [protocolor blue]; # FloatValue* alpha_wrapper = [protocolor alpha]; # float alpha = 1.0; # if (alpha_wrapper != nil) ` # alpha = [alpha_wrapper value]; # ` # return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; # ` # static Color* toProto(UIColor* color) ` # CGFloat red, green, blue, alpha; # if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) ` # return nil; # ` # Color* result = [[Color alloc] init]; # [result setRed:red]; # [result setGreen:green]; # [result setBlue:blue]; # if (alpha <= 0.9999) ` # [result setAlpha:floatWrapperWithValue(alpha)]; # ` # [result autorelease]; # return result; # ` # // ... # Example (JavaScript): # // ... # var protoToCssColor = function(rgb_color) ` # var redFrac = rgb_color.red || 0.0; # var greenFrac = rgb_color.green || 0.0; # var blueFrac = rgb_color.blue || 0.0; # var red = Math.floor(redFrac * 255); # var green = Math.floor(greenFrac * 255); # var blue = Math.floor(blueFrac * 255); # if (!('alpha' in rgb_color)) ` # return rgbToCssColor_(red, green, blue); # ` # var alphaFrac = rgb_color.alpha.value || 0.0; # var rgbParams = [red, green, blue].join(','); # return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); # `; # var rgbToCssColor_ = function(red, green, blue) ` # var rgbNumber = new Number((red << 16) | (green << 8) | blue); # var hexString = rgbNumber.toString(16); # var missingZeros = 6 - hexString.length; # var resultBuilder = ['#']; # for (var i = 0; i < missingZeros; i++) ` # resultBuilder.push('0'); # ` # resultBuilder.push(hexString); # return resultBuilder.join(''); # `; # // ... class GoogleTypeColor include Google::Apis::Core::Hashable # The fraction of this color that should be applied to the pixel. That is, # the final pixel color is defined by the equation: # pixel color = alpha * (this color) + (1.0 - alpha) * (background color) # This means that a value of 1.0 corresponds to a solid color, whereas # a value of 0.0 corresponds to a completely transparent color. This # uses a wrapper message rather than a simple float scalar so that it is # possible to distinguish between a default value and the value being unset. # If omitted, this color object is to be rendered as a solid color # (as if the alpha value had been explicitly given with a value of 1.0). # Corresponds to the JSON property `alpha` # @return [Float] attr_accessor :alpha # The amount of blue in the color as a value in the interval [0, 1]. # Corresponds to the JSON property `blue` # @return [Float] attr_accessor :blue # The amount of green in the color as a value in the interval [0, 1]. # Corresponds to the JSON property `green` # @return [Float] attr_accessor :green # The amount of red in the color as a value in the interval [0, 1]. # Corresponds to the JSON property `red` # @return [Float] attr_accessor :red def initialize(**args) update!(**args) end # Update properties of this object def update!(**args) @alpha = args[:alpha] if args.key?(:alpha) @blue = args[:blue] if args.key?(:blue) @green = args[:green] if args.key?(:green) @red = args[:red] if args.key?(:red) end end end end end