# 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::ServiceFabric::V6_2_0_9
  module Models
    #
    # Represents the health state chunk of a application.
    # The application health state chunk contains the application name, its
    # aggregated health state and any children services and deployed
    # applications that respect the filters in cluster health chunk query
    # description.
    #
    class ApplicationHealthStateChunk < EntityHealthStateChunk

      include MsRestAzure

      # @return [String] The name of the application, including the 'fabric:'
      # URI scheme.
      attr_accessor :application_name

      # @return [String] The application type name as defined in the
      # application manifest.
      attr_accessor :application_type_name

      # @return [ServiceHealthStateChunkList] The list of service health state
      # chunks in the cluster that respect the filters in the cluster health
      # chunk query description.
      attr_accessor :service_health_state_chunks

      # @return [DeployedApplicationHealthStateChunkList] The list of deployed
      # application health state chunks in the cluster that respect the filters
      # in the cluster health chunk query description.
      attr_accessor :deployed_application_health_state_chunks


      #
      # Mapper for ApplicationHealthStateChunk class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'ApplicationHealthStateChunk',
          type: {
            name: 'Composite',
            class_name: 'ApplicationHealthStateChunk',
            model_properties: {
              health_state: {
                client_side_validation: true,
                required: false,
                serialized_name: 'HealthState',
                type: {
                  name: 'String'
                }
              },
              application_name: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ApplicationName',
                type: {
                  name: 'String'
                }
              },
              application_type_name: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ApplicationTypeName',
                type: {
                  name: 'String'
                }
              },
              service_health_state_chunks: {
                client_side_validation: true,
                required: false,
                serialized_name: 'ServiceHealthStateChunks',
                type: {
                  name: 'Composite',
                  class_name: 'ServiceHealthStateChunkList'
                }
              },
              deployed_application_health_state_chunks: {
                client_side_validation: true,
                required: false,
                serialized_name: 'DeployedApplicationHealthStateChunks',
                type: {
                  name: 'Composite',
                  class_name: 'DeployedApplicationHealthStateChunkList'
                }
              }
            }
          }
        }
      end
    end
  end
end
