# encoding: utf-8 # Code generated by Microsoft (R) AutoRest Code Generator 0.17.0.0 # Changes may cause incorrect behavior and will be lost if the code is # regenerated. module Azure::ARM::Web module Models # # Object representing a metric for any resource # class ResourceMetric include MsRestAzure # @return [ResourceMetricName] Name of metric attr_accessor :name # @return [String] Metric unit attr_accessor :unit # @return [String] Metric granularity. E.g PT1H, PT5M, P1D attr_accessor :time_grain # @return [DateTime] Metric start time attr_accessor :start_time # @return [DateTime] Metric end time attr_accessor :end_time # @return [String] Metric resource Id attr_accessor :resource_id # @return [Array] Metric values attr_accessor :metric_values # @return [Array] Properties attr_accessor :properties # # Validate the object. Throws ValidationError if validation fails. # def validate @name.validate unless @name.nil? @metric_values.each{ |e| e.validate if e.respond_to?(:validate) } unless @metric_values.nil? @properties.each{ |e| e.validate if e.respond_to?(:validate) } unless @properties.nil? end # # Serializes given Model object into Ruby Hash. # @param object Model object to serialize. # @return [Hash] Serialized object in form of Ruby Hash. # def self.serialize_object(object) object.validate output_object = {} serialized_property = object.name unless serialized_property.nil? serialized_property = ResourceMetricName.serialize_object(serialized_property) end output_object['name'] = serialized_property unless serialized_property.nil? serialized_property = object.unit output_object['unit'] = serialized_property unless serialized_property.nil? serialized_property = object.time_grain output_object['timeGrain'] = serialized_property unless serialized_property.nil? serialized_property = object.start_time serialized_property = serialized_property.new_offset(0).strftime('%FT%TZ') output_object['startTime'] = serialized_property unless serialized_property.nil? serialized_property = object.end_time serialized_property = serialized_property.new_offset(0).strftime('%FT%TZ') output_object['endTime'] = serialized_property unless serialized_property.nil? serialized_property = object.resource_id output_object['resourceId'] = serialized_property unless serialized_property.nil? serialized_property = object.metric_values unless serialized_property.nil? serializedArray = [] serialized_property.each do |element| unless element.nil? element = ResourceMetricValue.serialize_object(element) end serializedArray.push(element) end serialized_property = serializedArray end output_object['metricValues'] = serialized_property unless serialized_property.nil? serialized_property = object.properties unless serialized_property.nil? serializedArray = [] serialized_property.each do |element1| unless element1.nil? element1 = KeyValuePairStringString.serialize_object(element1) end serializedArray.push(element1) end serialized_property = serializedArray end output_object['properties'] = serialized_property unless serialized_property.nil? output_object end # # Deserializes given Ruby Hash into Model object. # @param object [Hash] Ruby Hash object to deserialize. # @return [ResourceMetric] Deserialized object. # def self.deserialize_object(object) return if object.nil? output_object = ResourceMetric.new deserialized_property = object['name'] unless deserialized_property.nil? deserialized_property = ResourceMetricName.deserialize_object(deserialized_property) end output_object.name = deserialized_property deserialized_property = object['unit'] output_object.unit = deserialized_property deserialized_property = object['timeGrain'] output_object.time_grain = deserialized_property deserialized_property = object['startTime'] deserialized_property = DateTime.parse(deserialized_property) unless deserialized_property.to_s.empty? output_object.start_time = deserialized_property deserialized_property = object['endTime'] deserialized_property = DateTime.parse(deserialized_property) unless deserialized_property.to_s.empty? output_object.end_time = deserialized_property deserialized_property = object['resourceId'] output_object.resource_id = deserialized_property deserialized_property = object['metricValues'] unless deserialized_property.nil? deserialized_array = [] deserialized_property.each do |element2| unless element2.nil? element2 = ResourceMetricValue.deserialize_object(element2) end deserialized_array.push(element2) end deserialized_property = deserialized_array end output_object.metric_values = deserialized_property deserialized_property = object['properties'] unless deserialized_property.nil? deserialized_array = [] deserialized_property.each do |element3| unless element3.nil? element3 = KeyValuePairStringString.deserialize_object(element3) end deserialized_array.push(element3) end deserialized_property = deserialized_array end output_object.properties = deserialized_property output_object end end end end