description: >
    Implement this to add system dump management.

    System dumps are dump of the host memory and hardware states generated
    during a failure in the host firmware. This can be a huge dump stored in the
    host memory, the BMC doesnt store this dump but stream this dump to an
    external client based on the offload request. Apart from system generated
    system dump, users can also request for this kind of dump.

properties:
    - name: SourceDumpId
      type: uint32
      description: >
          The dump id provided by the source of the dump. There are dumps which
          get generated outside the BMC, like a system dump which gets generated
          and stored in the host memory. All dumps will have a  unique id  but
          when communicating to the source of the dump the SourceDumpId will be
          used.
    - name: Token
      type: uint32
      description: >
          A token exchanged with an external firmware subsystem when creating a
          dump outside of the BMC. This token can be used to identify the dump
          entry once the collection is completed.
    - name: SystemImpact
      type: enum [self.SystemImpact]
      default: Disruptive
      description: >
          System dumps can be broadly classified into two types based on their
          impact on the system state. The first type, known as a 'disruptive'
          dump, alters the system state. This kind of dump is typically
          generated during a host crash, although it can also be manually
          requested by a user. Despite its disruptive nature, this dump is able
          to collect a lot of data, making it particularly useful for diagnosing
          system crashes. The second type is a 'non-disruptive' dump. As the
          name suggests, this dump is created without causing any disruption to
          the system state.
    - name: UserChallenge
      type: string
      description: >
          On some host implementations a user-challenge need to be provided by
          the user and it flows through BMC and up to the host as a part of the
          dump request. Non-disruptive dumps consume significant host resources
          and involve the collection of host memory data. To safeguard these
          operations and ensure they are initiated only by authorized personnel,
          the provided passphrase is employed. In some systems, an Access
          Control List (ACL) file, provided through the Platform Level Data
          Model (PLDM), is used. The host validates the provided user-challenge
          against this ACL. If the user-challenge doesn't match any entry in the
          ACL, the host will reject the dump request. This field is needed so
          the host can check that only authorized users are allowed to perform
          certain dump operations.

enumerations:
    - name: SystemImpact
      description: Indicate the type of system dump
      values:
          - name: Disruptive
            description: >
                The system state will change with this type of dump collection
          - name: NonDisruptive
            description: >
                The system state will not change with the collection
