description: >
    Implement to create Certificate Signing Request(CSR).

methods:
    - name: GenerateCSR
      description: >
          This command is used to initiate a certificate signing request. This
          command only returns the D-Bus path name for the new CSR object. User
          need to listen on InterfacesAdded signal emitted by
          /xyz/openbmc_project/Certs to retrieve the CSR string after successful
          CSR creation.

          Note: Following Parameters are mandatory or optional based on the
                Redfish documentation.

                Caller is responsible for the input parameter validation.

                If the caller does not wish a field to be included in the
                CSR Request, initialize the Parameter with blank for strings
                and zero for integers.

      parameters:
          - name: AlternativeNames
            type: array[string]
            description: >
                Additional hostnames of the component that is being secured.
          - name: ChallengePassword
            type: string
            description: >
                The challenge password to be applied to the certificate for
                revocation requests.
          - name: City
            type: string
            description: >
                The city or locality of the organization making the request. For
                Example Austin This is a required parameter.
          - name: CommonName
            type: string
            description: >
                The fully qualified domain name of the component that is being
                secured. This is a required parameter.
          - name: ContactPerson
            type: string
            description: >
                The name of the user making the request.
          - name: Country
            type: string
            description: >
                The country of the organization making the request. This is a
                required parameter.
          - name: Email
            type: string
            description: >
                The email address of the contact within the organization making
                the request.
          - name: GivenName
            type: string
            description: >
                The given name of the user making the request.
          - name: Initials
            type: string
            description: >
                The initials of the user making the request.
          - name: KeyBitLength
            type: int64
            description: >
                The length of the key in bits, if needed based on the value of
                the KeyPairAlgorithm parameter.

                Refer https://www.openssl.org/docs/man1.0.2/man1/genpkey.html
          - name: KeyCurveId
            type: string
            description: >
                The curve ID to be used with the key, if needed based on the
                value of the KeyPairAlgorithm parameter.

                Refer https://www.openssl.org/docs/man1.0.2/man1/genpkey.html
          - name: KeyPairAlgorithm
            type: string
            description: >
                The type of key pair for use with signing algorithms.

                Valid built-in algorithm names for private key generation are
                RSA and EC.
          - name: KeyUsage
            type: array[string]
            description: >
                Key usage extensions define the purpose of the public key
                contained in a certificate.

                Valid Key usage extensions and its usage description.

                ClientAuthentication: The public key is used for TLS WWW client
                                      authentication.
                CodeSigning: The public key is used for the signing of
                executable code. CRLSigning: The public key is used for
                verifying signatures on
                            certificate revocation lists (CLRs).
                DataEncipherment: The public key is used for directly
                enciphering
                                  raw user data without the use of an
                intermediate
                                  symmetric cipher.
                DecipherOnly: The public key could be used for deciphering data
                              while performing key agreement.
                DigitalSignature: The public key is used for verifying digital
                                  signatures, other than signatures on
                certificates
                                  and CRLs.
                EmailProtection: The public key is used for email protection.
                EncipherOnly: The public key could be used for enciphering data
                              while performing key agreement.
                KeyCertSign: The public key is used for verifying signatures on
                             public key certificates.
                KeyEncipherment: The public key is used for enciphering private
                or
                                 secret keys.
                NonRepudiation: The public key is used to verify digital
                signatures,
                                other than signatures on certificates and CRLs,
                                and used to provide a non- repudiation service
                that
                                protects against the signing entity falsely
                denying
                                some action.
                OCSPSigning: The public key is used for signing OCSP responses.
                ServerAuthentication: The public key is used for TLS WWW server
                                      authentication.
                Timestamping: The public key is used for binding the hash of an
                              object to a time.
          - name: Organization
            type: string
            description: >
                The legal name of the organization. This should not be
                abbreviated and should include suffixes such as Inc, Corp, or
                LLC. For example, IBM Corp. This is a required parameter.
          - name: OrganizationalUnit
            type: string
            description: >
                The name of the unit or division of the organization making the
                request. This is a required parameter.
          - name: State
            type: string
            description: >
                The state or province where the organization is located. This
                should not be abbreviated. For example, Texas. This is a
                required parameter.
          - name: Surname
            type: string
            description: >
                The surname of the user making the request.
          - name: UnstructuredName
            type: string
            description: >
                The unstructured name of the subject.
      returns:
          - name: path
            type: string
            description: >
                The object path of the D-Bus object to be watch for retrieving
                the CSR string.
      errors:
          - xyz.openbmc_project.Common.Error.InternalFailure
