{
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_1_0.json",
    "title": "#HostInterface.v1_0_0.HostInterface",
    "$ref": "#/definitions/HostInterface",
    "definitions": {
        "AuthenticationMode": {
            "type": "string",
            "enum": [
                "AuthNone",
                "BasicAuth",
                "RedfishSessionAuth",
                "OemAuth"
            ],
            "enumDescriptions": {
                "AuthNone": "Requests without any sort of authentication are allowed.",
                "BasicAuth": "Requests using HTTP Basic Authentication are allowed.",
                "RedfishSessionAuth": "Requests using Redfish Session Authentication are allowed.",
                "OemAuth": "Requests using OEM authentication mechanisms are allowed."
            }
        },
        "HostInterface": {
            "type": "object",
            "patternProperties": {
                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                    "type": [
                        "array",
                        "boolean",
                        "number",
                        "null",
                        "object",
                        "string"
                    ],
                    "description": "This property shall specify a valid odata or Redfish property."
                }
            },
            "additionalProperties": false,
            "properties": {
                "@odata.context": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/context"
                },
                "@odata.id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/id"
                },
                "@odata.type": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/type"
                },
                "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*."
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Description": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"},
                        {"type": "null"}
                    ],
                    "readonly": true
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "HostInterfaceType": {
                    "anyOf": [
                        {"$ref": "#/definitions/HostInterfaceType"},
                        {"type": "null"}
                    ],
                    "readonly": true,
                    "description": "This indicates the Host Interface type for this interface.",
                    "longDescription": "The value of this property shall be an enumeration describing type of the interface."
                },
                "Status": {
                    "anyOf": [
                        {"$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status"},
                        {"type": "null"}
                    ]
                },
                "InterfaceEnabled": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "readonly": false,
                    "description": "This indicates whether this interface is enabled.",
                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is enabled."
                },
                "ExternallyAccessible": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "readonly": true,
                    "description": "This indicates whether this interface is accessible by external entities.",
                    "longDescription": "The value of this property shall be a boolean indicating whether this interface is accessible by external (non-host) entities."
                },
                "AuthenticationModes": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/AuthenticationMode"
                    },
                    "readonly": false,
                    "description": "This indicates the authentication modes available on this interface.",
                    "longDescription": "The value of this property shall be an array consisting of the authentication modes allowed on this interface."
                },
                "KernelAuthRoleId": {
                    "type": "string",
                    "readonly": false,
                    "description": "This property contains the Role for kernel authentication on this interface.",
                    "longDescription": "The value of this property shall be the ID of the Role resource that is configured for kernel authentication on this interface."
                },
                "KernelAuthEnabled": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "readonly": false,
                    "description": "This indicates whether this kernel authentication is enabled for this interface.",
                    "longDescription": "The value of this property shall be a boolean indicating whether kernel authentication for this interface is enabled."
                },
                "FirmwareAuthRoleId": {
                    "type": "string",
                    "readonly": false,
                    "description": "This property contains the Role for firmware authentication on this interface.",
                    "longDescription": "The value of this property shall be the ID of the Role resource that is configured for firmware authentication on this interface."
                },
                "FirmwareAuthEnabled": {
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "readonly": false,
                    "description": "This indicates whether this firmware authentication is enabled for this interface.",
                    "longDescription": "The value of this property shall be a boolean indicating whether firmware authentication for this interface is enabled."
                },
                "Links": {
                    "type": "object",
                    "patternProperties": {
                        "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message|Privileges)\\.[a-zA-Z_][a-zA-Z0-9_.]+$": {
                            "type": [
                                "array",
                                "boolean",
                                "number",
                                "null",
                                "object",
                                "string"
                            ],
                            "description": "This property shall specify a valid odata or Redfish property."
                        }
                    },
                    "additionalProperties": false,
                    "properties": {
                        "Oem": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
                            "description": "Oem extension object.",
                            "longDescription": "This object represents the Oem property.  All values for resources described by this schema shall comply to the requirements as described in the Redfish specification."
                        },
                        "ComputerSystems@odata.count": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/odata.4.0.0.json#/definitions/count"
                        },
                        "ComputerSystems@odata.navigationLink": {
                            "type": "string",
                            "format": "uri"
                        },
                        "ComputerSystems": {
                            "type": "array",
                            "items": {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/ComputerSystem.json#/definitions/ComputerSystem"
                            },
                            "readonly": true,
                            "description": "An array of references to the Computer Systems connected to this Host Interface.",
                            "longDescription": "The value of this property shall be an array of references to resources of type ComputerSystem that are connected to this HostInterface."
                        },
                        "KernelAuthRole": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
                            "readonly": true,
                            "description": "A reference to the Role object defining Privileges for this Host Interface when using kernel authentication.",
                            "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property KernelAuthRoleId."
                        },
                        "FirmwareAuthRole": {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
                            "readonly": true,
                            "description": "A reference to the Role object defining Privileges for this Host Interface when using firmware authentication.",
                            "longDescription": "The value of this property shall be a link to a Role object instance, and should reference the object identified by property FirmwareAuthRoleId."
                        }
                    },
                    "description": "Contains references to other resources that are related to this resource.",
                    "longDescription": "The Links property, as described by the Redfish Specification, shall contain references to resources that are related to, but not contained by (subordinate to), this resource."
                },
                "HostEthernetInterfaces": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterfaceCollection.json#/definitions/EthernetInterfaceCollection",
                    "readonly": true,
                    "description": "This is a reference to a collection of NICs that Computer Systems use for network communication with this Host Interface.",
                    "longDescription": "The value of this property shall be a link to a collection of type EthernetInterfaceCollection that Computer Systems use as the Host Interface to this Manager."
                },
                "ManagerEthernetInterface": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/EthernetInterface.json#/definitions/EthernetInterface",
                    "readonly": true,
                    "description": "This is a reference to a single NIC that this Manager uses for network communication with this Host Interface.",
                    "longDescription": "The value of this property shall be a link to a resource of type EthernetInterface which represents the network interface used by this Manager as the HostInterface."
                },
                "NetworkProtocol": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerNetworkProtocol.json#/definitions/ManagerNetworkProtocol",
                    "readonly": true,
                    "description": "This is a reference to the network services and their settings that the Manager controls.  It is here that clients will find network configuration options as well as network services.",
                    "longDescription": "The value of this property shall contain a reference to a resource of type ManagerNetworkProtocol which represents the network services for this Manager."
                }
            },
            "required": [
                "Id",
                "Name"
            ],
            "description": "This schema defines a Host Interface resource.",
            "longDescription": "This resource shall be used to represent Host Interface resources as part of the Redfish specification."
        },
        "HostInterfaceType": {
            "type": "string",
            "enum": [
                "NetworkHostInterface"
            ],
            "enumDescriptions": {
                "NetworkHostInterface": "This interface is a Network Host Interface."
            }
        }
    },
    "copyright": "Copyright 2014-2016 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright"
}
