{
    "$id": "http://redfish.dmtf.org/schemas/v1/ManagerAccount.v1_11_1.json",
    "$ref": "#/definitions/ManagerAccount",
    "$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": {
                "#ManagerAccount.ChangePassword": {
                    "$ref": "#/definitions/ChangePassword"
                },
                "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"
        },
        "ChangePassword": {
            "additionalProperties": false,
            "description": "This action changes the account password.",
            "longDescription": "This action shall change the account password while requiring password for the current session.  This action prevents session hijacking.",
            "parameters": {
                "NewPassword": {
                    "description": "The new account password.",
                    "longDescription": "This parameter shall contain the new password.",
                    "requiredParameter": true,
                    "type": "string"
                },
                "SessionAccountPassword": {
                    "description": "The password of the account tied to the current session.",
                    "longDescription": "This parameter shall contain the password of the current session's account.  A user changing their own password shall provide their current password for this parameter.  An administrator changing the password for a different user shall provide their own password for this parameter.  If the request is performed with HTTP Basic authentication, this parameter shall contain the same password encoded in the `Authorization` header.",
                    "requiredParameter": true,
                    "type": "string"
                }
            },
            "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": {
                "target": {
                    "description": "Link to invoke action",
                    "format": "uri-reference",
                    "type": "string"
                },
                "title": {
                    "description": "Friendly action name",
                    "type": "string"
                }
            },
            "type": "object",
            "versionAdded": "v1_11_0"
        },
        "Links": {
            "additionalProperties": false,
            "description": "The links to other resources that are related to this resource.",
            "longDescription": "This Redfish Specification-described type shall contain links to resources that are related to but are not contained by, or subordinate to, 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": "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 contained in this object shall conform to the Redfish Specification-described requirements."
                },
                "Role": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Role.json#/definitions/Role",
                    "description": "The link to the Redfish role that defines the privileges for this account.",
                    "longDescription": "This property shall contain a link to a resource of type Role, and should link to the resource identified by the RoleId property.",
                    "readonly": true
                }
            },
            "type": "object"
        },
        "ManagerAccount": {
            "additionalProperties": false,
            "description": "The ManagerAccount schema defines the user accounts that are owned by a manager.  Changes to a manager account might affect the current Redfish service connection if this manager is responsible for the Redfish service.",
            "longDescription": "This resource shall represent a user account for the manager in a Redfish implementation.  The account shall indicate the allowed access to one of more services in the manager.",
            "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"
                },
                "AccountExpiration": {
                    "description": "Indicates the date and time when this account expires.  If `null`, the account never expires.",
                    "format": "date-time",
                    "longDescription": "This property shall contain the date and time when this account expires.  The service shall disable or delete an account that has expired.  This property shall not apply to accounts created by the Redfish Host Interface Specification-defined credential bootstrapping.  If the value is `null`, or the property is not present, the account never expires.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_8_0"
                },
                "AccountTypes": {
                    "description": "The list of services in the manager that the account is allowed to access.",
                    "items": {
                        "anyOf": [
                            {
                                "$ref": "http://redfish.dmtf.org/schemas/v1/ManagerAccount.json#/definitions/AccountTypes"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "longDescription": "This property shall contain an array of the various manager services that the account is allowed to access.  This shall not include functionality for receiving events or other notifications.  If this property is not provided by the client, the default value shall be an array that contains the value `Redfish`.  The service may add additional values when this property is set or updated if allowed by the value of the StrictAccountTypes property.",
                    "readonly": false,
                    "type": "array",
                    "versionAdded": "v1_4_0"
                },
                "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"
                },
                "Certificates": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/CertificateCollection.json#/definitions/CertificateCollection",
                    "description": "The link to a collection of user identity certificates for this account.",
                    "longDescription": "This property shall contain a link to a resource collection of type CertificateCollection that represents the user identity certificates for this account.",
                    "readonly": true,
                    "versionAdded": "v1_2_0"
                },
                "Description": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "readonly": true
                },
                "EmailAddress": {
                    "description": "The email address associated with this account.",
                    "longDescription": "This property shall contain the email address associated with this account.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_11_0"
                },
                "Enabled": {
                    "description": "An indication of whether an account is enabled.  An administrator can disable it without deleting the user information.  If `true`, the account is enabled and the user can log in.  If `false`, the account is disabled and, in the future, the user cannot log in.",
                    "longDescription": "This property shall indicate whether an account is enabled.  If `true`, the account is enabled and the user can log in.  If `false`, the account is disabled and, in the future, the user cannot log in.",
                    "readonly": false,
                    "type": "boolean"
                },
                "HostBootstrapAccount": {
                    "description": "An indication of whether this account is a bootstrap account for the host interface.",
                    "longDescription": "This property shall indicate whether this account is a bootstrap account created by the Redfish Host Interface Specification-defined credential bootstrapping.",
                    "readonly": true,
                    "type": "boolean",
                    "versionAdded": "v1_8_0"
                },
                "Id": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
                    "readonly": true
                },
                "Keys": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/KeyCollection.json#/definitions/KeyCollection",
                    "description": "The link to the collection of keys that can be used to authenticate this account.  For example, an SSH public key could be added to this collection to allow for SSH public key authentication.",
                    "longDescription": "This property shall contain a link to a resource collection of type KeyCollection that contains the keys that can be used to authenticate this account.",
                    "readonly": true,
                    "versionAdded": "v1_9_0"
                },
                "Links": {
                    "$ref": "#/definitions/Links",
                    "description": "The links to other resources that are related to this resource.",
                    "longDescription": "This property shall contain links to resources that are related to but are not contained by, or subordinate to, this resource."
                },
                "Locked": {
                    "description": "An indication of whether the account service automatically locked the account because the lockout threshold was exceeded.  To manually unlock the account before the lockout duration period, an administrator can change the property to `false` to clear the lockout condition.",
                    "longDescription": "This property shall indicate whether the account service automatically locked the account because the AccountLockoutThreshold was exceeded.  To manually unlock the account before the lockout duration period, an administrator shall be able to change the property to `false` to clear the lockout condition.",
                    "readonly": false,
                    "type": "boolean"
                },
                "MFABypass": {
                    "anyOf": [
                        {
                            "$ref": "http://redfish.dmtf.org/schemas/v1/AccountService.json#/definitions/MFABypass"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The multi-factor authentication bypass settings for this account.",
                    "longDescription": "This property shall contain the multi-factor authentication bypass settings for this account.",
                    "versionAdded": "v1_10_0"
                },
                "Name": {
                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
                    "readonly": true
                },
                "OEMAccountTypes": {
                    "description": "The OEM account types.",
                    "items": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "longDescription": "This property shall contain an array of the OEM account types for this account.  This property shall be valid when AccountTypes contains `OEM`.",
                    "readonly": false,
                    "type": "array",
                    "versionAdded": "v1_4_0"
                },
                "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."
                },
                "OneTimePasscodeDeliveryAddress": {
                    "description": "The address used to receive one-time passcode messages for multi-factor authentication.",
                    "longDescription": "This property shall contain the contact address for receiving one-time passcode messages for multi-factor authentication for this account when the Enabled property in the OneTimePasscode property in AccountService resource contains `true`.  This is typically the contact email address associated with the account, but may be a separate, relay email address for delivery via SMS or other contact method.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_11_0"
                },
                "Password": {
                    "description": "The password.  Use this property with a PATCH or PUT to write the password for the account.  This property is `null` in responses.",
                    "longDescription": "This property shall contain the password for this account.  The value shall be `null` in responses.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "writeOnly": true
                },
                "PasswordChangeRequired": {
                    "description": "An indication of whether the service requires that the password for this account be changed before further access to the account is allowed.",
                    "longDescription": "This property shall indicate whether the service requires that the password for this account be changed before further access to the account is allowed.  The implementation may deny access to the service if the password has not been changed.  A manager account created with an initial PasswordChangeRequired value of `true` may force a password change before first access of the account.  When the Password property for this account is updated, the service shall set this property to `false`.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_3_0"
                },
                "PasswordExpiration": {
                    "description": "Indicates the date and time when this account password expires.  If `null`, the account password never expires.",
                    "format": "date-time",
                    "longDescription": "This property shall contain the date and time when this account password expires.  If the value is `null`, the account password never expires.  If provided during account creation or password modification, this value shall override the value of the PasswordExpirationDays property in the AccountService resource.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_6_0"
                },
                "PhoneNumber": {
                    "description": "The contact phone number associated with this account.",
                    "longDescription": "This property shall contain the contact phone number associated with this account.",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_11_0"
                },
                "RoleId": {
                    "description": "The role for this account.",
                    "longDescription": "This property shall contain the RoleId of the role resource configured for this account.  The service shall reject POST, PATCH, or PUT operations that provide a RoleId that does not exist by returning the HTTP 400 (Bad Request) status code.",
                    "readonly": false,
                    "type": "string"
                },
                "SNMP": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SNMPUserInfo"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The SNMP settings for this account.",
                    "longDescription": "This property shall contain the SNMP settings for this account when AccountTypes contains `SNMP`.",
                    "versionAdded": "v1_4_0"
                },
                "StrictAccountTypes": {
                    "description": "Indicates if the service needs to use the account types exactly as specified when the account is created or updated.",
                    "longDescription": "This property shall indicate if the service needs to use the value of AccountTypes and OEMAccountTypes values exactly as specified.  A `true` value shall indicate the service needs to either accept the value without changes or reject the request.  A `false` value shall indicate the service may add additional `AccountTypes` and `OEMAccountTypes` values as needed to support limitations it has in separately controlling access to individual services.  If this property is not present, the value shall be assumed to be `false`.  An update of the service can cause account types to be added to or removed from the AccountTypes and OEMAccountTypes properties, regardless of the value of this property.  After a service update, clients should inspect all accounts where the value of this property is `true` and perform maintenance as needed.",
                    "readonly": false,
                    "type": [
                        "boolean",
                        "null"
                    ],
                    "versionAdded": "v1_7_0"
                },
                "UserName": {
                    "description": "The user name for the account.",
                    "longDescription": "This property shall contain the user name for this account.",
                    "readonly": false,
                    "type": "string"
                }
            },
            "required": [
                "@odata.id",
                "@odata.type",
                "Id",
                "Name",
                "AccountTypes"
            ],
            "requiredOnCreate": [
                "Password",
                "UserName",
                "RoleId"
            ],
            "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"
        },
        "SNMPAuthenticationProtocols": {
            "enum": [
                "None",
                "HMAC_MD5",
                "HMAC_SHA96",
                "HMAC128_SHA224",
                "HMAC192_SHA256",
                "HMAC256_SHA384",
                "HMAC384_SHA512"
            ],
            "enumDescriptions": {
                "HMAC128_SHA224": "HMAC-128-SHA-224 authentication.",
                "HMAC192_SHA256": "HMAC-192-SHA-256 authentication.",
                "HMAC256_SHA384": "HMAC-256-SHA-384 authentication.",
                "HMAC384_SHA512": "HMAC-384-SHA-512 authentication.",
                "HMAC_MD5": "HMAC-MD5-96 authentication.",
                "HMAC_SHA96": "HMAC-SHA-96 authentication.",
                "None": "No authentication."
            },
            "enumLongDescriptions": {
                "HMAC128_SHA224": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC128SHA224AuthProtocol.",
                "HMAC192_SHA256": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC192SHA256AuthProtocol.",
                "HMAC256_SHA384": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC256SHA384AuthProtocol.",
                "HMAC384_SHA512": "This value shall indicate authentication for SNMPv3 access conforms to the RFC7860-defined usmHMAC384SHA512AuthProtocol.",
                "HMAC_MD5": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-MD5-96 authentication protocol.",
                "HMAC_SHA96": "This value shall indicate authentication conforms to the RFC3414-defined HMAC-SHA-96 authentication protocol.",
                "None": "This value shall indicate authentication is not required."
            },
            "enumVersionAdded": {
                "HMAC128_SHA224": "v1_7_0",
                "HMAC192_SHA256": "v1_7_0",
                "HMAC256_SHA384": "v1_7_0",
                "HMAC384_SHA512": "v1_7_0"
            },
            "type": "string"
        },
        "SNMPEncryptionProtocols": {
            "enum": [
                "None",
                "CBC_DES",
                "CFB128_AES128"
            ],
            "enumDescriptions": {
                "CBC_DES": "CBC-DES encryption.",
                "CFB128_AES128": "CFB128-AES-128 encryption.",
                "None": "No encryption."
            },
            "enumLongDescriptions": {
                "CBC_DES": "This value shall indicate encryption conforms to the RFC3414-defined CBC-DES encryption protocol.",
                "CFB128_AES128": "This value shall indicate encryption conforms to the RFC3826-defined CFB128-AES-128 encryption protocol.",
                "None": "This value shall indicate there is no encryption."
            },
            "type": "string"
        },
        "SNMPUserInfo": {
            "additionalProperties": false,
            "description": "The SNMP settings for an account.",
            "longDescription": "This object shall contain the SNMP settings for an account.",
            "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": {
                "AuthenticationKey": {
                    "description": "The secret authentication key for SNMPv3.",
                    "longDescription": "This property shall contain the key for SNMPv3 authentication.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  The passphrase can contain any printable characters except for the double quotation mark.",
                    "pattern": "(^[ !#-~]+$)|(^Passphrase:[ ^[ !#-~]+$)|(^Hex:[0-9A-Fa-f]{24,96})|(^\\*+$)",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_4_0",
                    "writeOnly": true
                },
                "AuthenticationKeySet": {
                    "description": "Indicates if the AuthenticationKey property is set.",
                    "longDescription": "This property shall contain `true` if a valid value was provided for the AuthenticationKey property.  Otherwise, the property shall contain `false`.",
                    "readonly": true,
                    "type": "boolean",
                    "versionAdded": "v1_5_0"
                },
                "AuthenticationProtocol": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SNMPAuthenticationProtocols"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The authentication protocol for SNMPv3.",
                    "longDescription": "This property shall contain the SNMPv3 authentication protocol.",
                    "readonly": false,
                    "versionAdded": "v1_4_0"
                },
                "EncryptionKey": {
                    "description": "The secret encryption key used in SNMPv3.",
                    "longDescription": "This property shall contain the key for SNMPv3 encryption.  The value shall be `null` in responses.  This property accepts a passphrase or a hex-encoded key.  If the string starts with `Passphrase:`, the remainder of the string shall be the passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  If the string starts with `Hex:`, then the remainder of the string shall be the key encoded in hexadecimal notation.  If the string starts with neither, the full string shall be a passphrase and shall be converted to the key as described in the 'Password to Key Algorithm' section of RFC3414.  The passphrase can contain any printable characters except for the double quotation mark.",
                    "pattern": "(^[ !#-~]+$)|(^Passphrase:[ ^[ !#-~]+$)|(^Hex:[0-9A-Fa-f]{32})|(^\\*+$)",
                    "readonly": false,
                    "type": [
                        "string",
                        "null"
                    ],
                    "versionAdded": "v1_4_0",
                    "writeOnly": true
                },
                "EncryptionKeySet": {
                    "description": "Indicates if the EncryptionKey property is set.",
                    "longDescription": "This property shall contain `true` if a valid value was provided for the EncryptionKey property.  Otherwise, the property shall contain `false`.",
                    "readonly": true,
                    "type": "boolean",
                    "versionAdded": "v1_5_0"
                },
                "EncryptionProtocol": {
                    "anyOf": [
                        {
                            "$ref": "#/definitions/SNMPEncryptionProtocols"
                        },
                        {
                            "type": "null"
                        }
                    ],
                    "description": "The encryption protocol for SNMPv3.",
                    "longDescription": "This property shall contain the SNMPv3 encryption protocol.",
                    "readonly": false,
                    "versionAdded": "v1_4_0"
                }
            },
            "type": "object"
        }
    },
    "owningEntity": "DMTF",
    "release": "2023.2",
    "title": "#ManagerAccount.v1_11_1.ManagerAccount"
}