{
    "$id": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.v1_0_7.json",
    "$ref": "#/definitions/EthernetInterface",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "EthernetInterface": {
            "additionalProperties": false,
            "description": "The EthernetInterface schema represents a single, logical ethernet interface or network interface controller (NIC).",
            "longDescription": "This resource shall be used to represent NIC resources as part of the Redfish specification.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/context"
                },
                "@odata.etag": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/etag"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata-v4.json#/definitions/type"
                },
                "AutoNeg": {
                    "description": "This indicates if the speed and duplex are automatically negotiated and configured on this interface.",
                    "longDescription": "The value of this property shall be true if auto negotiation of speed and duplex is enabled on this interface and false if it is disabled.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "FQDN": {
                    "description": "This is the complete, fully qualified domain name obtained by DNS for this interface.",
                    "longDescription": "The value of this property shall be the fully qualified domain name for this interface.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "FullDuplex": {
                    "description": "This indicates if the interface is in Full Duplex mode or not.",
                    "longDescription": "The value of this property shall represent the duplex status of the Ethernet connection on this interface.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "HostName": {
                    "description": "The DNS Host Name, without any domain information.",
                    "longDescription": "The value of this property shall be host name for this interface.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "IPv4Addresses": {
                    "description": "The IPv4 addresses currently assigned to this interface.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address"
                    },
                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv4 connection characteristics for this interface. It is recommended that this propety be regarded as read-only, with configuration of static addresses performed by updating the values within IPv4StaticAddessses. Services may reject updates to this array for this reason.",
                    "type": "array"
                },
                "IPv6AddressPolicyTable": {
                    "description": "An array representing the RFC 6724 Address Selection Policy Table.",
                    "items": {
                        "$ref": "#/definitions/IPv6AddressPolicyEntry"
                    },
                    "longDescription": "The value of this property shall be an array of objects used to represent the Address Selection Policy Table as defined in RFC 6724.",
                    "type": "array"
                },
                "IPv6Addresses": {
                    "description": "Enumerates in an array all of the currently assigned IPv6 addresses on this interface.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address"
                    },
                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 connection characteristics for this interface.",
                    "type": "array"
                },
                "IPv6DefaultGateway": {
                    "description": "This is the IPv6 default gateway address that is currently in use on this interface.",
                    "longDescription": "The value of this property shall be the current IPv6 default gateway address that is in use on this interface.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "IPv6StaticAddresses": {
                    "description": "Represents in an array all of the IPv6 static addresses to be assigned on this interface.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress"
                    },
                    "longDescription": "The value of this property shall be an array of objects used to represent the IPv6 static connection characteristics for this interface.",
                    "type": "array"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "InterfaceEnabled": {
                    "description": "This indicates whether this interface is enabled.",
                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "MACAddress": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/MACAddress"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "This is the currently configured MAC address of the (logical port) interface.",
                    "longDescription": "The value of this property shall be the effective current MAC Address of this interface. If an assignable MAC address is not supported, this is a read only alias of the PermanentMACAddress.",
                    "readonly": false
                },
                "MTUSize": {
                    "description": "This is the currently configured Maximum Transmission Unit (MTU) in bytes on this interface.",
                    "longDescription": "The value of this property shall be the size in bytes of largest Protocol Data Unit (PDU) that can be passed in an Ethernet (MAC) frame on this interface.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "MaxIPv6StaticAddresses": {
                    "description": "This indicates the maximum number of Static IPv6 addresses that can be configured on this interface.",
                    "longDescription": "The value of this property shall indicate the number of array items supported by IPv6StaticAddresses.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "NameServers": {
                    "description": "This represents DNS name servers that are currently in use on this interface.",
                    "items": {
                        "type": "string"
                    },
                    "longDescription": "The value of this property shall be the DNS name servers used on this interface.",
                    "readonly": true,
                    "type": "array"
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
                },
                "PermanentMACAddress": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/MACAddress"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "This is the permanent MAC address assigned to this interface (port).",
                    "longDescription": "The value of this property shall be the Permanent MAC Address of this interface (port). This value is typically programmed during the manufacturing time. This address is not assignable.",
                    "readonly": true
                },
                "SpeedMbps": {
                    "description": "This is the current speed in Mbps of this interface.",
                    "longDescription": "The value of this property shall be the link speed of the interface in Mbps.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "units": "Mbit/s"
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "This property describes the status and health of the resource and its children.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                },
                "UefiDevicePath": {
                    "description": "The UEFI device path for this interface.",
                    "longDescription": "The value of this property shall be the UEFI device path to the device which implements this interface (port).",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "VLAN": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterface.json#/definitions/VLAN",
                    "description": "If this Network Interface supports more than one VLAN, this property is not present. VLANs collections appear in the Link section of this resource.",
                    "longDescription": "The value of this property shall be the VLAN for this interface.  If this interface supports more than one VLAN, the VLAN property shall not be present and the VLANS collection link shall be present instead."
                },
                "VLANs": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterfaceCollection.json#/definitions/VLanNetworkInterfaceCollection",
                    "description": "This is a reference to a collection of VLANs and is only used if the interface supports more than one VLANs.",
                    "longDescription": "The value of this property shall reference a collection of VLAN resources. If this property is used, the VLANEnabled and VLANId property shall not be used.",
                    "readonly": true
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "IPv6AddressPolicyEntry": {
            "additionalProperties": false,
            "description": "A entry in the RFC 6724 Address Selection Policy Table.",
            "longDescription": "This type shall describe and entry in the Address Selection Policy Table as defined in RFC 6724.",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                    "description": "This property shall specify a valid odata or Redfish property.",
                    "type": [
                        "array",
                        "boolean",
                        "integer",
                        "number",
                        "null",
                        "object",
                        "string"
                    ]
                }
            },
            "properties": {
                "Label": {
                    "description": "The IPv6 Label (as defined in RFC 6724 section 2.1).",
                    "longDescription": "This property shall contain the IPv6 Label value for this table entry as defined in RFC 6724 section 2.1.",
                    "maximum": 100,
                    "minimum": 0,
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Precedence": {
                    "description": "The IPv6 Precedence (as defined in RFC 6724 section 2.1.",
                    "longDescription": "This property shall contain the IPv6 Precedence value for this table entry as defined in RFC 6724 section 2.1.",
                    "maximum": 100,
                    "minimum": 1,
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Prefix": {
                    "description": "The IPv6 Address Prefix (as defined in RFC 6724 section 2.1).",
                    "longDescription": "This property shall contain the IPv6 Address Prefix for this table entry as defined in RFC 6724 section 2.1.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "type": "object"
        },
        "MACAddress": {
            "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$",
            "type": "string"
        }
    },
    "owningEntity": "DMTF",
    "release": "1.0",
    "title": "#EthernetInterface.v1_0_7.EthernetInterface"
}