# encoding: utf-8
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is
# regenerated.

module Azure::CognitiveServices::ImageSearch::V1_0
  module Models
    #
    # Defines a region of the image where an entity was found and a list of
    # entities that might match it.
    #
    class RecognizedEntityRegion < Response

      include MsRestAzure


      def initialize
        @_type = "RecognizedEntityRegion"
      end

      attr_accessor :_type

      # @return [NormalizedRectangle] A region of the image that contains an
      # entity. The values of the rectangle are relative to the width and
      # height of the original image and are in the range 0.0 through 1.0. For
      # example, if the image is 300x200 and the region's top, left corner is
      # at point (10, 20) and the bottom, right corner is at point (290, 150),
      # then the normalized rectangle is: Left = 0.0333333333333333, Top = 0.1,
      # Right = 0.9666666666666667, Bottom = 0.75. For people, the region
      # represents the person's face.
      attr_accessor :region

      # @return [Array<RecognizedEntity>] A list of entities that Bing believes
      # match the entity found in the region. The entities are in descending
      # order of confidence (see the matchConfidence field of
      # RecognizedEntity).
      attr_accessor :matching_entities


      #
      # Mapper for RecognizedEntityRegion class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'RecognizedEntityRegion',
          type: {
            name: 'Composite',
            class_name: 'RecognizedEntityRegion',
            model_properties: {
              _type: {
                client_side_validation: true,
                required: true,
                serialized_name: '_type',
                type: {
                  name: 'String'
                }
              },
              id: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'id',
                type: {
                  name: 'String'
                }
              },
              read_link: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'readLink',
                type: {
                  name: 'String'
                }
              },
              web_search_url: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'webSearchUrl',
                type: {
                  name: 'String'
                }
              },
              region: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'region',
                type: {
                  name: 'Composite',
                  class_name: 'NormalizedRectangle'
                }
              },
              matching_entities: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'matchingEntities',
                type: {
                  name: 'Sequence',
                  element: {
                      client_side_validation: true,
                      required: false,
                      serialized_name: 'RecognizedEntityElementType',
                      type: {
                        name: 'Composite',
                        class_name: 'RecognizedEntity'
                      }
                  }
                }
              }
            }
          }
        }
      end
    end
  end
end
