{
    "$id": "http://redfish.dmtf.org/schemas/v1/Session.v1_3_4.json",
    "$ref": "#/definitions/Session",
    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
    "copyright": "Copyright 2014-2023 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
    "definitions": {
        "Actions": {
            "additionalProperties": false,
            "description": "The available actions for this resource.",
            "longDescription": "This type shall contain the available actions for this resource.",
            "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": {
                "Oem": {
                    "$ref": "#/definitions/OemActions",
                    "description": "The available OEM-specific actions for this resource.",
                    "longDescription": "This property shall contain the available OEM-specific actions for this resource.",
                    "versionAdded": "v1_1_0"
                }
            },
            "type": "object"
        },
        "OemActions": {
            "additionalProperties": true,
            "description": "The available OEM-specific actions for this resource.",
            "longDescription": "This type shall contain the available OEM-specific actions for this resource.",
            "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": {},
            "type": "object"
        },
        "Session": {
            "additionalProperties": false,
            "description": "The Session resource describes a single connection (session) between a client and a Redfish service instance.",
            "longDescription": "This resource shall represent a session for a Redfish implementation.",
            "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"
                },
                "Actions": {
                    "$ref": "#/definitions/Actions",
                    "description": "The available actions for this resource.",
                    "longDescription": "This property shall contain the available actions for this resource.",
                    "versionAdded": "v1_1_0"
                },
                "ClientOriginIPAddress": {
                    "description": "The IP address of the client that created the session.",
                    "longDescription": "This property shall contain the IP address of the client that created the session.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_3_0"
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "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."
                },
                "OemSessionType": {
                    "description": "The active OEM-defined session type.",
                    "longDescription": "This property shall contain the OEM-specific session type that is currently active if SessionType contains `OEM`.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_2_0"
                },
                "Password": {
                    "description": "The password for this session.  The value is `null` in responses.",
                    "longDescription": "This property shall contain the password for this session.  The value shall be `null` in responses.  When creating a session through a Redfish host interface using an `AuthNone` role, the property shall contain an empty string in the request body.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ],
                    "writeOnly": false
                },
                "SessionType": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SessionTypes"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The active session type.",
                    "longDescription": "This property shall represent the type of session that is currently active.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "UserName": {
                    "description": "The username for the account for this session.",
                    "longDescription": "This property shall contain the username that matches an account recognized by the account service.  When a creating a session through a Redfish host interface using an `AuthNone` role, the property shall contain an empty string in the request body.",
                    "readonly": true,
                    "type": [
                        "string",
                        "null"
                    ]
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name"
            ],
            "requiredOnCreate": [
                "UserName",
                "Password"
            ],
            "type": "object"
        },
        "SessionTypes": {
            "enum": [
                "HostConsole",
                "ManagerConsole",
                "IPMI",
                "KVMIP",
                "OEM",
                "Redfish",
                "VirtualMedia",
                "WebUI"
            ],
            "enumDescriptions": {
                "HostConsole": "The host's console, which could be connected through Telnet, SSH, or another protocol.",
                "IPMI": "Intelligent Platform Management Interface.",
                "KVMIP": "A Keyboard-Video-Mouse over IP session.",
                "ManagerConsole": "The manager's console, which could be connected through Telnet, SSH, SM CLP, or another protocol.",
                "OEM": "OEM type.  For OEM session types, see the OemSessionType property.",
                "Redfish": "A Redfish session.",
                "VirtualMedia": "Virtual media.",
                "WebUI": "A non-Redfish web user interface session, such as a graphical interface or another web-based protocol."
            },
            "enumLongDescriptions": {
                "HostConsole": "This value shall indicate the session is the host's console, which could be connected through Telnet, SSH, or another protocol.  If this session is terminated or deleted, the service shall close the connection for the respective host console session.",
                "IPMI": "This value shall indicate the session is an Intelligent Platform Management Interface session.  If this session is terminated or deleted, the service shall close the connection for the respective IPMI session.",
                "KVMIP": "This value shall indicate the session is a Keyboard-Video-Mouse over IP session.  If this session is terminated or deleted, the service shall close the connection for the respective KVM-IP session.",
                "ManagerConsole": "This value shall indicate the session is the manager's console, which could be connected through Telnet, SSH, SM CLP, or another protocol.  If this session is terminated or deleted, the service shall close the connection for the respective manager console session.",
                "OEM": "This value shall indicate the session is an OEM-specific session and is further described by the OemSessionType property.",
                "Redfish": "This value shall indicate the session is a Redfish session defined by the 'Redfish session login authentication' clause of the Redfish Specification.  If this session is terminated or deleted, the service shall invalidate the respective session token.",
                "VirtualMedia": "This value shall indicate the session is a virtual media session.  If this session is terminated or deleted, the service shall close the connection for the respective virtual media session and make the media inaccessible to the host.",
                "WebUI": "This value shall indicate the session is a non-Redfish web user interface session.  If this session is terminated or deleted, the service shall invalidate the respective session token."
            },
            "type": "string"
        }
    },
    "owningEntity": "DMTF",
    "release": "2020.3",
    "title": "#Session.v1_3_4.Session"
}