# 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::ContainerService::Mgmt::V2020_12_01
  module Models
    #
    # Sysctl settings for Linux agent nodes.
    #
    class SysctlConfig

      include MsRestAzure

      # @return [Integer] Sysctl setting net.core.somaxconn.
      attr_accessor :net_core_somaxconn

      # @return [Integer] Sysctl setting net.core.netdev_max_backlog.
      attr_accessor :net_core_netdev_max_backlog

      # @return [Integer] Sysctl setting net.core.rmem_default.
      attr_accessor :net_core_rmem_default

      # @return [Integer] Sysctl setting net.core.rmem_max.
      attr_accessor :net_core_rmem_max

      # @return [Integer] Sysctl setting net.core.wmem_default.
      attr_accessor :net_core_wmem_default

      # @return [Integer] Sysctl setting net.core.wmem_max.
      attr_accessor :net_core_wmem_max

      # @return [Integer] Sysctl setting net.core.optmem_max.
      attr_accessor :net_core_optmem_max

      # @return [Integer] Sysctl setting net.ipv4.tcp_max_syn_backlog.
      attr_accessor :net_ipv4tcp_max_syn_backlog

      # @return [Integer] Sysctl setting net.ipv4.tcp_max_tw_buckets.
      attr_accessor :net_ipv4tcp_max_tw_buckets

      # @return [Integer] Sysctl setting net.ipv4.tcp_fin_timeout.
      attr_accessor :net_ipv4tcp_fin_timeout

      # @return [Integer] Sysctl setting net.ipv4.tcp_keepalive_time.
      attr_accessor :net_ipv4tcp_keepalive_time

      # @return [Integer] Sysctl setting net.ipv4.tcp_keepalive_probes.
      attr_accessor :net_ipv4tcp_keepalive_probes

      # @return [Integer] Sysctl setting net.ipv4.tcp_keepalive_intvl.
      attr_accessor :net_ipv4tcpkeepalive_intvl

      # @return [Boolean] Sysctl setting net.ipv4.tcp_tw_reuse.
      attr_accessor :net_ipv4tcp_tw_reuse

      # @return [String] Sysctl setting net.ipv4.ip_local_port_range.
      attr_accessor :net_ipv4ip_local_port_range

      # @return [Integer] Sysctl setting net.ipv4.neigh.default.gc_thresh1.
      attr_accessor :net_ipv4neigh_default_gc_thresh1

      # @return [Integer] Sysctl setting net.ipv4.neigh.default.gc_thresh2.
      attr_accessor :net_ipv4neigh_default_gc_thresh2

      # @return [Integer] Sysctl setting net.ipv4.neigh.default.gc_thresh3.
      attr_accessor :net_ipv4neigh_default_gc_thresh3

      # @return [Integer] Sysctl setting net.netfilter.nf_conntrack_max.
      attr_accessor :net_netfilter_nf_conntrack_max

      # @return [Integer] Sysctl setting net.netfilter.nf_conntrack_buckets.
      attr_accessor :net_netfilter_nf_conntrack_buckets

      # @return [Integer] Sysctl setting fs.inotify.max_user_watches.
      attr_accessor :fs_inotify_max_user_watches

      # @return [Integer] Sysctl setting fs.file-max.
      attr_accessor :fs_file_max

      # @return [Integer] Sysctl setting fs.aio-max-nr.
      attr_accessor :fs_aio_max_nr

      # @return [Integer] Sysctl setting fs.nr_open.
      attr_accessor :fs_nr_open

      # @return [Integer] Sysctl setting kernel.threads-max.
      attr_accessor :kernel_threads_max

      # @return [Integer] Sysctl setting vm.max_map_count.
      attr_accessor :vm_max_map_count

      # @return [Integer] Sysctl setting vm.swappiness.
      attr_accessor :vm_swappiness

      # @return [Integer] Sysctl setting vm.vfs_cache_pressure.
      attr_accessor :vm_vfs_cache_pressure


      #
      # Mapper for SysctlConfig class as Ruby Hash.
      # This will be used for serialization/deserialization.
      #
      def self.mapper()
        {
          client_side_validation: true,
          required: false,
          serialized_name: 'SysctlConfig',
          type: {
            name: 'Composite',
            class_name: 'SysctlConfig',
            model_properties: {
              net_core_somaxconn: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netCoreSomaxconn',
                type: {
                  name: 'Number'
                }
              },
              net_core_netdev_max_backlog: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netCoreNetdevMaxBacklog',
                type: {
                  name: 'Number'
                }
              },
              net_core_rmem_default: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netCoreRmemDefault',
                type: {
                  name: 'Number'
                }
              },
              net_core_rmem_max: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netCoreRmemMax',
                type: {
                  name: 'Number'
                }
              },
              net_core_wmem_default: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netCoreWmemDefault',
                type: {
                  name: 'Number'
                }
              },
              net_core_wmem_max: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netCoreWmemMax',
                type: {
                  name: 'Number'
                }
              },
              net_core_optmem_max: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netCoreOptmemMax',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4tcp_max_syn_backlog: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4TcpMaxSynBacklog',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4tcp_max_tw_buckets: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4TcpMaxTwBuckets',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4tcp_fin_timeout: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4TcpFinTimeout',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4tcp_keepalive_time: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4TcpKeepaliveTime',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4tcp_keepalive_probes: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4TcpKeepaliveProbes',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4tcpkeepalive_intvl: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4TcpkeepaliveIntvl',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4tcp_tw_reuse: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4TcpTwReuse',
                type: {
                  name: 'Boolean'
                }
              },
              net_ipv4ip_local_port_range: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4IpLocalPortRange',
                type: {
                  name: 'String'
                }
              },
              net_ipv4neigh_default_gc_thresh1: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4NeighDefaultGcThresh1',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4neigh_default_gc_thresh2: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4NeighDefaultGcThresh2',
                type: {
                  name: 'Number'
                }
              },
              net_ipv4neigh_default_gc_thresh3: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netIpv4NeighDefaultGcThresh3',
                type: {
                  name: 'Number'
                }
              },
              net_netfilter_nf_conntrack_max: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netNetfilterNfConntrackMax',
                type: {
                  name: 'Number'
                }
              },
              net_netfilter_nf_conntrack_buckets: {
                client_side_validation: true,
                required: false,
                serialized_name: 'netNetfilterNfConntrackBuckets',
                type: {
                  name: 'Number'
                }
              },
              fs_inotify_max_user_watches: {
                client_side_validation: true,
                required: false,
                serialized_name: 'fsInotifyMaxUserWatches',
                type: {
                  name: 'Number'
                }
              },
              fs_file_max: {
                client_side_validation: true,
                required: false,
                serialized_name: 'fsFileMax',
                type: {
                  name: 'Number'
                }
              },
              fs_aio_max_nr: {
                client_side_validation: true,
                required: false,
                serialized_name: 'fsAioMaxNr',
                type: {
                  name: 'Number'
                }
              },
              fs_nr_open: {
                client_side_validation: true,
                required: false,
                serialized_name: 'fsNrOpen',
                type: {
                  name: 'Number'
                }
              },
              kernel_threads_max: {
                client_side_validation: true,
                required: false,
                serialized_name: 'kernelThreadsMax',
                type: {
                  name: 'Number'
                }
              },
              vm_max_map_count: {
                client_side_validation: true,
                required: false,
                serialized_name: 'vmMaxMapCount',
                type: {
                  name: 'Number'
                }
              },
              vm_swappiness: {
                client_side_validation: true,
                required: false,
                serialized_name: 'vmSwappiness',
                type: {
                  name: 'Number'
                }
              },
              vm_vfs_cache_pressure: {
                client_side_validation: true,
                required: false,
                serialized_name: 'vmVfsCachePressure',
                type: {
                  name: 'Number'
                }
              }
            }
          }
        }
      end
    end
  end
end
