components:
  schemas:
    Key_v1_3_1_Actions:
      additionalProperties: false
      description: The available actions for this resource.
      properties:
        Oem:
          $ref: '#/components/schemas/Key_v1_3_1_OemActions'
          description: The available OEM-specific actions for this resource.
          x-longDescription: This property shall contain the available OEM-specific
            actions for this resource.
      type: object
      x-longDescription: This type shall contain the available actions for this resource.
      x-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.
    Key_v1_3_1_Key:
      additionalProperties: false
      description: The `Key` schema describes sensitive data for accessing devices
        or services.
      properties:
        '@odata.context':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_context
        '@odata.etag':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_etag
        '@odata.id':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_id
        '@odata.type':
          $ref: http://redfish.dmtf.org/schemas/v1/odata-v4.yaml#/components/schemas/odata-v4_type
        Actions:
          $ref: '#/components/schemas/Key_v1_3_1_Actions'
          description: The available actions for this resource.
          x-longDescription: This property shall contain the available actions for
            this resource.
        Description:
          oneOf:
          - $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Description
          - enum:
            - null
          readOnly: true
        Id:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Id
          readOnly: true
        KeyString:
          description: The string for the key.
          nullable: true
          readOnly: true
          type: string
          x-longDescription: This property shall contain the key, and the format shall
            follow the requirements specified by the `KeyType` property value.
        KeyType:
          description: The format of the key.
          oneOf:
          - $ref: '#/components/schemas/Key_v1_3_1_KeyType'
          - enum:
            - null
          readOnly: true
          x-longDescription: This property shall contain the format type for the key.
        NVMeoF:
          $ref: '#/components/schemas/Key_v1_3_1_NVMeoF'
          description: NVMe-oF specific properties.
          x-longDescription: This property shall contain NVMe-oF specific properties
            for this key.  This property shall be present if `KeyType` contains the
            value `NVMeoF`.
        Name:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Name
          readOnly: true
        Oem:
          $ref: http://redfish.dmtf.org/schemas/v1/Resource.yaml#/components/schemas/Resource_Oem
          description: The OEM extension property.
          x-longDescription: This property shall contain the OEM extensions.  All
            values for properties that this object contains shall conform to the Redfish
            Specification-described requirements.
        SSH:
          $ref: '#/components/schemas/Key_v1_3_1_SSHType'
          description: SSH specific properties.
          x-longDescription: This property shall contain SSH specific properties for
            this key.  This property shall be present if `KeyType` contains the value
            `SSH`.
          x-versionAdded: v1_2_0
        UserDescription:
          description: A user-defined string to describe this key.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain a user-provided string that
            describes the key.
          x-versionAdded: v1_1_0
      required:
      - '@odata.id'
      - '@odata.type'
      - Id
      - Name
      type: object
      x-longDescription: This resource shall represent a key for a Redfish implementation.
      x-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.
      x-requiredOnCreate:
      - KeyString
      - KeyType
    Key_v1_3_1_KeyType:
      enum:
      - NVMeoF
      - SSH
      type: string
      x-enumDescriptions:
        NVMeoF: An NVMe-oF key.
        SSH: An SSH public key.
      x-enumLongDescriptions:
        NVMeoF: This value shall indicate the format of the key is defined by one
          of the NVMe specifications.
        SSH: This value shall indicate the format of the key is defined by one of
          the SSH public key formats as defined in, but not limited to, RFC4253, RFC4716,
          or RFC8709.
      x-enumVersionAdded:
        SSH: v1_1_0
    Key_v1_3_1_NVMeoF:
      additionalProperties: false
      description: NVMe-oF specific properties.
      properties:
        HostKeyId:
          description: The identifier of the host key paired with this target key.
          nullable: true
          readOnly: false
          type: string
          x-longDescription: This property shall contain the value of the `Id` property
            of the `Key` resource representing the host key paired with this target
            key.  An empty string shall indicate the key is not paired.  This property
            shall be absent for host keys.
        NQN:
          description: The NVMe Qualified Name (NQN) of the host or target subsystem
            associated with this key.
          nullable: true
          readOnly: true
          type: string
          x-longDescription: This property shall contain the NVMe Qualified Name (NQN)
            of the host or target subsystem associated with this key.  The value of
            this property shall follow the NQN format defined by the NVMe Base Specification.
        OEMSecurityProtocolType:
          description: The OEM security protocol that this key uses.
          nullable: true
          readOnly: true
          type: string
          x-longDescription: This property shall contain the OEM-defined security
            protocol that this key uses.  The value shall be derived from the contents
            of the `KeyString` property.  This property shall be present if `SecurityProtocolType`
            contains the value `OEM`.
        SecureHashAllowList:
          description: The secure hash algorithms allowed with the usage of this key.
          items:
            oneOf:
            - $ref: '#/components/schemas/Key_v1_3_1_NVMeoFSecureHashType'
            - enum:
              - null
          readOnly: true
          type: array
          x-longDescription: This property shall contain the secure hash algorithms
            allowed with the usage of this key.  An empty list or the absence of this
            property shall indicate any secure hash algorithms are allowed with this
            key.
        SecurityProtocolType:
          description: The security protocol that this key uses.
          oneOf:
          - $ref: '#/components/schemas/Key_v1_3_1_NVMeoFSecurityProtocolType'
          - enum:
            - null
          readOnly: true
          x-longDescription: This property shall contain the security protocol that
            this key uses.  The value shall be derived from the contents of the `KeyString`
            property.
      type: object
      x-longDescription: This type shall contain NVMe-oF specific properties for a
        key.
      x-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.
      x-requiredOnCreate:
      - NQN
    Key_v1_3_1_NVMeoFSecureHashType:
      description: The NVMe secure hash algorithms that a key is allowed to use.
      enum:
      - SHA256
      - SHA384
      - SHA512
      type: string
      x-enumDescriptions:
        SHA256: SHA-256.
        SHA384: SHA-384.
        SHA512: SHA-512.
      x-enumLongDescriptions:
        SHA256: This value shall indicate the SHA-256 hash function as defined by
          the 'DH-HMAC-CHAP hash function identifiers' figure in the NVMe Base Specification.
        SHA384: This value shall indicate the SHA-384 hash function as defined by
          the 'DH-HMAC-CHAP hash function identifiers' figure in the NVMe Base Specification.
        SHA512: This value shall indicate the SHA-512 hash function as defined by
          the 'DH-HMAC-CHAP hash function identifiers' figure in the NVMe Base Specification.
      x-longDescription: This enumeration shall list the NVMe secure hash algorithms
        that a key is allowed to use.
    Key_v1_3_1_NVMeoFSecurityProtocolType:
      description: The NVMe security protocols that a key protects.
      enum:
      - DHHC
      - TLS_PSK
      - OEM
      type: string
      x-enumDescriptions:
        DHHC: Diffie-Hellman Hashed Message Authentication Code Challenge Handshake
          Authentication Protocol (DH-HMAC-CHAP).
        OEM: OEM.
        TLS_PSK: Transport Layer Security Pre-Shared Key (TLS PSK).
      x-enumLongDescriptions:
        DHHC: This value shall indicate the Diffie-Hellman Hashed Message Authentication
          Code Challenge Handshake Authentication Protocol (DH-HMAC-CHAP) as defined
          by the NVMe Base Specification.
        OEM: This value shall indicate an OEM-defined security protocol.  The `OEMSecurityProtocolType`
          property shall contain the specific OEM protocol.
        TLS_PSK: This value shall indicate Transport Layer Security Pre-Shared Key
          (TLS PSK) as defined by the NVMe TCP Transport Specification.
      x-longDescription: This enumeration shall list the NVMe security protocols that
        a key protects.
    Key_v1_3_1_OemActions:
      additionalProperties: true
      description: The available OEM-specific actions for this resource.
      properties: {}
      type: object
      x-longDescription: This type shall contain the available OEM-specific actions
        for this resource.
      x-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.
    Key_v1_3_1_SSHType:
      additionalProperties: false
      description: SSH specific properties.
      properties:
        Fingerprint:
          description: A fingerprint of the key.
          nullable: true
          pattern: (^MD5(:[0-9a-f]{2})+$)|(^SHA256:[A-Za-z0-9+/=]+$)
          readOnly: true
          type: string
          x-longDescription: This property shall contain the fingerprint of the key.
          x-versionAdded: v1_2_0
        RemoteServerHostName:
          description: The host name of the remote server associated with this key.
          nullable: true
          readOnly: true
          type: string
          x-longDescription: This property shall contain the host name of the remote
            server associated with this key.
          x-versionAdded: v1_3_0
      type: object
      x-longDescription: This type shall contain SSH specific properties for a key.
      x-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.
title: '#Key.v1_3_1.Key'
x-copyright: Copyright 2014-2024 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright
x-language: en
x-owningEntity: DMTF
x-release: '2023.2'
