/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file 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.
 */
/*
 * Do not modify this file. This file is generated from the snow-device-management-2021-08-04.normal.json service model.
 */
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SnowDeviceManagement.Model
{
    /// 
    /// The details about the physical network interface for the device.
    /// 
    public partial class PhysicalNetworkInterface
    {
        private string _defaultGateway;
        private string _ipAddress;
        private IpAddressAssignment _ipAddressAssignment;
        private string _macAddress;
        private string _netmask;
        private PhysicalConnectorType _physicalConnectorType;
        private string _physicalNetworkInterfaceId;
        /// 
        /// Gets and sets the property DefaultGateway. 
        /// 
        /// The default gateway of the device.
        /// 
        /// 
        public string DefaultGateway
        {
            get { return this._defaultGateway; }
            set { this._defaultGateway = value; }
        }
        // Check to see if DefaultGateway property is set
        internal bool IsSetDefaultGateway()
        {
            return this._defaultGateway != null;
        }
        /// 
        /// Gets and sets the property IpAddress. 
        /// 
        /// The IP address of the device.
        /// 
        /// 
        public string IpAddress
        {
            get { return this._ipAddress; }
            set { this._ipAddress = value; }
        }
        // Check to see if IpAddress property is set
        internal bool IsSetIpAddress()
        {
            return this._ipAddress != null;
        }
        /// 
        /// Gets and sets the property IpAddressAssignment. 
        /// 
        /// A value that describes whether the IP address is dynamic or persistent.
        /// 
        /// 
        public IpAddressAssignment IpAddressAssignment
        {
            get { return this._ipAddressAssignment; }
            set { this._ipAddressAssignment = value; }
        }
        // Check to see if IpAddressAssignment property is set
        internal bool IsSetIpAddressAssignment()
        {
            return this._ipAddressAssignment != null;
        }
        /// 
        /// Gets and sets the property MacAddress. 
        /// 
        /// The MAC address of the device.
        /// 
        /// 
        public string MacAddress
        {
            get { return this._macAddress; }
            set { this._macAddress = value; }
        }
        // Check to see if MacAddress property is set
        internal bool IsSetMacAddress()
        {
            return this._macAddress != null;
        }
        /// 
        /// Gets and sets the property Netmask. 
        /// 
        /// The netmask used to divide the IP address into subnets.
        /// 
        /// 
        public string Netmask
        {
            get { return this._netmask; }
            set { this._netmask = value; }
        }
        // Check to see if Netmask property is set
        internal bool IsSetNetmask()
        {
            return this._netmask != null;
        }
        /// 
        /// Gets and sets the property PhysicalConnectorType. 
        /// 
        /// The physical connector type.
        /// 
        /// 
        public PhysicalConnectorType PhysicalConnectorType
        {
            get { return this._physicalConnectorType; }
            set { this._physicalConnectorType = value; }
        }
        // Check to see if PhysicalConnectorType property is set
        internal bool IsSetPhysicalConnectorType()
        {
            return this._physicalConnectorType != null;
        }
        /// 
        /// Gets and sets the property PhysicalNetworkInterfaceId. 
        /// 
        /// The physical network interface ID.
        /// 
        /// 
        public string PhysicalNetworkInterfaceId
        {
            get { return this._physicalNetworkInterfaceId; }
            set { this._physicalNetworkInterfaceId = value; }
        }
        // Check to see if PhysicalNetworkInterfaceId property is set
        internal bool IsSetPhysicalNetworkInterfaceId()
        {
            return this._physicalNetworkInterfaceId != null;
        }
    }
}