/*
Portions Copyright (c) Microsoft Corporation.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by go-swagger; DO NOT EDIT.

package models

// This file was generated by the swagger tool.
// Editing this file might prove futile when you re-run the swagger generate command

import (
	"context"

	"github.com/go-openapi/strfmt"
	"github.com/go-openapi/swag"
)

// SysctlConfig sysctl config
//
// swagger:model SysctlConfig
type SysctlConfig struct {

	// fs aio max nr
	FsAioMaxNr *int32 `json:"fsAioMaxNr,omitempty"`

	// fs file max
	FsFileMax *int32 `json:"fsFileMax,omitempty"`

	// fs inotify max user watches
	FsInotifyMaxUserWatches *int32 `json:"fsInotifyMaxUserWatches,omitempty"`

	// fs nr open
	FsNrOpen *int32 `json:"fsNrOpen,omitempty"`

	// kernel threads max
	KernelThreadsMax *int32 `json:"kernelThreadsMax,omitempty"`

	// net core netdev max backlog
	NetCoreNetdevMaxBacklog *int32 `json:"netCoreNetdevMaxBacklog,omitempty"`

	// net core optmem max
	NetCoreOptmemMax *int32 `json:"netCoreOptmemMax,omitempty"`

	// net core rmem default
	NetCoreRmemDefault *int32 `json:"netCoreRmemDefault,omitempty"`

	// net core rmem max
	NetCoreRmemMax *int32 `json:"netCoreRmemMax,omitempty"`

	// net core somaxconn
	NetCoreSomaxconn *int32 `json:"netCoreSomaxconn,omitempty"`

	// net core wmem default
	NetCoreWmemDefault *int32 `json:"netCoreWmemDefault,omitempty"`

	// net core wmem max
	NetCoreWmemMax *int32 `json:"netCoreWmemMax,omitempty"`

	// net Ipv4 Ip local port range
	NetIPV4IPLocalPortRange *string `json:"netIpv4IpLocalPortRange,omitempty"`

	// net Ipv4 neigh default gc thresh1
	NetIPV4NeighDefaultGcThresh1 *int32 `json:"netIpv4NeighDefaultGcThresh1,omitempty"`

	// net Ipv4 neigh default gc thresh2
	NetIPV4NeighDefaultGcThresh2 *int32 `json:"netIpv4NeighDefaultGcThresh2,omitempty"`

	// net Ipv4 neigh default gc thresh3
	NetIPV4NeighDefaultGcThresh3 *int32 `json:"netIpv4NeighDefaultGcThresh3,omitempty"`

	// net Ipv4 Tcp fin timeout
	NetIPV4TCPFinTimeout *int32 `json:"netIpv4TcpFinTimeout,omitempty"`

	// net Ipv4 Tcp keepalive probes
	NetIPV4TCPKeepaliveProbes *int32 `json:"netIpv4TcpKeepaliveProbes,omitempty"`

	// net Ipv4 Tcp keepalive time
	NetIPV4TCPKeepaliveTime *int32 `json:"netIpv4TcpKeepaliveTime,omitempty"`

	// net Ipv4 Tcp max syn backlog
	NetIPV4TCPMaxSynBacklog *int32 `json:"netIpv4TcpMaxSynBacklog,omitempty"`

	// net Ipv4 Tcp max tw buckets
	NetIPV4TCPMaxTwBuckets *int32 `json:"netIpv4TcpMaxTwBuckets,omitempty"`

	// net Ipv4 Tcp tw reuse
	NetIPV4TCPTwReuse *bool `json:"netIpv4TcpTwReuse,omitempty"`

	// net Ipv4 tcpkeepalive intvl
	NetIPV4TcpkeepaliveIntvl *int32 `json:"netIpv4TcpkeepaliveIntvl,omitempty"`

	// net netfilter nf conntrack buckets
	NetNetfilterNfConntrackBuckets *int32 `json:"netNetfilterNfConntrackBuckets,omitempty"`

	// net netfilter nf conntrack max
	NetNetfilterNfConntrackMax *int32 `json:"netNetfilterNfConntrackMax,omitempty"`

	// vm max map count
	VMMaxMapCount *int32 `json:"vmMaxMapCount,omitempty"`

	// vm swappiness
	VMSwappiness *int32 `json:"vmSwappiness,omitempty"`

	// vm vfs cache pressure
	VMVfsCachePressure *int32 `json:"vmVfsCachePressure,omitempty"`
}

// Validate validates this sysctl config
func (m *SysctlConfig) Validate(formats strfmt.Registry) error {
	return nil
}

// ContextValidate validates this sysctl config based on context it is used
func (m *SysctlConfig) ContextValidate(ctx context.Context, formats strfmt.Registry) error {
	return nil
}

// MarshalBinary interface implementation
func (m *SysctlConfig) MarshalBinary() ([]byte, error) {
	if m == nil {
		return nil, nil
	}
	return swag.WriteJSON(m)
}

// UnmarshalBinary interface implementation
func (m *SysctlConfig) UnmarshalBinary(b []byte) error {
	var res SysctlConfig
	if err := swag.ReadJSON(b, &res); err != nil {
		return err
	}
	*m = res
	return nil
}
