# 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::IotHub::Mgmt::V2019_07_01_preview
  module Models
    #
    # The health data for an endpoint
    #
    class EndpointHealthData

      include MsRestAzure

      # @return [String] Id of the endpoint
      attr_accessor :endpoint_id

      # @return [EndpointHealthStatus] Health statuses have following meanings.
      # The 'healthy' status shows that the endpoint is accepting messages as
      # expected. The 'unhealthy' status shows that the endpoint is not
      # accepting messages as expected and IoT Hub is retrying to send data to
      # this endpoint. The status of an unhealthy endpoint will be updated to
      # healthy when IoT Hub has established an eventually consistent state of
      # health. The 'dead' status shows that the endpoint is not accepting
      # messages, after IoT Hub retried sending messages for the retrial
      # period. See IoT Hub metrics to identify errors and monitor issues with
      # endpoints. The 'unknown' status shows that the IoT Hub has not
      # established a connection with the endpoint. No messages have been
      # delivered to or rejected from this endpoint. Possible values include:
      # 'unknown', 'healthy', 'unhealthy', 'dead'
      attr_accessor :health_status


      #
      # Mapper for EndpointHealthData class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'EndpointHealthData',
          type: {
            name: 'Composite',
            class_name: 'EndpointHealthData',
            model_properties: {
              endpoint_id: {
                client_side_validation: true,
                required: false,
                serialized_name: 'endpointId',
                type: {
                  name: 'String'
                }
              },
              health_status: {
                client_side_validation: true,
                required: false,
                serialized_name: 'healthStatus',
                type: {
                  name: 'String'
                }
              }
            }
          }
        }
      end
    end
  end
end
