{
    "$id": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.v1_0_12.json",
    "$ref": "#/definitions/EthernetInterface",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2020 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 contains 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": "An indication of whether the speed and duplex are automatically negotiated and configured on this interface.",
                    "longDescription": "This property shall indicate whether the speed and duplex are automatically negotiated and configured on this interface.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "FQDN": {
                    "description": "The complete, fully qualified domain name that DNS obtains for this interface.",
                    "longDescription": "This property shall contain the fully qualified domain name that DNS obtains for this interface.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "FullDuplex": {
                    "description": "An indication of whether full-duplex mode is enabled on the Ethernet connection for this interface.",
                    "longDescription": "This property shall indicate whether full-duplex mode is enabled on the Ethernet connection for this interface.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "HostName": {
                    "description": "The DNS host name, without any domain information.",
                    "longDescription": "This property shall contain DNS host name for this interface.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "IPv4Addresses": {
                    "description": "The IPv4 addresses currently in use by this interface.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv4Address"
                    },
                    "longDescription": "This property shall contain an array of objects that represent the IPv4 connection characteristics currently in use by this interface for any value of AddressOrigin.  It is recommended that this property be regarded as read-only with configuration of static addresses performed by updating the values within IPv4StaticAddresses.  Services might reject updates to this array for this reason.",
                    "type": "array"
                },
                "IPv6AddressPolicyTable": {
                    "description": "An array that represents the RFC6724-defined address selection policy table.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "#/definitions/IPv6AddressPolicyEntry"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain an array of objects that represent the RFC6724-defined address selection policy table.",
                    "type": "array"
                },
                "IPv6Addresses": {
                    "description": "The IPv6 addresses currently in use by this interface.",
                    "items": {
                        "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6Address"
                    },
                    "longDescription": "This property shall contain an array of objects that represent the IPv6 connection characteristics for this interface for any value of AddressOrigin.",
                    "type": "array"
                },
                "IPv6DefaultGateway": {
                    "description": "The IPv6 default gateway address in use on this interface.",
                    "longDescription": "This property shall contain the current IPv6 default gateway address in use on this interface.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                },
                "IPv6StaticAddresses": {
                    "description": "The IPv6 static addresses assigned to this interface.  See IPv6Addresses for the addresses in use by this interface.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/IPAddresses.json#/definitions/IPv6StaticAddress"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain an array of objects that 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": "An indication of whether this interface is enabled.",
                    "longDescription": "This property shall indicate whether this interface is enabled.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ]
                },
                "MACAddress": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/MACAddress"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The currently configured MAC address of the interface, or logical port.",
                    "longDescription": "This property shall contain the effective current MAC address of this interface.  If an assignable MAC address is not supported, this value is a read-only alias of the PermanentMACAddress.",
                    "readonly": false
                },
                "MTUSize": {
                    "description": "The currently configured maximum transmission unit (MTU), in bytes, on this interface.",
                    "longDescription": "This property shall contain 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": "The maximum number of static IPv6 addresses that can be configured on this interface.",
                    "longDescription": "This property shall indicate the number of array items supported by IPv6StaticAddresses, or the maximum number of static IPv6 addresses that can be configured on this interface.",
                    "readonly": true,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "NameServers": {
                    "description": "The DNS servers in use on this interface.",
                    "items": {
                        "type": "string"
                    },
                    "longDescription": "This property shall contain the DNS servers in use on this interface.",
                    "readonly": true,
                    "type": "array"
                },
                "Oem": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                    "description": "The OEM extension property.",
                    "longDescription": "This property shall contain the OEM extensions.  All values for properties that this object contains shall conform to the Redfish Specification-described requirements."
                },
                "PermanentMACAddress": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/MACAddress"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The permanent MAC address assigned to this interface, or port.",
                    "longDescription": "This property shall contain the permanent MAC address of this interface, or port.  Typically, this value is programmed during manufacturing.  This address is not assignable.",
                    "readonly": true
                },
                "SpeedMbps": {
                    "description": "The current speed, in Mbit/s, of this interface.",
                    "longDescription": "This property shall contain the link speed of the interface, in Mbit/s.  This property shall be writable only when the AutoNeg property is `false`.",
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ],
                    "units": "Mbit/s"
                },
                "Status": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status",
                    "description": "The status and health of the resource and its subordinate or dependent resources.",
                    "longDescription": "This property shall contain any status or health properties of the resource."
                },
                "UefiDevicePath": {
                    "description": "The UEFI device path for this interface.",
                    "longDescription": "This property shall contain the UEFI device path to the device that implements this interface, or 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 absent.  VLAN collections appear in the Links property of this resource.",
                    "longDescription": "This property shall contain the VLAN for this interface.  If this interface supports more than one VLAN, the VLAN property shall be absent and, instead, the VLAN collection link shall be present."
                },
                "VLANs": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/VLanNetworkInterfaceCollection.json#/definitions/VLanNetworkInterfaceCollection",
                    "description": "The link to a collection of VLANs, which applies only if the interface supports more than one VLAN.  If this property applies, the VLANEnabled and VLANId properties do not apply.",
                    "longDescription": "This property shall contain a link to a resource collection of type VLanNetworkInterfaceCollection, which applies only if the interface supports more than one VLAN.  If this property is present, the VLANEnabled and VLANId properties shall not be present.",
                    "readonly": true
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "type": "object"
        },
        "IPv6AddressPolicyEntry": {
            "additionalProperties": false,
            "description": "The entry in the RFC6724-defined address selection policy table.",
            "longDescription": "This type shall describe an entry in the RFC6724-defined address selection policy table.",
            "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 RFC6724, section 2.1.",
                    "longDescription": "This property shall contain the IPv6 label value for this table entry, as defined in RFC6724, section 2.1.",
                    "maximum": 100,
                    "minimum": 0,
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Precedence": {
                    "description": "The IPv6 precedence, as defined in RFC6724, section 2.1.",
                    "longDescription": "This property shall contain the IPv6 precedence value for this table entry, as defined in RFC6724, section 2.1.",
                    "maximum": 100,
                    "minimum": 1,
                    "readonly": false,
                    "type": [
                        "integer",
                        "null"
                    ]
                },
                "Prefix": {
                    "description": "The IPv6 address prefix, as defined in RFC6724, section 2.1.",
                    "longDescription": "This property shall contain the IPv6 address prefix for this table entry, as defined in RFC6724, 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_12.EthernetInterface"
}