# 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::Web::Mgmt::V2020_09_01
  module Models
    #
    # Process Information.
    #
    class ProcessInfo < ProxyOnlyResource

      include MsRestAzure

      # @return [Integer] ARM Identifier for deployment.
      attr_accessor :identifier

      # @return [String] Deployment name.
      attr_accessor :deployment_name

      # @return [String] HRef URI.
      attr_accessor :href

      # @return [String] Minidump URI.
      attr_accessor :minidump

      # @return [Boolean] Is profile running?
      attr_accessor :is_profile_running

      # @return [Boolean] Is the IIS Profile running?
      attr_accessor :is_iis_profile_running

      # @return [Float] IIS Profile timeout (seconds).
      attr_accessor :iis_profile_timeout_in_seconds

      # @return [String] Parent process.
      attr_accessor :parent

      # @return [Array<String>] Child process list.
      attr_accessor :children

      # @return [Array<ProcessThreadInfo>] Thread list.
      attr_accessor :threads

      # @return [Array<String>] List of open files.
      attr_accessor :open_file_handles

      # @return [Array<ProcessModuleInfo>] List of modules.
      attr_accessor :modules

      # @return [String] File name of this process.
      attr_accessor :file_name

      # @return [String] Command line.
      attr_accessor :command_line

      # @return [String] User name.
      attr_accessor :user_name

      # @return [Integer] Handle count.
      attr_accessor :handle_count

      # @return [Integer] Module count.
      attr_accessor :module_count

      # @return [Integer] Thread count.
      attr_accessor :thread_count

      # @return [DateTime] Start time.
      attr_accessor :start_time

      # @return [String] Total CPU time.
      attr_accessor :total_cpu_time

      # @return [String] User CPU time.
      attr_accessor :user_cpu_time

      # @return [String] Privileged CPU time.
      attr_accessor :privileged_cpu_time

      # @return [Integer] Working set.
      attr_accessor :working_set

      # @return [Integer] Peak working set.
      attr_accessor :peak_working_set

      # @return [Integer] Private memory size.
      attr_accessor :private_memory

      # @return [Integer] Virtual memory size.
      attr_accessor :virtual_memory

      # @return [Integer] Peak virtual memory usage.
      attr_accessor :peak_virtual_memory

      # @return [Integer] Paged system memory.
      attr_accessor :paged_system_memory

      # @return [Integer] Non-paged system memory.
      attr_accessor :non_paged_system_memory

      # @return [Integer] Paged memory.
      attr_accessor :paged_memory

      # @return [Integer] Peak paged memory.
      attr_accessor :peak_paged_memory

      # @return [DateTime] Time stamp.
      attr_accessor :time_stamp

      # @return [Hash{String => String}] List of environment variables.
      attr_accessor :environment_variables

      # @return [Boolean] Is this the SCM site?
      attr_accessor :is_scm_site

      # @return [Boolean] Is this a Web Job?
      attr_accessor :is_webjob

      # @return [String] Description of process.
      attr_accessor :description


      #
      # Mapper for ProcessInfo class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'ProcessInfo',
          type: {
            name: 'Composite',
            class_name: 'ProcessInfo',
            model_properties: {
              id: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'id',
                type: {
                  name: 'String'
                }
              },
              name: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'name',
                type: {
                  name: 'String'
                }
              },
              kind: {
                client_side_validation: true,
                required: false,
                serialized_name: 'kind',
                type: {
                  name: 'String'
                }
              },
              type: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'type',
                type: {
                  name: 'String'
                }
              },
              system_data: {
                client_side_validation: true,
                required: false,
                serialized_name: 'systemData',
                type: {
                  name: 'Composite',
                  class_name: 'SystemData'
                }
              },
              identifier: {
                client_side_validation: true,
                required: false,
                read_only: true,
                serialized_name: 'properties.identifier',
                type: {
                  name: 'Number'
                }
              },
              deployment_name: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.deployment_name',
                type: {
                  name: 'String'
                }
              },
              href: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.href',
                type: {
                  name: 'String'
                }
              },
              minidump: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.minidump',
                type: {
                  name: 'String'
                }
              },
              is_profile_running: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.is_profile_running',
                type: {
                  name: 'Boolean'
                }
              },
              is_iis_profile_running: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.is_iis_profile_running',
                type: {
                  name: 'Boolean'
                }
              },
              iis_profile_timeout_in_seconds: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.iis_profile_timeout_in_seconds',
                type: {
                  name: 'Double'
                }
              },
              parent: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.parent',
                type: {
                  name: 'String'
                }
              },
              children: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.children',
                type: {
                  name: 'Sequence',
                  element: {
                      client_side_validation: true,
                      required: false,
                      serialized_name: 'StringElementType',
                      type: {
                        name: 'String'
                      }
                  }
                }
              },
              threads: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.threads',
                type: {
                  name: 'Sequence',
                  element: {
                      client_side_validation: true,
                      required: false,
                      serialized_name: 'ProcessThreadInfoElementType',
                      type: {
                        name: 'Composite',
                        class_name: 'ProcessThreadInfo'
                      }
                  }
                }
              },
              open_file_handles: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.open_file_handles',
                type: {
                  name: 'Sequence',
                  element: {
                      client_side_validation: true,
                      required: false,
                      serialized_name: 'StringElementType',
                      type: {
                        name: 'String'
                      }
                  }
                }
              },
              modules: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.modules',
                type: {
                  name: 'Sequence',
                  element: {
                      client_side_validation: true,
                      required: false,
                      serialized_name: 'ProcessModuleInfoElementType',
                      type: {
                        name: 'Composite',
                        class_name: 'ProcessModuleInfo'
                      }
                  }
                }
              },
              file_name: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.file_name',
                type: {
                  name: 'String'
                }
              },
              command_line: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.command_line',
                type: {
                  name: 'String'
                }
              },
              user_name: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.user_name',
                type: {
                  name: 'String'
                }
              },
              handle_count: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.handle_count',
                type: {
                  name: 'Number'
                }
              },
              module_count: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.module_count',
                type: {
                  name: 'Number'
                }
              },
              thread_count: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.thread_count',
                type: {
                  name: 'Number'
                }
              },
              start_time: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.start_time',
                type: {
                  name: 'DateTime'
                }
              },
              total_cpu_time: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.total_cpu_time',
                type: {
                  name: 'String'
                }
              },
              user_cpu_time: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.user_cpu_time',
                type: {
                  name: 'String'
                }
              },
              privileged_cpu_time: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.privileged_cpu_time',
                type: {
                  name: 'String'
                }
              },
              working_set: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.working_set',
                type: {
                  name: 'Number'
                }
              },
              peak_working_set: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.peak_working_set',
                type: {
                  name: 'Number'
                }
              },
              private_memory: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.private_memory',
                type: {
                  name: 'Number'
                }
              },
              virtual_memory: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.virtual_memory',
                type: {
                  name: 'Number'
                }
              },
              peak_virtual_memory: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.peak_virtual_memory',
                type: {
                  name: 'Number'
                }
              },
              paged_system_memory: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.paged_system_memory',
                type: {
                  name: 'Number'
                }
              },
              non_paged_system_memory: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.non_paged_system_memory',
                type: {
                  name: 'Number'
                }
              },
              paged_memory: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.paged_memory',
                type: {
                  name: 'Number'
                }
              },
              peak_paged_memory: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.peak_paged_memory',
                type: {
                  name: 'Number'
                }
              },
              time_stamp: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.time_stamp',
                type: {
                  name: 'DateTime'
                }
              },
              environment_variables: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.environment_variables',
                type: {
                  name: 'Dictionary',
                  value: {
                      client_side_validation: true,
                      required: false,
                      serialized_name: 'StringElementType',
                      type: {
                        name: 'String'
                      }
                  }
                }
              },
              is_scm_site: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.is_scm_site',
                type: {
                  name: 'Boolean'
                }
              },
              is_webjob: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.is_webjob',
                type: {
                  name: 'Boolean'
                }
              },
              description: {
                client_side_validation: true,
                required: false,
                serialized_name: 'properties.description',
                type: {
                  name: 'String'
                }
              }
            }
          }
        }
      end
    end
  end
end
